{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/prop-types/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/sweetalert2/dist/sweetalert2.all.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/reactstrap/es/utils.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../src/DataTable/types.ts","../../src/DataTable/util.ts","../../src/DataTable/tableReducer.ts","../../src/DataTable/Table.tsx","../../src/DataTable/TableHead.tsx","../../src/DataTable/TableHeadRow.tsx","../../src/DataTable/media.ts","../../src/DataTable/Cell.ts","../../src/DataTable/TableCell.tsx","../../src/DataTable/Checkbox.tsx","../../src/DataTable/TableCellCheckbox.tsx","../../src/DataTable/ExpanderButton.tsx","../../src/DataTable/TableCellExpander.tsx","../../src/DataTable/ExpanderRow.tsx","../../src/DataTable/constants.ts","../../src/DataTable/TableRow.tsx","../../src/icons/NativeSortIcon.tsx","../../src/DataTable/TableCol.tsx","../../src/DataTable/TableColCheckbox.tsx","../../src/hooks/useRTL.ts","../../src/DataTable/ContextMenu.tsx","../../src/DataTable/TableHeader.tsx","../../node_modules/tslib/tslib.es6.js","../../src/DataTable/TableSubheader.tsx","../../src/DataTable/TableBody.tsx","../../src/DataTable/ResponsiveWrapper.tsx","../../src/DataTable/ProgressWrapper.tsx","../../src/DataTable/TableWrapper.tsx","../../src/DataTable/TableColExpander.tsx","../../src/DataTable/NoDataWrapper.tsx","../../src/icons/Dropdown.tsx","../../src/DataTable/Select.tsx","../../src/DataTable/defaultProps.tsx","../../src/icons/ExpanderCollapsedIcon.tsx","../../src/icons/ExpanderExpandedIcon.tsx","../../src/icons/FirstPage.tsx","../../src/icons/LastPage.tsx","../../src/icons/Right.tsx","../../src/icons/Left.tsx","../../src/DataTable/Pagination.tsx","../../src/hooks/useWindowSize.ts","../../src/hooks/useDidUpdateEffect.ts","../../node_modules/deepmerge/dist/cjs.js","../../src/DataTable/themes.ts","../../src/hooks/useColumns.ts","../../src/DataTable/DataTable.tsx","../../src/DataTable/styles.ts","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/classnames/index.js","../node_modules/xlsx/xlsx.mjs","../../../../packages/react-router-dom/index.tsx","../../../../packages/react-router/lib/context.ts","../../../../packages/react-router/lib/router.ts","../../../../packages/react-router/lib/hooks.tsx","../../../../packages/react-router/lib/components.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/chart.js/dist/chunks/helpers.segment.js","../node_modules/chart.js/dist/chart.esm.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/react-dom/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/react-is/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/react-transition-group/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/react-autosuggest/dist/compareObjects.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../src/utils.ts","../../src/chart.tsx","../../src/typedCharts.tsx","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","../node_modules/webpack/buildin/global.js","../node_modules/process/browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-dom/client.js","../node_modules/shallowequal/index.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/react-fast-compare/index.js","../node_modules/warning/warning.js","../node_modules/react-autosuggest/dist/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/construct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../src/utils/interleave.js","../../src/utils/isPlainObject.js","../../src/utils/empties.js","../../src/utils/isFunction.js","../../src/utils/getComponentName.js","../../src/utils/isStyledComponent.js","../../src/constants.js","../../src/utils/error.js","../../src/sheet/GroupedTag.js","../../src/sheet/GroupIDAllocator.js","../../src/sheet/Rehydration.js","../../src/utils/nonce.js","../../src/sheet/dom.js","../../src/sheet/Tag.js","../../src/sheet/Sheet.js","../../src/utils/generateAlphabeticName.js","../../src/utils/hash.js","../../src/utils/isStaticRules.js","../../src/models/ComponentStyle.js","../../src/utils/stylis.js","../../src/utils/stylisPluginInsertRule.js","../../src/models/StyleSheetManager.js","../../src/models/Keyframes.js","../../src/utils/hyphenateStyleName.js","../../src/utils/flatten.js","../../src/utils/isStatelessFunction.js","../../src/utils/addUnitIfNeeded.js","../../src/constructors/css.js","../../src/utils/checkDynamicCreation.js","../../src/utils/determineTheme.js","../../src/utils/escape.js","../../src/utils/generateComponentId.js","../../src/utils/isTag.js","../../src/utils/mixinDeep.js","../../src/models/ThemeProvider.js","../../src/models/StyledComponent.js","../../src/utils/generateDisplayName.js","../../src/utils/joinStrings.js","../../src/utils/domElements.js","../../src/constructors/styled.js","../../src/constructors/constructWithOptions.js","../../src/models/GlobalStyle.js","../../src/constructors/createGlobalStyle.js","../../src/constructors/keyframes.js","../../src/models/ServerStyleSheet.js","../../src/hoc/withTheme.js","../../src/hooks/useTheme.js","../../src/secretInternals.js","../../src/base.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/date-fns/esm/subMinutes/index.js","../node_modules/date-fns/esm/subHours/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/react-autosuggest/dist/Autosuggest.js","../node_modules/shallow-equal/arrays/index.js","../node_modules/react-autosuggest/dist/Autowhatever.js","../node_modules/section-iterator/dist/index.js","../node_modules/react-themeable/dist/index.js","../node_modules/react-themeable/node_modules/object-assign/index.js","../node_modules/react-autosuggest/dist/SectionTitle.js","../node_modules/react-autosuggest/dist/ItemList.js","../node_modules/react-autosuggest/dist/Item.js","../node_modules/react-autosuggest/dist/theme.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/date-fns/esm/getISOWeek/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/reactstrap/es/Button.js","../node_modules/reactstrap/es/Card.js","../node_modules/reactstrap/es/CardHeader.js","../node_modules/reactstrap/es/CardBody.js","../node_modules/reactstrap/es/ModalHeader.js","../node_modules/reactstrap/es/ModalBody.js","../node_modules/reactstrap/es/FormGroup.js","../node_modules/reactstrap/es/Label.js","../node_modules/reactstrap/es/Input.js","../node_modules/reactstrap/es/ModalFooter.js","../node_modules/reactstrap/es/Row.js","../node_modules/reactstrap/es/Col.js","../node_modules/reactstrap/es/Table.js","../node_modules/reactstrap/es/InputGroup.js","../node_modules/reactstrap/es/InputGroupText.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/reactstrap/es/Portal.js","../node_modules/reactstrap/es/Fade.js","../node_modules/reactstrap/es/Modal.js"],"names":["module","exports","require","_slicedToArray","arr","i","Array","isArray","Symbol","iterator","Object","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","value","length","err","unsupportedIterableToArray","TypeError","requiredArgs","required","args","consolePrefix","uniqueArray","result","indexOf","capitalizeFirstLetter","str","charAt","toUpperCase","slice","toArray","nodeList","prototype","call","warn","message","console","concat","join","error","previousWarnOnceMessages","warnOnce","includes","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","arg","hasToPromiseFn","toPromise","asPromise","Promise","resolve","isPromise","getRandomElement","Math","floor","random","defaultParams","title","titleText","text","html","footer","icon","iconColor","iconHtml","template","toast","showClass","popup","backdrop","hideClass","customClass","target","color","heightAuto","allowOutsideClick","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","showConfirmButton","showDenyButton","showCancelButton","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","denyButtonText","denyButtonAriaLabel","denyButtonColor","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","buttonsStyling","reverseButtons","focusConfirm","focusDeny","focusCancel","returnFocus","showCloseButton","closeButtonHtml","closeButtonAriaLabel","loaderHtml","showLoaderOnConfirm","showLoaderOnDeny","imageUrl","imageWidth","imageHeight","imageAlt","timer","timerProgressBar","width","padding","background","input","inputPlaceholder","inputLabel","inputValue","inputOptions","inputAutoTrim","inputAttributes","inputValidator","returnInputValueOnDeny","validationMessage","grow","position","progressSteps","currentProgressStep","progressStepsDistance","willOpen","didOpen","didRender","willClose","didClose","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","hasOwnProperty","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","param","checkIfToastParamIsValid","checkIfParamIsDeprecated","showWarningsForParams","params","swalPrefix","prefix","items","swalClasses","iconTypes","getContainer","document","body","querySelector","container","elementBySelector","selectorString","elementByClass","className","getPopup","getIcon","getTitle","getHtmlContainer","getImage","image","getProgressSteps","getValidationMessage","getConfirmButton","actions","confirm","getDenyButton","deny","getInputLabel","getLoader","loader","getCancelButton","cancel","getActions","getFooter","getTimerProgressBar","getCloseButton","close","focusable","getFocusableElements","focusableElementsWithTabindex","querySelectorAll","sort","a","b","tabindexA","parseInt","getAttribute","tabindexB","otherFocusableElements","filter","el","isVisible","isModal","hasClass","shown","isToast","isLoading","hasAttribute","states","previousBodyPadding","setInnerHtml","elem","textContent","parsed","DOMParser","parseFromString","childNodes","forEach","child","appendChild","classList","split","contains","removeCustomClasses","values","remove","applyCustomClass","addClass","getInput","inputClass","checkbox","radio","range","focusInput","focus","type","val","toggleClass","condition","Boolean","add","removeClass","getDirectChildByClass","applyNumericalStyle","property","style","removeProperty","show","display","arguments","hide","setStyle","parent","selector","toggle","offsetWidth","offsetHeight","getClientRects","allButtonsAreHidden","isScrollable","scrollHeight","clientHeight","hasCssAnimation","window","getComputedStyle","animDuration","parseFloat","getPropertyValue","transDuration","animateTimerProgressBar","reset","transition","setTimeout","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarPercent","isNodeEnv","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","previousActiveElement","HTMLElement","restoreActiveElement","x","scrollX","y","scrollY","restoreFocusTimeout","scrollTo","sweetHTML","file","select","label","textarea","replace","resetOldContainer","oldContainer","documentElement","resetValidationMessage","currentInstance","addInputChangeListeners","rangeOutput","oninput","onchange","getTarget","setupAccessibility","setAttribute","setupRTL","targetElement","direction","rtl","init","oldContainerExisted","createElement","noWarMessageForRussians","youtubeId","test","navigator","language","location","host","match","noWar","paddingTop","parseHtmlToContainer","handleObject","jquery","handleJqueryElem","toString","cloneNode","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","animation","measureScrollbar","scrollDiv","scrollbarWidth","getBoundingClientRect","clientWidth","removeChild","renderActions","instance","renderButtons","confirmButton","denyButton","cancelButton","renderButton","handleButtonsStyling","insertBefore","styled","backgroundColor","button","buttonType","renderContainer","handleBackdropParam","handlePositionParam","handleGrowParam","center","growClass","privateProps","awaitingPromise","WeakMap","promise","innerParams","domCache","inputClasses","renderInput","get","rerender","inputContainer","setAttributes","showInput","setCustomClass","renderInputType","getInputContainer","removeAttributes","attributes","attrName","name","removeAttribute","attr","setInputPlaceholder","placeholder","setInputLabel","prependTo","id","labelClass","innerText","insertAdjacentElement","inputType","checkAndSetInputValue","email","password","number","tel","url","rangeInput","disabled","selected","checkboxContainer","checked","getMargin","marginLeft","marginRight","initialPopupWidth","MutationObserver","textareaWidth","observe","attributeFilter","renderContent","htmlContainer","renderFooter","renderCloseButton","closeButton","renderIcon","setContent","applyStyles","keys","iconType","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","successIconHtml","errorIconHtml","newContent","oldContent","innerHTML","iconContent","question","warning","info","trim","borderColor","sel","content","renderImage","renderProgressSteps","progressStepsContainer","step","index","stepEl","createStepElement","lineEl","createLineElement","renderTitle","renderPopup","addClasses","modal","render","DismissReason","freeze","esc","setAriaHidden","children","unsetAriaHidden","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","assign","getSwalParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","showWarningsForAttributes","JSON","parse","option","optionValue","optionName","paramNames","tag","allowedElements","tagName","toLowerCase","allowedAttributes","attribute","defaultInputValidators","string","setDefaultInputValidators","key","validateCustomTargetElement","setParameters","Timer","callback","delay","this","remaining","running","start","started","Date","clearTimeout","getTime","n","stop","fixScrollbar","innerHeight","paddingRight","undoScrollbar","iOSfix","userAgent","MSStream","platform","maxTouchPoints","iosfix","offset","scrollTop","top","lockBodyScroll","addBottomPaddingForTallPopups","ua","iOS","webkit","bottomPanelHeight","paddingBottom","preventTouchMove","ontouchstart","e","shouldPreventTouchMove","ontouchmove","preventDefault","stopPropagation","event","isStylus","isZoom","touches","touchType","undoIOSfix","SHOW_CLASS_TIMEOUT","openPopup","initialBodyOverflow","overflowY","addClasses$1","setScrollingVisibility","fixScrollContainer","activeElement","swalOpenAnimationFinished","removeEventListener","addEventListener","setProperty","showLoading","buttonToReplace","Swal","replaceButton","parentNode","loading","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getCheckboxValue","getRadioValue","getFileValue","files","processInputOptions","populateInputOptions","formatInputOptions","then","hideLoading","catch","renderOption","optionLabel","isSelected","inputOption","optgroup","o","radioValue","radioLabel","radioInput","radioLabelElement","radios","Map","valueFormatted","showRelatedButton","getElementsByClassName","getInput$1","privateMethods","swalPromiseResolve","swalPromiseReject","isVisible$1","clickConfirm","click","clickDeny","clickCancel","removeKeydownHandler","keydownTarget","keydownHandlerAdded","keydownHandler","capture","addKeydownHandler","dismissWith","setFocus","increment","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","isComposing","keyCode","handleEnter","handleTab","handleArrows","handleEsc","outerHTML","btnIndex","shiftKey","sibling","buttonToFocus","HTMLButtonElement","removePopupAndResetState","triggerDidCloseAndDispose","removeBodyClasses","resolveValue","prepareResolveValue","triggerClosePopup","isAwaitingPromise","isDismissed","handleAwaitingPromise","handlePopupAnimation","rejectPromise","delete","_destroy","isConfirmed","isDenied","animationIsSupported","animatePopup","swalCloseEventFinishedCallback","bind","setButtonsDisabled","buttons","setInputDisabled","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","inputerror","resetValidationMessage$1","getProgressSteps$1","update","validUpdatableParams","filterValidParams","updatedParams","set","defineProperties","writable","enumerable","disposeSwal","disposeWeakMaps","unsetWeakMaps","obj","instanceMethods","disableLoading","closePopup","closeModal","closeToast","handleConfirmButtonClick","handleConfirmOrDenyWithInput","handleDenyButtonClick","handleCancelButtonClick","handleInputValidator","checkValidity","preDenyValue","error$$1","rejectWith","succeedWith","preConfirmValue","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","onclick","isAnyButtonShown","ignoreOutsideClick","onmousedown","onmouseup","isJqueryElement","isElement","Element","argsToParams","fire","_len","_key","mixin","mixinParams","priorityMixinParams","getTimerLeft","timeout","stopTimer","resumeTimer","toggleTimer","increaseTimer","increase","isTimerRunning","isRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","bodyClickListener","staticMethods","enableLoading","SweetAlert","outerParams","constructor","configurable","_main","userParams","prepareParams","populateDomCache","swalPromise","onFulfilled","onFinally","finally","reject","dismiss","setupTimer","initFocus","templateParams","globalState$$1","focusButton","blurActiveElement","blur","version","default","factory","Sweetalert2","swal","sweetAlert","t","getElementsByTagName","styleSheet","cssText","toDate","argument","argStr","Error","stack","NaN","globalCssModule","setScrollbarWidth","getOriginalBodyPadding","conditionallyUpdateScrollbar","height","overflow","getScrollbarWidth","fixedContent","bodyPadding","innerWidth","mapToCssModules","cssModule","map","c","omit","omitKeys","pick","pickKeys","warned","targetPropType","PropTypes","oneOfType","func","props","propName","componentName","shape","current","any","tagPropType","$$typeof","symbol","arrayOf","TransitionTimeouts","Fade","Collapse","Modal","Carousel","TransitionPropTypeKeys","keyCodes","space","enter","tab","up","down","home","end","p","canUseDOM","getTag","isObject","findDOMElements","isReactRefObj","isFunction","selection","isArrayOrNodeList","els","allElements","toInteger","dirtyNumber","Number","isNaN","ceil","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread2","source","getOwnPropertyDescriptors","defineProperty","_defineProperty","SortOrder","prop","parseSelector","row","reduce","acc","part","insertItem","array","item","removeItem","keyField","newArray","outerField","splice","findIndex","decorateColumns","columns","column","decoratedColumn","sortable","sortFunction","getNumberOfPages","rowCount","rowsPerPage","recalculatePage","prevPage","nextPage","min","noop","getConditionalStyle","conditionalRowStyles","baseClassNames","rowStyle","classNames","crs","when","isRowSelected","selectedRows","some","r","findColumnIndexById","equalizeId","tableReducer","state","action","toggleOnSelectedRowsChange","rows","mergeSelections","allChecked","allSelected","selections","selectedCount","singleSelect","totalRows","selectedRowsFlag","sortDirection","selectedColumn","clearSelectedOnSort","currentPage","page","paginationServer","visibleOnly","persistSelectedOnPageChange","clearSelectedOnPage","disabledCSS","css","TableStyle","div","theme","table","fixedCSS","Head","fixedHeader","head","HeadRow","headRow","dense","denseStyle","media","literals","CellBase","headCell","noPadding","CellExtended","maxWidth","minWidth","right","compact","isInteger","overflowCSS","wrapCell","allowOverflow","CellStyle","attrs","renderAsCell","isDragging","cells","draggingStyle","cellStyle","React","memo","onDragLeave","rowIndex","dataTag","onDragStart","onDragOver","onDragEnd","onDragEnter","conditionalCellStyles","role","cell","wrap","format","component","componentOptions","indeterminate","onClick","TagName","baseStyle","fontSize","cursor","marginTop","verticalAlign","resolvedComponentOptions","useMemo","newObject","oldObject","ref","onChange","TableCellCheckboxStyle","TableCellCheckbox","onSelectedRow","selectableRowsComponent","selectableRowsComponentProps","selectableRowsSingle","selectableRowDisabled","Checkbox","ButtonStyle","expanderButton","ExpanderButton","onToggled","expanded","expandableIcon","collapsed","CellExpanderStyle","expanderCell","CellExpander","Direction","Alignment","Media","ExpanderRowStyle","expanderRow","extendedRowStyle","extendedClassNames","data","ExpanderComponent","expanderComponentProps","highlightCSS","highlightOnHover","highlightOnHoverStyle","pointerCSS","TableRowStyle","striped","stripedStyle","pointerOnHover","selectedHighlightStyle","Row","defaultExpanded","defaultExpanderDisabled","expandableRows","expandableRowsComponent","expandableRowsComponentProps","expandableRowsHideExpander","expandOnRowClicked","expandOnRowDoubleClicked","expandableInheritConditionalStyles","onRowClicked","onRowDoubleClicked","onRowMouseEnter","onRowMouseLeave","onRowExpandToggled","selectableRows","selectableRowsHighlight","draggingColumnId","useState","setExpanded","useEffect","handleExpanded","useCallback","showPointer","handleRowClick","handleRowDoubleClick","handleRowMouseEnter","handleRowMouseLeave","rowKeyField","highlightSelected","inheritStyles","isStriped","onDoubleClick","onMouseEnter","onMouseLeave","TableCellExpander","TableCell","ignoreRowClick","ExpanderRow","Icon","span","sortActive","NativeSortIcon","ColumnStyled","headCells","sortableCSS","ColumnSortable","ColumnText","sortIcon","sortServer","pagination","persistSelectedOnSort","selectableRowsVisibleOnly","onSort","showTooltip","setShowTooltip","columnRef","useRef","scrollWidth","handleSortChange","ASC","DESC","renderNativeSortIcon","renderCustomSortIcon","disableSort","nativeSortIconLeft","nativeSortIconRight","customSortIconLeft","customSortIconRight","draggable","reorder","tabIndex","onKeyPress","ColumnStyle","ColumnCheckbox","onSelectAllRows","rowData","isDisabled","useRTL","AUTO","isClient","isRTL","setIsRTL","canUse","bodyRTL","htmlTRL","hasRTL","dir","Title","contextMenu","fontColor","ContextActions","ContextMenuStyle","visible","activeStyle","ContextMenu","contextMessage","contextActions","contextComponent","cloneElement","datumName","singular","plural","HeaderStyle","header","Actions","Header","showMenu","__rest","s","propertyIsEnumerable","alignMap","left","SubheaderWrapper","align","wrapContent","subHeader","Subheader","_a","rest","Body","ResponsiveWrapper","responsive","fixedHeaderScrollHeight","responsiveWrapper","ProgressWrapper","progress","Wrapper","tableWrapper","ColumnExpander","NoDataWrapper","noData","DropdownIcon","xmlns","viewBox","d","fill","SelectControl","SelectWrapper","Select","defaultValue","DropDownIcon","defaultProps","selectableRowsNoSelectAll","selectableRowSelected","clearSelectedRows","expandableRowDisabled","expandableRowExpanded","progressPending","progressComponent","fontWeight","persistTableHead","noContextMenu","defaultSortFieldId","defaultSortAsc","noDataComponent","noTableHead","noHeader","subHeaderAlign","RIGHT","subHeaderWrap","subHeaderComponent","paginationServerOptions","paginationDefaultPage","paginationResetDefaultPage","paginationTotalRows","paginationPerPage","paginationRowsPerPageOptions","paginationComponent","paginationComponentOptions","paginationIconFirstPage","paginationIconLastPage","paginationIconNext","paginationIconPrevious","customStyles","onChangePage","onChangeRowsPerPage","onSelectedRowsChange","onColumnOrderChange","defaultComponentOptions","rowsPerPageText","rangeSeparatorText","noRowsPerPage","selectAllRowsItem","selectAllRowsItemText","PaginationWrapper","nav","Button","pageButtonsStyle","PageList","Span","Range","RowLabel","windowSize","getSize","setWindowSize","handleResize","shouldShow","numPages","lastIndex","firstIndex","disabledLesser","disabledGreater","options","handlePrevious","handleNext","handleFirst","handleLast","handleRowsPerPage","selectOptions","num","useFirstUpdate","fn","inputs","firstUpdate","isMergeableObject","stringValue","REACT_ELEMENT_TYPE","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","element","getKeys","propertyIsOnObject","_","arrayMerge","sourceIsArray","destination","customMerge","getMergeFunction","mergeObject","all","prev","cjs","defaultTheme","primary","secondary","context","divider","hover","defaultThemes","light","dark","useColumns","tableColumns","setTableColumns","setDraggingColumn","sourceColumnId","useDidUpdateEffect","handleDragStart","getNamedItem","handleDragEnter","selectedColIndex","targetColIndex","reorderedCols","handleDragOver","handleDragLeave","handleDragEnd","defaultSortDirection","ascDirection","defaultSortColumn","useReducer","dispatch","enabledPagination","Pagination","NativePagination","currentTheme","themeName","inherit","themeType","merge","minHeight","paddingLeft","borderBottomWidth","borderBottomColor","borderBottomStyle","transform","transitionDuration","transitionTimingFunction","willChange","wordBreak","transitionProperty","outlineStyle","outlineWidth","outlineColor","flex","borderRadius","outline","svg","margin","borderTopStyle","borderTopWidth","borderTopColor","alignItems","justifyContent","wrapperProps","sortedData","sortFn","customSortFunction","aValue","bValue","tableRows","handleSort","handleSelectAllRows","handleSelectedRow","handleRowClicked","handleRowDoubleClicked","handleChangePage","handleChangeRowsPerPage","newRowsPerPage","updatedPage","recalculatedPage","preSelectedRows","visibleRows","showSelectAll","ThemeProvider","Table","Column","NoData","field","expanderExpander","expanderDisabled","customTheme","_extends","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","self","hasOwn","classes","argType","inner","XLSX","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","set_cp","reset_cp","char_codes","len","charCodeAt","utf16beread","String","fromCharCode","$cptable","debom","c1","c2","utf16leread","_getchar","_getansi","Base64_map","Base64_encode","c3","e1","e2","e3","e4","Base64_decode","has_buf","Buffer","process","versions","node","Buffer_from","nbfs","from","buf","enc","new_raw_buf","alloc","Uint8Array","new_unsafe_buf","allocUnsafe","s2a","s2ab","ArrayBuffer","view","a2s","ab2a","bconcat","bufs","isBuffer","maxlen","chr0","chr1","_strrev","pad0","v","pad_","rpad_","p2_32","pow","pad0r","round","pad0r1","pad0r2","SSF_isgeneral","days","months","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","q","SSF_parse_date_code","opts","b2","date","time","dow","dout","out","T","u","m","H","M","S","abs","date1904","setDate","getDate","getFullYear","getMonth","getDay","SSF_fix_hijri","SSFbasedate","SSFdnthresh","SSFbase1904","datenum_local","epoch","getTimezoneOffset","SSF_strip_decimal","SSF_general_num","V","log","LOG10E","toPrecision","w","toFixed","toExponential","SSF_small_exp","substr","SSF_large_exp","SSF_normalize_exp","SSF_general","SSF_format","SSF_write_date","fmt","ss0","ss","tt","outl","commaify","j","pct1","write_num_exp","idx","period","ee","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","dec","_frac","write_num_flt","ffmt","write_num","write_num_cm","sfmt","mul","write_num_pct","ri","ff","aval","sign","den","rr","base","myn","myd","write_num_f1","carry","oa","max","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","lastIndexOf","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","choose_fmt","f","in_str","SSF_split_fmt","l","lat","m1","m2","dateNF","flen","dt","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","eval_fmt","SSF_load","SSF_load_table","tbl","make_ssf","SSFImplicit","dateNFregex","CRC32","T0","Int32Array","signed_crc_table","TT","subarray","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","bstr","seed","C","L","CFB","fs","dirname","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_extra_field","blob","prep_blob","flags","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","parse_zip","root","di","mboundary","boundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","line","parse_mime","parse_mad","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","shift","check_shifts","dir_cnt","sectors","nsectors","sectorify","sleuth_fat","sector_list","sl","chkd","buf_chain","modulus","k","seen","addr","__readInt32LE","nodes","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","mini","minifat_store","pl","sector","namelen","__utf16le","R","clsid","size","ct","read_date","storage","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","raw","entry","payload","MSSZ","new_buf","cnt","__readUInt32LE","cfb","CLSID","nm","find","rebuild_cfb","seed_cfb","gc","_file","pop","now","fullPaths","create","HEADER_CLSID","Z","namecmp","elt","_write","_opts","fileType","fp","fi","ca","cstr","dispcnt","csl","qp","get_content_type","write_quoted_printable","write_base64_76","write_mad","cdirs","method","compression","start_cd","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","copy","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","h","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","boff","write_stored","addrs","hash","mlen","len_eb","dst_eb","write_huff_fixed","off","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","bits","code","dst","inflate","warn_or_throw","wrn","msg","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_dos_date","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","cfb_add","unsafe","ContentTypeMap","ctype","ext","encoded","si","tmp","fdata","fname","cte","oi","parse_quoted_printable","fpath","utils","cfb_gc","path","UCFullPaths","UCPaths","UCPath","read","readFileSync","read_file","write","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","_fs","blobify","a2u","write_dl","Deno","TextEncoder","encode","utf8write","IE_SaveFile","Blob","msSaveBlob","saveAs","URL","createObjectURL","chrome","downloads","download","revokeObjectURL","href","$","File","Folder","open","encoding","ks","o2","evert_key","K","evert","evert_num","basedate","datenum","refdate","dnthresh","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date_1","good_pd_date","good_pd","parseDate","fixdate","cc2str","debomit","TextDecoder","decode","dup","stringify","fuzzynum","isFinite","wt","lower_months","fuzzydate","getYear","lower","split_regex","safe_split_regex","re","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","getdatabin","safegetzipfile","zip","g","getzipfile","getzipdata","safe","getzipstr","getzipbin","zipentries","zip_add_file","res","widx","ridx","utf8decode","zip_new","zip_read","resolve_path","XML_HEADER","attregexg","tagregex1","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","z","eq","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","matchtag","mtcache","RegExp","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","matches","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","xlml_normalize","xlmlregex","XMLNS","XMLNS_main","XLMLNS","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","Infinity","read_double_le","__double","is_buf","cpdoit","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","bs","av","LN2","write_double_le","__writeInt32LE","hexstr","fld","pos","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","col","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","ws","_R","_C","origin","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","write_BrtCommentText","run","write_StrRun","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","nTS","tint","rgb","parse_ClipboardFormatOrString","VT_STRING","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","CountryEnum","XLSFillPattern","rgbify","XLSIcv","RBErr","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","metadata","styles","write_ct","type2ct","evert_arr","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","CORE_PROPS","EXT_PROPS","CUST_PROPS","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","TCMNT","PEOPLE","VBA","get_rels_path","parse_rels","currentFilePath","rels","rel","Type","Target","Id","TargetMode","canonictarget","write_rels","rid","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS_REGEX","parse_core_props","cur","cp_doit","write_core_props","Props","CreatedDate","ModifiedDate","PseudoPropsPairs","load_props_pairs","HP","TOP","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","write_ext_props","W","Application","custregex","write_cust_props","pid","write_vt","evert_XLMLDPM","XLMLDocPropsMap","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","xlml_set_prop","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","parse_dictionary","CodePage","dict","parse_BLOB","bytes","ret","Size","parse_ClipboardData","parse_VtUnalignedString","cElements","parse_VtVecHeadingPairValue","parse_VtVecLpwstrValue","parse_VtVecUnalignedLpstrValue","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","hdr","piao","pr","pio","unshift","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","write_Bes","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkMoniker","extra","parse_URLMoniker","cAnti","preamble","ansiPath","parse_FileMoniker","parse_HyperlinkString","write_HyperlinkString","write_Hyperlink","hl","hashidx","F","Pretarget","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","cf","fSharedNote","parse_BOF","BIFFVer","write_BOF","wb","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","parse_ArrayParsedFormula","parse_BIFF5OT","cchName","write_HLink","O","write_HLinkTooltip","Tooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","level","parse_Blank","parse_Scl","parse_String","DBF_SUPPORTED_VERSIONS","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","hend","sheetRows","dbf_to_aoa","wch","_RLEN","to_workbook","to_sheet","from_sheet","aoa","sheet_to_json","headers","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","hf","_f","hb","rout","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","hidden","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","RS","rec","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","coord","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","meta","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","dateNF_regex","finish_cell","Y","datestr","timestr","dateNF_fix","cellText","cellNF","outer","prn_to_sheet_str","lines","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","parse_cell","parse_LABEL","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","v1","v2","write_NUMBER_17","log2","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","argc","argL","argR","wk1_fmla_to_csf","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","book_to_wk3","wscnt","write_BOF_WK3","parse_rs","tregex","rpregex","parse_r","rpr","font","pass","shadow","strike","uval","family","valign","parse_rpr","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","intro","outro","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","straywsregex","write_sst_xml","sst","bookSST","count","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_Primary","U","parse_TransformInfoHeader","ename","cmode","parse_EncryptionHeader","Flags","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","xml","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","XorRor","byte1","byte2","Byte","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","crypto_MakeXorDecryptor","XorArrayIndex","XorArray","Data","Value","crypto_DecryptData_Method1","parse_FilePassHeader","Info","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","exec","rgb2Hex","rgb_tint","hex","hsl","G","H6","L2","rgb2HSL","hex2RGB","X","h6","hsl2RGB","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","delta","_MDW","coll","customWidth","pt","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","themes","NumberFmt","formatCode","parse_numFmts","Fonts","bold","italic","underline","condense","extend","vertAlign","scheme","indexed","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","bgColor","fgColor","parse_fills","Borders","border","diagonalUp","diagonalDown","parse_borders","xf","CellXf","alignment","vertical","horizontal","textRotation","indent","wrapText","parse_cellXfs","write_sty_xml","SSF","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","grbit","write_FontFlags","sss","charset","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_STYLES_bin","xfId","builtinId","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_ExtProp","extType","parse_XFExtGradient","write_xlmeta_bin","write_BrtMdtinfo","write_BrtBeginEsfmd","cm","write_BrtBeginEsmdb","mdb","write_BrtMdb","write_xlmeta_xml","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","fillcolor","strokecolor","on","sheet_insert_comments","threaded","people","comment","author","write_comments_xml","iauthor","ID","lastauthor","ts","write_tcmnt_xml","carr","rootid","tcopts","tcid","parentId","personId","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","rt","Ptg19","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","get_ixti_raw","supbooks","XTI","SID","get_ixti","ixtiraw","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","lbl","names","xlfn","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","write_Formula","os","o1","write_FormulaValue","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","browser_has_Map","get_sst_id","has","revarr","col_obj_w","outlineLevel","default_margins","margins","mode","defs","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","sheetprregex2","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","parse_ws_xml_sheetpr2","parse_ws_xml_dim","svs","Views","sviewregex","zoomScale","zoom","rightToLeft","RTL","parse_ws_xml_sheetviews","seencol","coli","colm","colM","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","merges","_merge","hlink","Rel","tooltip","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","rstarti","outa","ht","rslice","cellFormula","___f","_tag","xlmeta","Cell","_r","write_ws_xml","rdata","_drawing","needed","vbaraw","cname","Workbook","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","write_ws_xml_merges","relc","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","first","last","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtShortReal","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","last_seen","ncell","write_BrtShortIsst","write_BrtCellIsst","write_BrtShortSt","write_BrtCellSt","write_BrtShortRk","write_BrtCellRk","write_BrtShortReal","write_BrtCellReal","write_BrtShortBool","write_BrtCellBool","write_BrtShortError","write_BrtCellError","write_BrtShortBlank","write_BrtCellBlank","write_MERGECELLS","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_ws_bin","write_BrtWsProp","cap","write_CELLTABLE","write_AUTOFILTER","write_LEGACYDRAWING","parse_chart","csheet","nc","cache","nf","parse_Cache","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","defaults","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","check_wb","N","codes","cn","wbnsregex","write_wb_xml","write_names","workbookPr","Hidden","sheetId","Comment","localSheetId","parse_BrtFRTArchID$","ArchID","write_BOOKVIEWS","vistab","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","iTabID","strRelID","write_BrtBundleSh","write_BUNDLESHS","parse_wb","Ptg","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_ws","ai","af","vm","RR","aii","relId","rfx","parse_ws_bin","parse_cs","parse_cs_bin","parse_cs_xml","parse_sty","parse_sty_bin","parse_sst","parse_sst_bin","parse_sst_xml","parse_cmnt","authors","parse_comments_bin","commentList","authtag","cmnttag","authorId","guid","textMatch","parse_comments_xml","parse_cc","parse_cc_bin","parse_cc_xml","parse_xlink","parse_xlink_bin","parse_xlmeta","Types","metatype","parse_xlmeta_bin","lastmeta","offsets","parse_xlmeta_xml","write_ws","write_cmnt","XLMLFormatMap","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","safe_format_xlml","xlml_format","process_style_xlml","stag","Interior","I","Pattern","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","Rn","opening","ishtml","_o","html_to_sheet","book_append_sheet","html_to_workbook","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","_NamedRange","_DefinedName","RefersTo","AutoFilter","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","mi","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","skip","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","write_sty_xlml","write_names_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","CONTINUE_RT","slurp","RecordType","insitu","nextrt","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","lastcell","cmnt","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_RT","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","fBelow","fRight","ExternCount","tmpri","biffguess","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_j","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","xfe","Encryption","Metadata","Country","PSCLSID","parse_xlscfb","CompObj","WorkbookP","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","write_xls_props","vba","fill_vba_xls","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","idObj","stAuthor","parse_NoteSh","verificationBytes","verifier","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","displayName","targetFrameName","moniker","oleMoniker","fileTime","Loc","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","crc","cexts","cchComment","themeXML","parse_frtHeader","area","env","lcb","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_cols_biff8","write_ColInfo","write_ws_biff8_cell","write_Number","write_BoolErr","write_LabelSst","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","write_biff_continue","write_SST","blen","fix_write_opts","write_biff8_buf","mtch2","hd","midx","colspan","rowspan","_t","make_html_row","editable","HTML_BEGIN","HTML_END","make_html_preamble","sheet_to_html","sheet_add_dom","or_R","or_C","is_dom_element_hidden","elts","Aelts","Aelti","parse_dom_table","get_computed_style","ownerDocument","defaultView","get_get_computed_style_function","parse_text_p","fixed","number_formats_ods","day","month","year","hours","minutes","seconds","era","quarter","parse_content_xml","sheetag","rowtag","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","FEtag","parse_manifest","write_styles_ods","master_styles","write_content_ods","null_cell_xml","ods","ROWS","_Fref","text_p","_tgt","fods","cidx","colobj","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","u8_to_dataview","DataView","buffer","byteOffset","byteLength","u8str","u8","stru8","u8concat","u8a","popcnt","parse_varint49","ptr","varint","write_varint49","varint_to_i32","i32","parse_shallow","write_shallow","proto","mappa","parse_iwa_file","messages","write_iwa_file","ias","ia","midata","aipayload","mid","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","frame","parse_new_storage","rsst","dv","getUint32","data_offset","d128","ieee","exp","mantissa","readDecimal128LE","getFloat64","write_new_storage","writeDecimal128LE","setFloat64","setUint32","write_old_storage","parse_cell_storage","parse_old_storage","parse_TSP_Reference","parse_TST_TableDataList","pb","le","rtp","rtpref","mtype","tswpsa","parse_TST_Tile","_b","_c","_g","_h","_k","_l","_m","used_storage_u8","used_storage","wide_offsets","used_storage_offsets","getUint16","parse_TST_TileRowInfo","nrows","parse_TST_TableInfoArchive","tableref","store","tile","tl","_tile","parse_TST_TableModelArchive","parse_TN_DocumentArchive","root2","parse_TN_SheetArchive","parse_numbers_iwa","indices","packets","packet","docroot","iwam","write_tile_row","tri","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","chartp","parse_drawing","crelsp","parse_ds","tcomments","tidx","parse_tcmnt_xml","strip_front_slash","_zip","binname","threadedcomments","links","coreprops","extprops","custprops","calcchains","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_theme","link","propdata","parse_ext_props","toks","parse_cust_props","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","displayname","parse_people_xml","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","numbers","trunc","dependents","packet2","x2","y2","indices_varint","ivi","mess","search","u8contains","xi","sheetrootref","cruidsref","oldbucket","_x","cruids","uuid","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sstroot","sentry","sx","sxi","sstdata","newsst","raw32","tileref","tileroot","tentry","tx","tiledata","rowload","R2","tilerow","raw3","write_numbers_iwa","foo","vbafmt","_sn","wsrels","need_vml","rId1","write_sst","write_wb","write_sty","write_xlmeta","write_zip_xlsxb","write_zip_xlsx","needtc","person","userId","providerId","write_people_xml","read_plaintext","main","read_prn","readSync","infile","read_binary","bstrify","ab","vu","read_cfb","OLD_WTF","read_wb_ID","read_zip","read_utf16","read_plaintext_raw","write_cfb_ctr","write_zip_denouement","oopts","ftype","generate","encrypt_agile","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","sheet_to_txt","sheet_to_csv","write_cfb_type","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","qreg","make_csv_row","txt","forceQuotes","endregex","strip","sheet_add_json","js","skipHeader","JS","ws_get_cell_stub","RC","book_new","roll","cell_set_hyperlink","split_cell","json_to_sheet","table_to_sheet","table_to_book","sheet_to_formulae","cmds","sheet_to_row_object_array","sheet_get_cell","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","dynamic","rngstr","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN","BrowserRouter","historyRef","createBrowserHistory","history","basename","navigationType","Link","to","useHref","internalOnClick","navigate","useNavigate","useLocation","useResolvedPath","isModifiedEvent","createPath","replaceProp","useLinkClickHandler","NavLink","ariaCurrentProp","caseSensitive","classNameProp","locationPathname","toPathname","isActive","ariaCurrent","styleProp","NavigationContext","LocationContext","RouteContext","outlet","invariant","cond","matchRoutes","pathname","stripBasename","locationArg","parsePath","branches","flattenRoutes","compareIndexes","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","routes","relativePath","route","childrenIndex","joinPaths","routesMeta","score","computeScore","paramRe","isSplat","segments","initialScore","segment","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","pattern","regexpSource","compilePath","captureGroups","splatValue","decodeURIComponent","safelyDecodeURIComponent","resolveTo","toArg","routePathnameIndex","routePathnames","toSegments","fromPathname","relativeSegments","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","paths","useInRouterContext","joinedPathname","getToPathname","endsWithSlash","routePathnamesJson","activeRef","OutletContext","_renderMatches","parentMatches","Navigate","Outlet","useOutlet","Route","Router","basenameProp","NavigationType","static","staticProp","navigationContext","locationProp","trailingPathname","Routes","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","useRoutes","createRoutesFromChildren","_createForOfIteratorHelper","allowArrayLike","it","normalCompletion","didErr","_e2","_objectWithoutPropertiesLoose","excluded","sourceKeys","E","J","te","ae","ne","oe","se","ie","pe","de","ue","fe","he","me","ye","De","ve","we","ge","ke","be","Se","Me","Pe","Ee","Ne","xe","Oe","Ye","Ie","Le","Re","Fe","qe","We","Ke","je","Qe","Ve","Ue","$e","ze","Ge","Je","Xe","Ze","et","at","nt","st","lt","ut","Dt","yt","vt","kt","gt","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","St","Ct","Reflect","construct","sham","Proxy","valueOf","Mt","Pt","Et","Nt","dateTime","xt","Ot","Yt","Tt","It","Xt","Jt","locale","Lt","formatLong","awareOfUnicodeTokens","Rt","dateFormat","Ft","hour","minute","second","At","qt","Wt","Bt","weekStartsOn","Kt","Ht","jt","Qt","Vt","Ut","$t","zt","Gt","globalThis","__localeId__","__localeData__","Zt","er","tr","minDate","maxDate","excludeDates","excludeDateIntervals","includeDates","includeDateIntervals","filterDate","lr","ar","nr","or","sr","ir","dr","cr","excludeTimes","includeTimes","filterTime","ur","minTime","maxTime","fr","every","mr","yr","Dr","vr","wr","gr","kr","br","startPeriod","endPeriod","Sr","Cr","yearsList","incrementYears","decrementYears","onCancel","setState","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","dropdownRef","createRef","renderOptions","Component","Mr","dropdownVisible","onSelectChange","renderSelectOptions","visibility","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","onSelect","setOpen","dropdownMode","renderScrollMode","renderSelectMode","Pr","monthNames","isSelectedMonth","Er","Nr","useShortMonthInDropdown","xr","Or","monthYearsList","scrollableMonthYearDropdown","Yr","Ir","Tr","handleOnKeyDown","disabledKeyboardNavigation","isSameDay","preSelection","highlightDates","startDate","endDate","selectsStart","selectsEnd","selectsRange","selectsDisabledDaysInRange","selectingDate","isInSelectingRange","dayClassName","isExcluded","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isCurrentDay","isWeekend","isAfterMonth","isBeforeMonth","getHighLightedClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","getTabIndex","isInputFocused","inline","shouldFocusDayInline","containerRef","dayEl","preventScroll","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","renderDayContents","getClassNames","onKeyDown","handleClick","handleMouseEnter","getAriaLabel","handleFocusDay","Lr","weekNumber","ariaLabelPrefix","Rr","onDayClick","onDayMouseEnter","onWeekSelect","shouldCloseOnSelect","formatWeekNumber","calendarStartDay","showWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayClick","handleDayMouseEnter","renderDays","Fr","orderInDisplay","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","onMonthClick","handleMonthNavigation","monthClassName","isRangeStartMonth","isRangeEndMonth","isCurrentMonth","isSelectedQuarter","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","showTwoColumnMonthYearPicker","showFourColumnMonthYearPicker","onMonthKeyDown","getMonthClassNames","onQuarterClick","getQuarterClassNames","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","Ar","timeClassName","isSelectedTime","injectTimes","intervals","openToDate","liClasses","centerLi","list","calcCenterPosition","monthRef","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","offsetTop","qr","yearItemNumber","YEAR_REFS","requestAnimationFrame","updateFocusOnPaginate","handleYearClick","onYearClick","handleYearNavigation","isCurrentYear","onYearKeyDown","getYearTabIndex","getYearClassNames","Wr","timeString","customTimeInput","timeInputLabel","renderTimeInput","Br","showPopperArrow","arrowProps","Kr","Hr","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthButtonLabel","previousYearButtonLabel","previousMonthAriaLabel","previousYearAriaLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthButtonLabel","nextYearButtonLabel","nextMonthAriaLabel","nextYearAriaLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","monthDate","renderCurrentMonth","onFocus","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","monthContainer","customHeaderCount","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","renderHeader","monthAriaLabelPrefix","handleOnDayKeyDown","handleMonthMouseLeave","timeFormat","timeIntervals","withPortal","showTimeInput","getDateInView","assignMonthContainer","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","jr","portalRoot","portalHost","getElementById","portalId","createPortal","Qr","Vr","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","Ur","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","targetComponent","popperOnKeyDown","Popper","modifiers","placement","popperContainer","Reference","$r","zr","Gr","Jr","getPreSelection","startOpen","preventFocus","focused","preventFocusTimeout","cancelFocusInput","calcInitialState","lastPreSelectChange","Zr","setBlur","readOnly","preventOpenOnFocus","inputFocusTimeout","onBlur","onChangeRaw","isDefaultPrevented","Xr","strictParsing","setSelected","allowSameDay","focusSelectedMonth","onInputClick","calendar","componentNode","inputOk","handleSelect","onInputError","onClearClick","closeOnScroll","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleChange","handleFocus","onInputKeyDown","autoFocus","placeholderText","autoComplete","ariaDescribedBy","ariaInvalid","ariaLabelledBy","ariaRequired","isClearable","clearButtonTitle","clearButtonClassName","ariaLabelClose","onScroll","onCalendarOpen","onCalendarClose","clearPreventFocusTimeout","renderDateInput","renderClearButton","renderCalendar","renderInputContainer","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","_assertThisInitialized","_getPrototypeOf","receiver","desc","_setPrototypeOf","_inherits","subClass","superClass","_typeof","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","requestAnimFrame","throttled","thisArg","updateFn","updateArgs","ticking","_toLeftRightCenter","_alignStartEnd","uid","isNullOrUndef","isNumberFinite","finiteOrDefault","valueOrDefault","toDimension","dimension","endsWith","each","loopable","reverse","_elementsEqual","a0","a1","ilen","v0","datasetIndex","clone$1","klen","isValidKey","_merger","tval","sval","sources","merger","mergeIf","_mergerIf","indexOfDotOrLength","resolveObjectKey","_capitalize","defined","setsEqual","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","niceNum","roundedRange","almostEquals","niceRange","fraction","isNumber","epsilon","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","sqrt","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","atEdge","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","lim","p2b","n2b","b2n","n2p","map$1","hexString","isShort","alpha","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","p1","p2","hwb2rgb","hsv2rgb","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","ok","nk","unpacked","tkeys","unpack","transparent","RGB_RE","modHSL","ratio","fromObject","functionParse","rgbParse","Color","hexParse","_rgb","_valid","hslString","weight","w2","w1","rgb1","rgb2","interpolate","deg","rotate","index_esm","isPatternOrGradient","getHoverColor","saturate","darken","overrides","descriptors","getScope$1","scope","_descriptors","datasets","devicePixelRatio","chart","getDevicePixelRatio","elements","events","lineHeight","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","includeInvisible","maintainAspectRatio","onHover","parsing","plugins","scale","scales","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","_scriptable","startsWith","_indexable","_fallback","_measureText","longest","textWidth","measureText","_longestText","arrayOfThings","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","rect","borderWidth","stroke","_isPointInArea","point","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","strokeWidth","strokeColor","setRenderOpts","strokeStyle","lineWidth","strokeText","fillText","decorateText","translation","fillStyle","textAlign","textBaseline","strikethrough","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","_readValueToProps","objProps","toTRBL","toTRBLCorners","toPadding","toFont","fallback","toFontString","cacheable","createContext","parentContext","_lookup","cmp","hi","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","_arrayUnique","Set","_createResolver","scopes","prefixes","rootScopes","_resolve","toStringTag","deleteProperty","_keys","_cached","_resolveWithPrefixes","_scopes","getKeysFromAllScopes","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","isScriptable","needsSubResolver","createSubResolver","_resolveScriptable","isIndexable","resolver","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","readKey","resolveFallback","getScope","addScopes","parentScopes","parentFallback","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","iScale","_parsing","EPSILON","getPoint","points","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","pointBefore","valueAxis","iPixel","vPixel","capControlPoint","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","positions","getPositionedStyle","suffix","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","offsetX","offsetY","box","shadowRoot","useOffsetPos","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","maxHeight","containerSize","containerStyle","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","readUsedSize","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","formatNumber","cacheKey","formatter","Intl","NumberFormat","getNumberFormat","getRtlAdapter","rectX","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","original","getPropertyPriority","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_boundSegment","bounds","prevValue","startBound","endBound","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","sub","splitByStyles","segmentOptions","chartContext","_chart","readStyle","_datasetIndex","prevStyle","addStyle","styleChanged","p0","p0DataIndex","p1DataIndex","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","animator","_request","_charts","_running","_lastDate","anims","callbacks","numSteps","duration","initial","currentStep","_update","_refresh","draw","_active","_total","tick","_notify","complete","_getAnims","_duration","interpolators","boolean","factor","c0","mix","Animation","cfg","currentValue","_fn","_easing","easing","_start","_loop","_target","_prop","_from","_to","_promises","elapsed","remain","promises","rej","resolved","animationOptions","colors","properties","active","resize","animations","Animations","config","_properties","configure","animatedProps","getOwnPropertyNames","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","wait","awaitAll","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","otherValue","singleMode","isStacked","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","_cachedMeta","_stacks","iAxis","axis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","_stacked","addElements","dataset","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rAxisID","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","xAxisKey","yAxisKey","parsedValue","canStack","otherScale","_getOtherScale","createStack","NEGATIVE_INFINITY","getUserBounds","minDefined","maxDefined","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","toClip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","resolveNamedOptions","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_dataChanges","_sync","newCount","computeMinSampleSize","curr","_cache","$bar","visibleMetas","getAllParsedValues","getAllScaleValues","_length","updateMinAndPrev","getPixelForValue","ticks","getPixelForTick","parseValue","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","borderProps","enableBorderRadius","parseEdge","startEnd","setInflateAmount","inflateAmount","BarController","iAxisKey","vAxisKey","bars","getBasePixel","isHorizontal","ruler","_getRuler","firstOpts","includeOptions","updateSharedOptions","vpixels","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","updateElement","grouped","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","skipNull","maxBarThickness","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","grid","_value_","beginAtZero","BubbleController","DoughnutController","innerRadius","outerRadius","getter","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_getRotationExtents","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","generateLabels","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","LineController","_dataset","animationsDisabled","pointCount","getStartAndCountOfVisiblePoints","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","scaleRangesChanged","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","lastPoint","updateControlPoints","PolarAreaController","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","circular","pointLabels","PieController","RadarController","_fullLoop","pointPosition","getPointPositionForValue","ScatterController","abstract","DateAdapter","timestamp","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","_reversePixels","getRange","evaluateInteractionItems","handler","getSortedVisibleDatasetMetas","getIntersectItems","useFinalPosition","isPointInArea","inRange","getNearestCartesianItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","getProps","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","layout","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","fullSize","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","setBoxDims","placeBoxes","userPadding","autoPadding","_layers","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","change","handleMaxPadding","BasePlatform","BasicPlatform","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","passive","removeListener","nodeListContains","createAttachObserver","observer","trigger","addedNodes","removedNodes","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","native","fromNativeEvent","addListener","DomPlatform","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","attach","detach","isConnected","final","defaultRoutes","formatters","numeric","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","newTicks","skipMajors","evenMajorSpacing","diff","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","offsetFromEdge","sample","numItems","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","Scale","_margins","labelRotation","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","maxLabelDiagonal","numTicks","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetLeft","offsetRight","generateTickLabels","_computeLabelSizes","tickFont","fontString","nestedLabel","caches","widths","heights","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","decimal","getBaseValue","createTickContext","optionTicks","rot","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","ticksLength","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","positionAxisID","limit","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","tickTextAlign","labelPadding","fillRect","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","gz","axisID","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","registry","controllers","_typedRegistries","_each","_get","typedRegistry","reg","_getRegistryForType","isForType","_exec","itemReg","camelMethod","PluginService","_init","hook","_createDescriptors","plugin","cancelable","_oldCache","_notifyStateChanges","getPlugin","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","clear","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","getResolver","subPrefixes","needContext","subResolver","resolverCache","hasFunction","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onComplete","onAnimationProgress","onProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","Chart","userConfig","initialCanvas","existingChart","chartOptionScopes","OffscreenCanvas","_detectPlatform","updateConfig","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","debounce","resizeDelay","listen","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","hasUpdated","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","order","updateIndex","ControllerClass","getController","getElement","_updateMetasets","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_stop","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","_add","detached","_remove","isAttached","activeElements","lastActive","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","lineJoin","fullCircles","drawFullCircleBorders","unregister","ArcElement","chartX","chartY","rAdjust","betweenAngles","withinRadius","halfAngle","halfRadius","radiusOffset","drawArc","lineCap","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","_path","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_points","_segments","_pointsUpdated","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","interpolated","inRange$1","hitRadius","PointElement","mouseX","mouseY","hoverRadius","getBarBounds","bar","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","skipX","skipY","addNormalRectPath","inflateRect","refRect","BarElement","addRectPath","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","itemHeight","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","rtlHelper","hitbox","_draw","defaultColor","halfFontSize","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","_element","_args","adjustHitBoxes","afterEvent","handleEvent","ci","_padding","textSize","fontOpts","_drawArgs","plugin_title","titleBlock","createTitle","positioners","average","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getBeforeBody","getBody","getAfterBody","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","textColor","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","_willRender","labelCount","findOrAddLabel","addedLabels","addIfString","CategoryScale","_startValue","_valueRange","_addedLabels","added","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","niceMin","niceMax","numSpaces","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","rounded","almostWhole","decimalPlaces","relativeLabelSize","LinearScaleBase","_endValue","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","_maxDigits","LinearScale","handleTickRangeOptions","isMajor","tickVal","LogarithmicScale","_zero","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","updateLimits","setCenterPoint","_pointLabelItems","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","hLimits","vLimits","pathRadiusLine","RadialLinearScale","leftMovement","rightMovement","topMovement","bottomMovement","scalingFactor","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","gridLineOpts","drawRadiusLine","animate","INTERVALS","millisecond","common","steps","week","UNITS","sorter","adapter","_adapter","_parseOpts","parser","isoWeekday","startOf","determineUnitForAutoTicks","minUnit","capacity","interval","addTick","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","normalized","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","_toConsumableArray","arrayLikeToArray","iter","startOfUTCWeek","dirtyDate","dirtyOptions","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCDay","setUTCDate","getUTCDate","setUTCHours","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","getTimezoneOffsetInMilliseconds","utcDate","getMilliseconds","setUTCFullYear","startOfUTCISOWeek","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","token","isProtectedWeekYearToken","throwProtectedError","_inheritsLoose","startOfDay","_unsupportedIterableToArray","minLen","addMilliseconds","dirtyAmount","getUTCWeekYear","getUTCFullYear","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","startOfWeek","addDays","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","_arrayLikeToArray","arr2","subMilliseconds","dateLongFormatter","timeLongFormatter","longFormatters","dateTimeFormat","matchResult","datePattern","timePattern","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","startOfQuarter","currentMonth","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","predicate","formatRelative","_baseDate","localize","ordinalNumber","rem100","narrow","abbreviated","wide","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","startOfUTCWeekYear","firstWeek","MILLISECONDS_IN_WEEK","getUTCWeek","startOfUTCISOWeekYear","fourthOfJanuary","getUTCISOWeek","_CSSTransition","_interopRequireDefault","_ReplaceTransition","_TransitionGroup","_Transition","__esModule","Transition","TransitionGroup","ReplaceTransition","CSSTransition","objA","objB","aKeys","bKeys","keysMap","aValueKeys","bValueKeys","aValueKey","isDate","isValid","addMinutes","MILLISECONDS_IN_HOUR","addHours","addWeeks","addYears","getDaysInMonth","monthIndex","lastDayOfMonth","dirtyMonth","dateWithDesiredMonth","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_objectWithoutProperties","sourceSymbolKeys","defaultDatasetIdKey","reforwardRef","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","cloneData","nextData","ChartComponent","redraw","fallbackContent","updateMode","canvasRef","chartRef","renderChart","ChartJS","destroyChart","destroy","nextOptions","forwardRef","createTypedChart","registerables","Bar","Doughnut","memoize","reactPropsRegex","isPropValid","Function","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","browser","argv","once","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","newObj","_interopRequireWildcard","_react","_reactDom","_reactLifecyclesCompat","_React$Component","_this","initialStatus","parentGroup","transitionGroup","appear","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","_proto","getChildContext","_ref","prevState","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","mounting","findDOMNode","performEnter","performExit","_this2","appearing","timeouts","enterTimeout","onEnter","safeSetState","onEntering","onTransitionEnd","onEntered","_this3","onExit","onExiting","onExited","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","_this$props","childProps","Children","only","_default","polyfill","componentWillMount","componentWillReceiveProps","nextProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","classNamesShape","timeoutsShape","_propTypes","_ChildMapping","handleExited","firstRender","appeared","mounted","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","isRequired","createRoot","hydrateRoot","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","stylis_min","substring","da","ea","ha","ja","ka","aa","la","ma","na","use","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","orphans","tabSize","widows","zIndex","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","hasElementType","hasMap","hasSet","hasArrayBuffer","isView","equal","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","forceUpdate","isPureReactComponent","__self","__source","_owner","escape","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","isValidElement","lazy","_payload","startTransition","unstable_act","useContext","useDebugValue","useDeferredValue","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useSyncExternalStore","useTransition","encodeURIComponent","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","setAttributeNS","xlinkHref","va","wa","ya","za","Ea","Fa","Ga","Ia","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","Ra","Sa","nodeName","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","bb","db","eb","defaultSelected","gb","dangerouslySetInnerHTML","ib","jb","kb","lb","mb","nb","namespaceURI","firstChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","gridArea","lineClamp","qb","rb","sb","tb","menuitem","embed","img","keygen","track","wbr","ub","vb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ed","fd","gd","Uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","altKey","metaKey","getModifierState","zd","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Up","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Rd","repeat","which","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","Zd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","documentMode","detachEvent","attachEvent","nextSibling","compareDocumentPosition","HTMLIFrameElement","contentWindow","contentEditable","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","animationend","animationiteration","animationstart","transitionend","df","gf","lf","mf","Ub","of","pf","qf","rf","sf","tf","uf","parentWindow","vf","wf","xa","$a","char","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","bh","ch","eventTime","lane","dh","eh","fh","gh","hh","ih","jh","kh","nh","_reactInternals","mh","oh","shouldComponentUpdate","ph","qh","rh","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","bi","baseQueue","ei","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","ii","ji","ki","getSnapshot","li","ni","lastEffect","stores","pi","qi","ti","ui","vi","wi","yi","zi","Di","Ei","Fi","Gi","Ii","Ji","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","Oi","Pi","Qi","Ri","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","qj","tj","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","createElementNS","createTextNode","Hj","Ij","Jj","Kj","Lj","WeakSet","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","Yj","Zj","ak","onCommitFiberUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","pendingChildren","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","dl","gl","il","jl","zj","$k","reportError","ml","_internalRoot","nl","ol","ql","unmount","unstable_scheduleHydration","form","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","wl","supportsFiber","inject","unstable_strictMode","flushSync","hydrate","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","global","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","script","onreadystatechange","installReadyStateChangeImplementation","task","jsx","jsxs","superPropBase","isNativeReflectConstruct","possibleConstructorReturn","assertThisInitialized","_construct","Class","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","rootRecord","exception","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","arrayWithHoles","iterableToArrayLimit","nonIterableRest","strings","arrayWithoutHoles","iterableToArray","nonIterableSpread","interpolations","typeOf","EMPTY_ARRAY","EMPTY_OBJECT","getComponentName","isStyledComponent","styledComponentId","SC_ATTR","REACT_APP_SC_ATTR","SC_VERSION","__VERSION__","IS_BROWSER","DISABLE_SPEEDY","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","STATIC_EXECUTION_CONTEXT","throwStyledComponentsError","DefaultGroupedTag","groupSizes","Uint32Array","indexOfGroup","group","insertRules","rules","oldBuffer","oldSize","throwStyledError","ruleIndex","insertRule","clearGroup","startIndex","endIndex","deleteRule","getGroup","getRule","groupIDRegister","reverseRegister","nextFreeGroup","getGroupForId","getIdForGroup","setGroupForId","SELECTOR","MARKER_RE","rehydrateNamesFromContent","registerName","rehydrateSheetFromTag","getNonce","__webpack_nonce__","makeStyleTag","nonce","CSSOMTag","styleSheets","ownerNode","rule","_error","cssRules","TextTag","refNode","VirtualTag","SHOULD_REHYDRATE","defaultOptions","isServer","useCSSOMInjection","StyleSheet","globalStyles","gs","server","registerId","reconstructWithOptions","withNames","allocateGSInstance","hasNameForId","groupNames","clearNames","clearRules","clearTag","AD_REPLACER_R","getAlphabeticChar","generateAlphabeticName","phash","isStaticRules","SEED","ComponentStyle","componentId","staticRulesId","isStatic","NODE_ENV","baseHash","generateAndInjectStyles","executionContext","stylis","cssStatic","flatten","generateName","cssStaticFormatted","dynamicHash","partRule","partChunk","partString","cssFormatted","COMMENT_REGEX","COMPLEX_SELECTOR_PREFIX","createStylisInstance","_componentId","_selector","_selectorRegexp","_consecutiveSelfRefRegExp","Stylis","parsingRules","parseRulesPlugin","toSheet","block","selectors","parents","ns","depth","delimiter","selfReferenceReplacer","stringifyRules","flatCSS","cssStr","parsedRules","StyleSheetContext","StyleSheetConsumer","StylisContext","masterSheet","masterStylis","useStyleSheet","useStylis","StyleSheetManager","stylisPlugins","setPlugins","contextStyleSheet","disableCSSOMInjection","disableVendorPrefixes","shallowequal","Keyframes","stylisInstance","resolvedName","getName","uppercaseCheck","uppercasePattern","msPattern","prefixAndLowerCase","hyphenateStyleName","isFalsish","ruleSet","isPlainObject","objToCssArray","prevKey","isCss","hyphenate","unitless","addTag","interleave","originalConsoleError","providedTheme","escapeRegex","dashesAtEnds","isTag","mixinDeep","ThemeContext","ThemeConsumer","outerTheme","themeContext","identifiers","createStyledComponent","isTargetStyledComp","isCompositeComponent","parentComponentId","generateComponentId","finalAttrs","shouldForwardProp","filterFn","elementToBeCreated","WrappedStyledComponent","componentStyle","forwardedComponent","forwardedRef","componentAttrs","foldedComponentIds","resolvedAttrs","resolvedAttrDef","attrDef","determineTheme","generatedClassName","warnTooManyClasses","refToForward","$as","as","isTargetTag","computedProps","propsForElement","validAttr","withComponent","previousComponentId","optionsToCopy","newComponentId","_foldedDefaultProps","hoist","constructWithOptions","componentConstructor","isValidElementType","templateFunction","withConfig","StyledComponent","domElement","GlobalStyle","createStyles","removeStyles","renderStyles","createGlobalStyle","globalStyle","GlobalStyleComponent","keyframes","ServerStyleSheet","_emitSheetCSS","SC_ATTR_VERSION","getStyleTags","sealed","getStyleElement","seal","collectStyles","interleaveWithNodeStream","WithTheme","themeProp","hoistStatics","useTheme","__PRIVATE__","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","bigint","bool","instanceOf","objectOf","oneOf","exact","checkPropTypes","_addClass","_removeClass","removeClasses","activeClassName","reflowAndAddClass","appearClassName","doneClassName","enterClassName","isStringClassNames","_this$getClassNames6","_hasClass","baseVal","replaceClassName","origClass","classToRemove","_len2","_key2","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","_child$props","inProp","_React$Children$toArr","mergeChildMappings","getProp","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","mapFn","mapper","getValueForKey","nextKeysPending","pendingKeys","childMapping","nextKey","pendingNextKey","subMinutes","subHours","subDays","subWeeks","subMonths","subYears","getQuarter","dirtySeconds","dirtyMinutes","dirtyHours","setQuarter","dirtyQuarter","oldQuarter","setYear","dirtyYear","dirtyDatesArray","datesArray","currentDate","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","yearDiff","monthDiff","differenceInCalendarWeeks","startOfWeekLeft","startOfWeekRight","differenceInCalendarYears","startOfMonth","startOfYear","cleanDate","endOfDay","endOfWeek","endOfMonth","isEqual","dirtyLeftDate","dirtyRightDate","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameYear","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isWithinInterval","endTime","isNodeFound","ignoreClass","correspondingElement","passiveEventSupport","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","eventName","handlerOptions","onClickOutsideHOC","WrappedComponent","_class","_temp","_Component","__outsideClickHandler","__clickOutsideHandlerProp","getInstance","handleClickOutside","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","testPassiveEventSupport","eventTypes","findHighest","composed","composedPath","disableOnClickOutside","getRef","instanceRef","wrappedRef","getClass","_getRequireWildcardCache","hasPropertyDescriptor","_arrays","_Autowhatever","_theme","_objectSpread","_isNativeReflectConstruct","alwaysTrue","REASON_SUGGESTIONS_REVEALED","REASON_INPUT_FOCUSED","REASON_INPUT_CHANGED","REASON_ESCAPE_PRESSED","Autosuggest","_super","_ref2","_alwaysRenderSuggestions","alwaysRenderSuggestions","justClickedOnSuggestionsContainer","suggestionsContainer","autowhatever","_ref3","sectionIndex","itemIndex","updateHighlightedSuggestion","pressedSuggestion","justSelectedSuggestion","justMouseEntered","multiSection","onSuggestionsClearRequested","onSuggestionSelected","onSuggestionsFetchRequested","keepSuggestionsOnSelect","shouldKeepSuggestionsOnSelect","suggestion","suggestionValue","reason","resetHighlightedSuggestion","_this$props2","focusInputOnSuggestionClick","_this$getSuggestionIn","getSuggestionIndices","findSuggestionElement","suggestionIndex","clickedSuggestion","getSuggestion","clickedSuggestionValue","getSuggestionValue","maybeCallOnChange","closeSuggestions","_this$props3","inputProps","shouldRenderSuggestions","highlightedSuggestion","getHighlightedSuggestion","shouldRender","isFocused","highlightedSectionIndex","highlightedSuggestionIndex","valueBeforeUpDown","isCollapsed","blurEvent","_ref4","onSuggestionMouseEnter","onSuggestionMouseLeave","onMouseDown","onSuggestionMouseDown","onTouchStart","onSuggestionTouchStart","onTouchMove","onSuggestionTouchMove","onSuggestionClick","_ref5","containerProps","renderSuggestionsContainer","query","getQuery","justPressedUpDown","onDocumentMouseDown","onDocumentMouseUp","itemsContainer","shouldResetHighlighting","highlightFirstSuggestion","suggestions","willRenderSuggestions","revealSuggestions","_this$props4","onSuggestionHighlighted","shouldResetValueBeforeUpDown","_this$props5","getSectionSuggestions","_this$state","suggestionElement","startNode","newValue","_this$props$inputProp","_this$props6","renderInputComponent","renderSuggestion","renderSectionTitle","_this$state2","_onFocus","_onKeyDown","isOpen","autowhateverInputProps","newHighlightedSectionIndex","newHighlightedItemIndex","getSuggestionValueByIndex","_newValue","willCloseSuggestions","renderSuggestionData","renderItemsContainer","renderItem","renderItemData","getSectionItems","highlightedItemIndex","itemProps","mapToAutowhateverTheme","storeAutowhateverRef","arrA","arrB","_sectionIterator","_reactThemeable","_SectionTitle","_ItemList","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","emptyObject","Autowhatever","userRef","highlightedItem","section","nextPrev","_this$sectionIterator2","sectionIterator","setSectionsItems","setSectionIterator","setTheme","ensureHighlightedItemIsVisible","sectionsItems","sectionsLengths","allSectionsAreEmpty","itemsCount","keyPrefix","sectionKeyPrefix","isFirstSection","onHighlightedItemChange","getItemId","storeItemsListReference","itemOffsetRelativeToContainer","offsetParent","renderedItems","renderSections","renderItems","ariaActivedescendant","itemsContainerId","inputComponent","storeInputReference","storeItemsContainerReference","containerOpen","inputOpen","inputFocused","itemsContainerOpen","itemsList","itemFirst","itemHighlighted","sectionContainer","sectionContainerFirst","sectionTitle","sliceIterator","_position","nextNonEmptySectionIndex","_position2","prevNonEmptySectionIndex","isLast","_objectAssign","_objectAssign2","truthy","classNameDecorator","propIsEnumerable","ToObject","ownEnumerableKeys","_compareObjects","SectionTitle","_Item","ItemsList","sectionPrefix","isItemPropsFunction","isFirst","isHighlighted","itemKey","itemPropsObj","allItemProps","storeHighlightedItemReference","restProps","storeItemReference","suggestionsContainerOpen","suggestionsList","suggestionFirst","suggestionHighlighted","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","unwrapArray","safeInvoke","setRef","fromEntries","useIsomorphicLayoutEffect","getWindow","isHTMLElement","isShadowRoot","ShadowRoot","includeScale","scaleX","scaleY","getWindowScroll","win","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getNodeScroll","clientLeft","clientTop","getLayoutRect","clientRect","getParentNode","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","perspective","contain","getContainingBlock","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","visited","modifier","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","reference","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","mergeByName","_ref3$options","effect","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","roundOffsetsByDPR","getOppositePlacement","matched","getOppositeVariationPlacement","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","within","mathMax","mathMin","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","_options$scroll","_options$resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","initialStyles","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevOptions","optionsWithDefaults","updateStateModifier","ReactDOM","popperOptions","popperInstanceRef","popperInstance","defaultCreatePopper","NOOP","NOOP_PROMISE","_ref$placement","_ref$strategy","_ref$modifiers","innerRef","setPopperElement","_React$useState2","setArrowElement","_usePopper","childrenProps","refHandler","dirtyObject","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","numericPatterns","timezonePatterns","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","parsers","incompatibleTokens","isTwoDigitYear","validate","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","setUTCMonth","dirtyWeek","setUTCWeek","dirtyISOWeek","isoWeek","setUTCISOWeek","subPriority","isLeapYear","getUTCMonth","wholeWeekDays","setUTCISODay","isPM","getUTCHours","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","dateString","formatString","defaultLocale","subFnOptions","setters","dateToSystemTimezone","tokens","firstCharacter","longFormatter","usedTokens","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","incompatibleToken","usedToken","fullToken","cleanEscapedString","uniquePrioritySetters","setter","setterArray","convertedDate","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","addLeadingZeros","targetLength","output","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","formatTimezoneWithOptionalMinutes","formatTimezone","lightFormatters","signedWeekYear","weekYear","dayOfYear","startOfYearTimestamp","difference","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","_originalDate","originalDate","dirtyFormatStr","formatStr","formatterOptions","startOfISOWeek","getISOWeekYear","startOfISOWeekYear","getISOWeek","millisecondsInHour","parseISO","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","restDateString","parseTime","timezone","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","regex","captures","century","isWeekDate","parseDateUnit","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","validateDate","validateDayOfYearDate","parseTimeUnit","validateTime","timezoneString","_hours","validateTimezone","ariaLabel","Tag","btnOutlineColor","defaultAriaLabel","inverse","Card","CardHeader","CardBody","wrapTag","closeAriaLabel","ModalHeader","WrapTag","closeIcon","ModalBody","FormGroup","stringOrNumberProp","columnProps","xs","sm","xl","getColumnSizeClass","isXs","colWidth","colSize","Label","htmlFor","colClasses","columnProp","colClass","_classNames","colSizeInterfix","bsSize","invalid","plaintext","addon","Input","checkInput","isNotaNumber","formControlClass","ModalFooter","rowColsPropType","noGutters","Col","_colClass","bordered","borderless","responsiveTag","ResponsiveTag","responsiveClassName","InputGroup","InputGroupText","defaultNode","baseClass","baseClassActive","otherProps","transitionProps","FadePropTypes","centered","scrollable","keyboard","labelledBy","onOpened","onClosed","wrapClassName","modalClassName","backdropClassName","contentClassName","fade","backdropTransition","modalTransition","unmountOnClose","returnFocusAfterClose","trapFocus","propsToOmit","_originalBodyPadding","getFocusableChildren","handleBackdropClick","handleBackdropMouseDown","handleEscape","handleStaticBackdropAnimation","manageFocusAfterClose","clearBackdropAnimationTimeout","showStaticBackdropAnimation","_isMounted","ev","_dialog","modalIndex","openCount","isAppearing","getFocusedChild","currentFocus","focusableChildren","_mouseDownElement","totalFocusable","focusedIndex","_backdropAnimationTimeout","_triggeringElement","_mountContainer","modalOpenClassName","modalOpenClassNameRegex","renderModalDialog","dialogBaseClass","isModalHidden","modalAttributes","onKeyUp","hasTransition","Backdrop"],"mappings":"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Cf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,MAAe,MAInBC,GAAiB,CACpB,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,YAGD,SAASC,GAAOpnE,GAA6D,OAAOA,EAAI0vB,KAAI,SAASxd,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,MAIzI,IA4FIm1D,GAAsB7P,GA5FE4P,GAAO,CAElC,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAKGvE,GAAO,CACH,EAAa,SACb,EAAa,UACb,GAAa,UACb,GAAa,QACb,GAAa,SACb,GAAa,QACb,GAAa,OACb,GAAa,gBACb,IAAa,SAGjByE,GAAQ,CACX,SAAiB,EACjB,UAAiB,EACjB,UAAiB,GACjB,QAAiB,GACjB,SAAiB,GACjB,QAAiB,GACjB,OAAiB,GACjB,gBAAiB,GACjB,QAAiB,KAOdC,GAAgC,CAEnC,6EAA8E,YAC9E,uDAAwD,YACxD,0DAA2D,YAC3D,uDAAwD,YACxD,gFAAiF,YAGjF,4EAA6E,SAC7E,qCAAsC,SACtC,sCAAuC,OAGvC,6EAA8E,SAC9E,sCAAuC,SAG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AK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,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AAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,gBACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAA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IGnB,EGpUT,ICIMlyP,GAAS,SAAC6H,mBCCQ8rP,EACtBC,EACA/rP,EACA0sB,qBAAkB+yN,IAEbuM,6BAAmBhsP,UACfghP,EAAiB,EAAGprN,OAAO51B,QAK9BisP,EAAmB,kBAAaF,EAAqB/rP,EAAK0sB,EAAShT,oCAGzEuyO,EAAiBC,WAAa,mBAC5BJ,EAAqBC,EAAsB/rP,OAAU0sB,KAAYupI,KAGnEg2F,EAAiB3wO,MAAQ,mBACvBwwO,EAAqBC,EAAsB/rP,OACtC0sB,GACHpR,MAAOt5B,MAAMkC,UAAUK,OAAOmoC,EAAQpR,MAAOA,GAAO1sB,OAAOwC,aAGxD66P,EDzBOjsP,CAAqCmsP,GAAiBnsP,IDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,WACA,SCnIUlQ,SAAQ,YAClBqI,GAAOi0P,GAAcj0P,GAAOi0P,UELTC,yBAOPxL,EAAgB4D,QACrB5D,MAAQA,OACR4D,YAAcA,OACdE,SAAWL,EAAczD,GAI9BwC,EAAW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","file":"static/js/2.0b16eec0.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","/*!\n* sweetalert2 v11.4.19\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Sweetalert2 = factory());\n}(this, function () { 'use strict';\n\n const consolePrefix = 'SweetAlert2:';\n /**\n * Filter the unique values into a new array\n * @param arr\n */\n\n const uniqueArray = arr => {\n const result = [];\n\n for (let i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n\n return result;\n };\n /**\n * Capitalize the first letter of a string\n * @param {string} str\n * @returns {string}\n */\n\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n /**\n * @param {NodeList | HTMLCollection | NamedNodeMap | DOMTokenList} nodeList\n * @returns {array}\n */\n\n const toArray = nodeList => Array.prototype.slice.call(nodeList);\n /**\n * Standardize console warnings\n * @param {string | array} message\n */\n\n const warn = message => {\n console.warn(\"\".concat(consolePrefix, \" \").concat(typeof message === 'object' ? message.join(' ') : message));\n };\n /**\n * Standardize console errors\n * @param {string} message\n */\n\n const error = message => {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n /**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\n\n const previousWarnOnceMessages = [];\n /**\n * Show a console warning, but only if it hasn't already been shown\n * @param {string} message\n */\n\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n /**\n * Show a one-time console warning about deprecated params/methods\n */\n\n const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n * @param arg\n */\n\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)];\n\n const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n const deprecatedParams = {};\n const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n /**\n * Is valid parameter\n * @param {string} paramName\n */\n\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n /**\n * Is valid parameter for Swal.update() method\n * @param {string} paramName\n */\n\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n * @param {string} paramName\n */\n\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n const checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n /**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\n const showWarningsForParams = params => {\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n for (const param in params) {\n checkIfParamIsValid(param);\n\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n\n checkIfParamIsDeprecated(param);\n }\n };\n\n const swalPrefix = 'swal2-';\n /**\n * @param {string[]} items\n * @returns {object}\n */\n\n const prefix = items => {\n const result = {};\n\n for (const i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n\n return result;\n };\n const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'no-war']);\n const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n\n const getContainer = () => document.body.querySelector(\".\".concat(swalClasses.container));\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const elementByClass = className => {\n return elementBySelector(\".\".concat(className));\n };\n /**\n * @returns {HTMLElement | null}\n */\n\n\n const getPopup = () => elementByClass(swalClasses.popup);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getIcon = () => elementByClass(swalClasses.icon);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTitle = () => elementByClass(swalClasses.title);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getImage = () => elementByClass(swalClasses.image);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getConfirmButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getDenyButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getLoader = () => elementBySelector(\".\".concat(swalClasses.loader));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCancelButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getActions = () => elementByClass(swalClasses.actions);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getFooter = () => elementByClass(swalClasses.footer);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js\n\n const focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n\n const getFocusableElements = () => {\n const focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex'));\n const tabindexB = parseInt(b.getAttribute('tabindex'));\n\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n\n return 0;\n });\n const otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1');\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el));\n };\n /**\n * @returns {boolean}\n */\n\n const isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n /**\n * @returns {boolean}\n */\n\n const isToast = () => {\n return getPopup() && hasClass(getPopup(), swalClasses.toast);\n };\n /**\n * @returns {boolean}\n */\n\n const isLoading = () => {\n return getPopup().hasAttribute('data-loading');\n };\n\n const states = {\n previousBodyPadding: null\n };\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, \"text/html\");\n toArray(parsed.querySelector('head').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n toArray(parsed.querySelector('body').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n\n const classList = className.split(/\\s+/);\n\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n\n return true;\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n\n const removeCustomClasses = (elem, params) => {\n toArray(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n\n\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(typeof params.customClass[className], \"\\\"\"));\n }\n\n addClass(elem, params.customClass[className]);\n }\n };\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass} inputClass\n * @returns {HTMLInputElement | null}\n */\n\n const getInput = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n\n const focusInput = input => {\n input.focus(); // place cursor at end of text in text input\n\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n * @param {boolean} condition\n */\n\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const getDirectChildByClass = (elem, className) => {\n const childNodes = toArray(elem.childNodes);\n\n for (let i = 0; i < childNodes.length; i++) {\n if (hasClass(childNodes[i], className)) {\n return childNodes[i];\n }\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n\n const applyNumericalStyle = (elem, property, value) => {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} display\n */\n\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem.style.display = display;\n };\n /**\n * @param {HTMLElement} elem\n */\n\n const hide = elem => {\n elem.style.display = 'none';\n };\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement} */\n const el = parent.querySelector(selector);\n\n if (el) {\n el.style[property] = value;\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n\n const toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n /**\n * @returns {boolean}\n */\n\n const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n /**\n * @returns {boolean}\n */\n\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n\n if (isVisible(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n\n setTimeout(() => {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n\n const globalState = {};\n\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n\n\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n const sweetHTML = \"\\n
\\n \\n \\n
\\n \\n

\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\").replace(/(^|\\n)\\s*/g, '');\n /**\n * @returns {boolean}\n */\n\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n\n const resetValidationMessage = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n\n const range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n\n const rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n\n const checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage;\n file.onchange = resetValidationMessage;\n select.onchange = resetValidationMessage;\n checkbox.onchange = resetValidationMessage;\n textarea.oninput = resetValidationMessage;\n\n range.oninput = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n\n range.onchange = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n };\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n\n\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n /**\n * @param {HTMLElement} targetElement\n */\n\n\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n\n\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n const container = document.createElement('div');\n container.className = swalClasses.container;\n\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n noWarMessageForRussians(container, params);\n };\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions} params\n */\n\n const noWarMessageForRussians = (container, params) => {\n if (params.toast) {\n return;\n } // This message is targeted at people who are corrupted by propaganda, everybody else\n // is already against war either silently or actively.\n //\n // The point is to wrap the truth-bomb into a patriotic title so they will actually click it\n // and listen to the uncomfortable truth about the war from the people they love or respect.\n\n\n const message = getRandomElement([{\n text: 'ШВАРЦЕНЕГГЕР обратился
к РУССКОМУ НАРОДУ о войне',\n // Arnold is loved in Russia by all people including those who are for this war\n // His speech might change the mind of those who are brainwashed by propaganda\n youtubeId: 'fWClXZd9c78'\n }, {\n text: 'РУССКИЙ ПАТРИОТ
открыл главную тайну спецоперации',\n // In this video one of the most famous Russian nationalist leaders, Dmitry Demushkin,\n // explains that this war has no sense and produces the exact opposite result of what\n // it was intended to do.\n youtubeId: '_RjBNkn88yA'\n }, {\n text: 'ГЕРОЙ НОВОРОССИИ СТРЕЛКОВ
дал оценку ходу спецоперации',\n // In this video Igor Girkin, who played a key role in the annexation of Crimea,\n // explains that this war has failed already and all possible outcomes are bad for Russia.\n youtubeId: 'yUmzQT4C8JY'\n }, {\n text: 'ФИНСКИЙ ДРУГ РОССИИ
говорит ПО-РУССКИ о спецоперации',\n youtubeId: 'hkCYb6edUrQ'\n }, {\n text: 'ЮРИЙ ПОДОЛЯКА честно
о генералах РУССКОЙ АРМИИ',\n youtubeId: 'w4-_8BJKfpk'\n }, {\n text: 'Полковник ФСБ СТРЕЛКОВ
об успехах РОССИИ в спецоперации',\n youtubeId: 'saK5UTKroDA'\n }]); // The message will only be shown to Russian users visiting Russian sites\n\n if (/^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|xn--p1ai)$/)) {\n const noWar = document.createElement('div');\n noWar.className = swalClasses['no-war'];\n setInnerHtml(noWar, \"\").concat(message.text, \"\"));\n container.appendChild(noWar);\n container.style.paddingTop = '4em';\n }\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n } // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n } // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n /**\n * @param {object} param\n * @param {HTMLElement} target\n */\n\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n } // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n /**\n * @param {HTMLElement} target\n * @param {HTMLElement} elem\n */\n\n\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n\n if (0 in elem) {\n for (let i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n\n const animationEndEvent = (() => {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n const testEl = document.createElement('div');\n const transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n // Chrome, Safari and Opera\n animation: 'animationend' // Standard syntax\n\n };\n\n for (const i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i];\n }\n }\n\n return false;\n })();\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // Render all the buttons\n\n renderButtons(actions, loader, params); // Loader\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton(); // Render buttons\n\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n\n\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n }\n\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n\n\n function renderButton(button, buttonType, params) {\n toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n }\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContainer = (instance, params) => {\n const container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container');\n };\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n\n\n function handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n\n\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = \"grow-\".concat(grow);\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateProps = {\n awaitingPromise: new WeakMap(),\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /// \n /** @type {InputClass[]} */\n\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderInput = (instance, params) => {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]); // set attributes\n\n setAttributes(inputClass, params.inputAttributes); // set class\n\n inputContainer.className = swalClasses[inputClass];\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input) {\n if (rerender) {\n showInput(params);\n } // set custom class\n\n\n setCustomClass(params);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n const showInput = params => {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer); // input autofocus\n\n setTimeout(() => {\n focusInput(input);\n });\n };\n /**\n * @param {HTMLInputElement} input\n */\n\n\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n\n\n const setAttributes = (inputClass, inputAttributes) => {\n const input = getInput(getPopup(), inputClass);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n\n if (typeof params.customClass === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n input.id = swalClasses.input;\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n\n\n const getInputContainer = inputType => {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n\n\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(typeof inputValue, \"\\\"\"));\n }\n };\n /** @type Record Input> */\n\n\n const renderInputType = {};\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n\n\n renderInputType.select = (select, params) => {\n select.textContent = '';\n\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n setInputLabel(select, select, params);\n return select;\n };\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.id = swalClasses.checkbox;\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n\n\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291\n\n\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n const textareaResizeHandler = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n } // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n } // No content\n else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n\n show(icon); // Custom or default content\n\n setContent(icon, params);\n applyStyles(icon, params); // Animate icon\n\n addClass(icon, params.showClass.icon);\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const applyStyles = (icon, params) => {\n for (const iconType in iconTypes) {\n if (params.icon !== iconType) {\n removeClass(icon, iconTypes[iconType]);\n }\n }\n\n addClass(icon, iconTypes[params.icon]); // Icon color\n\n setColor(icon, params); // Success icon background color\n\n adjustSuccessIconBackgroundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n }; // Adjust success icon background color to match the popup background color\n\n\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n\n const successIconHtml = \"\\n
\\n \\n
\\n
\\n\";\n const errorIconHtml = \"\\n \\n \\n \\n \\n\";\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const setContent = (icon, params) => {\n let oldContent = icon.innerHTML;\n let newContent;\n\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n /**\n * @param {string} content\n * @returns {string}\n */\n\n\n const iconContent = content => \"
\").concat(content, \"
\");\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderImage = (instance, params) => {\n const image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image, ''); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n\n if (params.currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === params.currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n\n if (index !== params.progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n\n\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n\n return lineEl;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup(); // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n popup.insertBefore(getLoader(), getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Color\n\n if (params.color) {\n popup.style.color = params.color;\n } // Background\n\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses(popup, params);\n };\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n\n const addClasses = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // Icon class (#1842)\n\n\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n\n if (typeof params.didRender === 'function') {\n params.didRender(getPopup());\n }\n };\n\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n const getTemplateParams = params => {\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n\n\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n const getSwalParams = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-param')).forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n const value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n result[paramName] = false;\n }\n\n if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value);\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalButtons = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-button')).forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const image = templateContent.querySelector('swal-image');\n\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const icon = templateContent.querySelector('swal-icon');\n\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n\n result.iconHtml = icon.innerHTML;\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalInput = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const input = templateContent.querySelector('swal-input');\n\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n\n const inputOptions = templateContent.querySelectorAll('swal-input-option');\n\n if (inputOptions.length) {\n result.inputOptions = {};\n toArray(inputOptions).forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n */\n\n\n const getSwalStringParams = (templateContent, paramNames) => {\n const result = {};\n\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement} */\n\n const tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n toArray(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n\n\n const showWarningsForAttributes = (el, allowedAttributes) => {\n toArray(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(key => {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n }\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n\n\n function setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n\n validateCustomTargetElement(params); // Replace newlines with
in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
');\n }\n\n init(params);\n }\n\n class Timer {\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n\n return this.remaining;\n }\n\n stop() {\n if (this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n\n return this.remaining;\n }\n\n increase(n) {\n const running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n\n isRunning() {\n return this.running;\n }\n\n }\n\n const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n const undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n states.previousBodyPadding = null;\n }\n };\n\n /* istanbul ignore file */\n\n const iOSfix = () => {\n const iOS = // @ts-ignore\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups();\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1948\n */\n\n const addBottomPaddingForTallPopups = () => {\n const ua = navigator.userAgent;\n const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);\n const webkit = !!ua.match(/WebKit/i);\n const iOSSafari = iOS && webkit && !ua.match(/CriOS/i);\n\n if (iOSSafari) {\n const bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n }\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n\n\n const lockBodyScroll = () => {\n const container = getContainer();\n let preventTouchMove;\n\n container.ontouchstart = e => {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n\n container.ontouchmove = e => {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n };\n\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n\n if (target === container) {\n return true;\n }\n\n if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n target.tagName !== 'TEXTAREA' && // #2266\n !(isScrollable(getHtmlContainer()) && // #1944\n getHtmlContainer().contains(target))) {\n return true;\n }\n\n return false;\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n\n\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n\n\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n const SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\n\n const openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n\n removeClass(container, swalClasses['no-transition']);\n };\n\n const swalOpenAnimationFinished = event => {\n const popup = getPopup();\n\n if (event.target !== popup) {\n return;\n }\n\n const container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n const setScrollingVisibility = (container, popup) => {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(() => {\n container.scrollTop = 0;\n });\n };\n\n const addClasses$1 = (container, popup, params) => {\n addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n addClass([document.documentElement, document.body], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n\n popup = getPopup();\n const loader = getLoader();\n\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n\n if (!buttonToReplace && isVisible(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n\n show(actions);\n\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n };\n\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n const getRadioValue = input => input.checked ? input.value : null;\n\n const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n\n const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params);\n\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(typeof params.inputOptions));\n }\n };\n\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n const populateInputOptions = {\n select: (popup, inputOptions, params) => {\n const select = getDirectChildByClass(popup, swalClasses.select);\n\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1]; // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n\n if (typeof valueFormatted === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n }\n\n return result;\n };\n\n const isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString();\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n\n const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n * @returns {HTMLElement | null}\n */\n\n function getInput$1(instance) {\n const innerParams = privateProps.innerParams.get(instance || this);\n const domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.popup, innerParams.input);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\n const isVisible$1 = () => {\n return isVisible(getPopup());\n };\n /*\n * Global function to click 'Confirm' button\n */\n\n const clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n /*\n * Global function to click 'Deny' button\n */\n\n const clickDeny = () => getDenyButton() && getDenyButton().click();\n /*\n * Global function to click 'Cancel' button\n */\n\n const clickCancel = () => getCancelButton() && getCancelButton().click();\n\n /**\n * @param {GlobalState} globalState\n */\n\n const removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n\n const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {number} index\n * @param {number} increment\n */\n\n const setFocus = (innerParams, index, increment) => {\n const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n if (focusableElements.length) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {function} dismissWith\n */\n\n const keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n } // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n\n\n if (e.isComposing || e.keyCode === 229) {\n return;\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams);\n } // TAB\n else if (e.key === 'Tab') {\n handleTab(e, innerParams);\n } // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key);\n } // ESC\n else if (e.key === 'Escape') {\n handleEsc(e, innerParams, dismissWith);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleEnter = (instance, e, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target instanceof HTMLElement && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleTab = (e, innerParams) => {\n const targetElement = e.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n } // Cycle to the next button\n\n\n if (!e.shiftKey) {\n setFocus(innerParams, btnIndex, 1);\n } // Cycle to the prev button\n else {\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n /**\n * @param {string} key\n */\n\n\n const handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n\n for (let i = 0; i < getActions().children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n\n if (!buttonToFocus) {\n return;\n }\n\n if (buttonToFocus instanceof HTMLButtonElement && isVisible(buttonToFocus)) {\n break;\n }\n }\n\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n\n if (isSafari) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n }\n\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n\n if (this.isAwaitingPromise()) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n function isAwaitingPromise() {\n return !!privateProps.awaitingPromise.get(this);\n }\n\n const triggerClosePopup = instance => {\n const popup = getPopup();\n\n if (!popup) {\n return false;\n }\n\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise()) {\n privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer(); // If animation is supported, animate\n\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n\n instance._destroy();\n });\n };\n\n function setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n }\n\n function setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode;\n const radios = radiosContainer.querySelectorAll('input');\n\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n function enableInput() {\n return setInputDisabled(this.getInput(), false);\n }\n function disableInput() {\n return setInputDisabled(this.getInput(), true);\n }\n\n function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n\n show(domCache.validationMessage);\n const input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n } // Hide block with validation message\n\n function resetValidationMessage$1() {\n const domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n const input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n function getProgressSteps$1() {\n const domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n }\n\n /**\n * Updates popup parameters.\n */\n\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n }\n\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n const filterValidParams = params => {\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \".concat(param));\n }\n });\n return validUpdatableParams;\n };\n\n function _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n\n return; // This instance has already been destroyed\n } // Check if there is another Swal closing\n\n\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n\n disposeSwal(this);\n }\n /**\n * @param {SweetAlert2} instance\n */\n\n const disposeSwal = instance => {\n disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569)\n // @ts-ignore\n\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset currentInstance\n\n delete globalState.currentInstance;\n };\n /**\n * @param {SweetAlert2} instance\n */\n\n\n const disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n // @ts-ignore\n if (instance.isAwaitingPromise()) {\n unsetWeakMaps(privateProps, instance);\n privateProps.awaitingPromise.set(instance, true);\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n }\n };\n /**\n * @param {object} obj\n * @param {SweetAlert2} instance\n */\n\n\n const unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n };\n\n\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput$1,\n close: close,\n isAwaitingPromise: isAwaitingPromise,\n rejectPromise: rejectPromise,\n handleAwaitingPromise: handleAwaitingPromise,\n closePopup: close,\n closeModal: close,\n closeToast: close,\n enableButtons: enableButtons,\n disableButtons: disableButtons,\n enableInput: enableInput,\n disableInput: disableInput,\n showValidationMessage: showValidationMessage,\n resetValidationMessage: resetValidationMessage$1,\n getProgressSteps: getProgressSteps$1,\n update: update,\n _destroy: _destroy\n });\n\n const handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n const handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n const handleConfirmOrDenyWithInput = (instance, type\n /* 'confirm' | 'deny' */\n ) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams.input) {\n return error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n }\n\n const inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n\n const handleInputValidator = (instance, inputValue, type\n /* 'confirm' | 'deny' */\n ) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n\n const deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.closePopup({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n instance.closePopup({\n isDenied: true,\n value\n });\n }\n };\n\n const succeedWith = (instance, value) => {\n instance.closePopup({\n isConfirmed: true,\n value\n });\n };\n\n const rejectWith = (instance, error$$1) => {\n instance.rejectPromise(error$$1);\n };\n\n const confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n succeedWith(instance, value);\n }\n };\n\n const handlePopupClick = (instance, domCache, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.toast) {\n handleToastClick(instance, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(instance, domCache, dismissWith);\n }\n };\n\n const handleToastClick = (instance, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n };\n /**\n * @param {*} innerParams\n * @returns {boolean}\n */\n\n\n const isAnyButtonShown = innerParams => {\n return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton;\n };\n\n let ignoreOutsideClick = false;\n\n const handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleContainerMousedown = domCache => {\n domCache.container.onmousedown = () => {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleModalClick = (instance, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\n const isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\n const argsToParams = args => {\n const params = {};\n\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(typeof arg));\n }\n });\n }\n\n return params;\n };\n\n function fire() {\n const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Swal(...args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\n function mixin(mixinParams) {\n class MixinSwal extends this {\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n\n }\n\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\n const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const increaseTimer = n => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(n);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\n\n const isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning();\n };\n\n let bodyClickListenerAdded = false;\n const clickHandlers = {};\n function bindClickHandler() {\n let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n\n const bodyClickListener = event => {\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr);\n\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n };\n\n\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n isVisible: isVisible$1,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getHtmlContainer: getHtmlContainer,\n getImage: getImage,\n getIcon: getIcon,\n getInputLabel: getInputLabel,\n getCloseButton: getCloseButton,\n getActions: getActions,\n getConfirmButton: getConfirmButton,\n getDenyButton: getDenyButton,\n getCancelButton: getCancelButton,\n getLoader: getLoader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n fire: fire,\n mixin: mixin,\n showLoading: showLoading,\n enableLoading: showLoading,\n getTimerLeft: getTimerLeft,\n stopTimer: stopTimer,\n resumeTimer: resumeTimer,\n toggleTimer: toggleTimer,\n increaseTimer: increaseTimer,\n isTimerRunning: isTimerRunning,\n bindClickHandler: bindClickHandler\n });\n\n let currentInstance;\n\n class SweetAlert {\n constructor() {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n\n currentInstance = this; // @ts-ignore\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n }); // @ts-ignore\n\n const promise = currentInstance._main(currentInstance.params);\n\n privateProps.promise.set(this, promise);\n }\n\n _main(userParams) {\n let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n // @ts-ignore\n globalState.currentInstance._destroy();\n\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n then(onFulfilled) {\n const promise = privateProps.promise.get(this);\n return promise.then(onFulfilled);\n }\n\n finally(onFinally) {\n const promise = privateProps.promise.get(this);\n return promise.finally(onFinally);\n }\n\n }\n\n const swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n const dismissWith = dismiss => {\n instance.closePopup({\n isDismissed: true,\n dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n\n domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance);\n\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance);\n\n domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith);\n\n domCache.closeButton.onclick = () => dismissWith(DismissReason.close);\n\n handlePopupClick(instance, domCache, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n const prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n return params;\n };\n /**\n * @param {SweetAlert2} instance\n * @returns {DomCache}\n */\n\n\n const populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const setupTimer = (globalState$$1, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState$$1.timeout && globalState$$1.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n\n\n const focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n };\n\n const blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n }; // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n Object.keys(instanceMethods).forEach(key => {\n SweetAlert[key] = function () {\n if (currentInstance) {\n return currentInstance[key](...arguments);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.4.19';\n\n const Swal = SweetAlert; // @ts-ignore\n\n Swal.default = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-no-war{display:flex;position:fixed;z-index:1061;top:0;left:0;align-items:center;justify-content:center;width:100%;height:3.375em;background:#20232a;color:#fff;text-align:center}.swal2-no-war a{color:#61dafb;text-decoration:none}.swal2-no-war a:hover{text-decoration:underline}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}\");","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import PropTypes from 'prop-types'; // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\n\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div'); // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? padding + \"px\" : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth(); // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules(className, cssModule) {\n if (className === void 0) {\n className = '';\n }\n\n if (cssModule === void 0) {\n cssModule = globalCssModule;\n }\n\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\n\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\n\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\" + propName + \"\\\" property of \\\"\" + componentName + \"\\\" has been deprecated.\\n\" + explanation);\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n} // Shim Element if needed (e.g. in Node environment)\n\nvar Element = typeof window === 'object' && window.Element || function () {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\n\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600 // $carousel-transition\n\n}; // Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\n\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nexport function toNumber(value) {\n var type = typeof value;\n var NAN = 0 / 0;\n\n if (type === 'number') {\n return value;\n }\n\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\" + other : other;\n }\n\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isObject(value) {\n var type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n\n if (isFunction(target)) {\n return target();\n }\n\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\" + target);\n }\n\n if (!selection.length) {\n throw new Error(\"The target '\" + target + \"' could not be identified in the dom, tip: check spelling\");\n }\n\n return selection;\n }\n\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n\n if (els === null) {\n return [];\n }\n\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n\n return els;\n }\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n var events = _events;\n\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","module.exports = require(\"regenerator-runtime\");\n","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { Alignment, Direction, Media } from './constants';\nimport { CSSObject } from 'styled-components';\n\nexport enum SortOrder {\n\tASC = 'asc',\n\tDESC = 'desc',\n}\n\nexport type Primitive = string | number | boolean | bigint;\nexport type ColumnSortFunction = (a: T, b: T) => number;\nexport type ExpandRowToggled = (expanded: boolean, row: T) => void;\nexport type Format = (row: T, rowIndex: number) => React.ReactNode;\nexport type RowState = ((row: T) => boolean) | null;\nexport type Selector = (row: T, rowIndex?: number) => Primitive;\nexport type SortFunction = (rows: T[], field: Selector, sortDirection: SortOrder) => T[];\nexport type TableRow = Record;\nexport type ComponentProps = Record;\nexport type ExpanderComponentProps = { data: T };\nexport type ExpandableRowsComponent = React.ComponentType>;\nexport type PaginationChangePage = (page: number, totalRows: number) => void;\nexport type PaginationChangeRowsPerPage = (currentRowsPerPage: number, currentPage: number) => void;\nexport type PaginationComponentProps = {\n\trowsPerPage: number;\n\trowCount: number;\n\tcurrentPage: number;\n\tonChangePage: PaginationChangePage;\n\tonChangeRowsPerPage: PaginationChangeRowsPerPage;\n};\nexport type PaginationComponent = React.ComponentType;\n\nexport type TableProps = {\n\tactions?: React.ReactNode | React.ReactNode[];\n\tclassName?: string;\n\tclearSelectedRows?: boolean;\n\tcolumns: TableColumn[];\n\tconditionalRowStyles?: ConditionalStyles[];\n\tcontextActions?: React.ReactNode | React.ReactNode[];\n\tcontextComponent?: React.ReactNode;\n\tcontextMessage?: ContextMessage;\n\tcustomStyles?: TableStyles;\n\tdata: T[];\n\tdefaultSortAsc?: boolean;\n\tdefaultSortFieldId?: string | number | null | undefined;\n\tdense?: boolean;\n\tdirection?: Direction;\n\tdisabled?: boolean;\n\texpandableIcon?: ExpandableIcon;\n\texpandableInheritConditionalStyles?: boolean;\n\texpandableRowDisabled?: RowState;\n\texpandableRowExpanded?: RowState;\n\texpandableRows?: boolean;\n\texpandableRowsComponent?: ExpandableRowsComponent;\n\texpandableRowsComponentProps?: ComponentProps;\n\texpandableRowsHideExpander?: boolean;\n\texpandOnRowClicked?: boolean;\n\texpandOnRowDoubleClicked?: boolean;\n\tfixedHeader?: boolean;\n\tfixedHeaderScrollHeight?: string;\n\thighlightOnHover?: boolean;\n\tkeyField?: string;\n\tnoContextMenu?: boolean;\n\tnoDataComponent?: React.ReactNode;\n\tnoHeader?: boolean;\n\tnoTableHead?: boolean;\n\tonChangePage?: PaginationChangePage;\n\tonChangeRowsPerPage?: PaginationChangeRowsPerPage;\n\tonRowClicked?: (row: T, e: React.MouseEvent) => void;\n\tonRowDoubleClicked?: (row: T, e: React.MouseEvent) => void;\n\tonRowMouseEnter?: (row: T, e: React.MouseEvent) => void;\n\tonRowMouseLeave?: (row: T, e: React.MouseEvent) => void;\n\tonRowExpandToggled?: ExpandRowToggled;\n\tonSelectedRowsChange?: (selected: { allSelected: boolean; selectedCount: number; selectedRows: T[] }) => void;\n\tonSort?: (selectedColumn: TableColumn, sortDirection: SortOrder, sortedRows: T[]) => void;\n\tonColumnOrderChange?: (nextOrder: TableColumn[]) => void;\n\tpagination?: boolean;\n\tpaginationComponent?: PaginationComponent;\n\tpaginationComponentOptions?: PaginationOptions;\n\tpaginationDefaultPage?: number;\n\tpaginationIconFirstPage?: React.ReactNode;\n\tpaginationIconLastPage?: React.ReactNode;\n\tpaginationIconNext?: React.ReactNode;\n\tpaginationIconPrevious?: React.ReactNode;\n\tpaginationPerPage?: number;\n\tpaginationResetDefaultPage?: boolean;\n\tpaginationRowsPerPageOptions?: number[];\n\tpaginationServer?: boolean;\n\tpaginationServerOptions?: PaginationServerOptions;\n\tpaginationTotalRows?: number;\n\tpersistTableHead?: boolean;\n\tpointerOnHover?: boolean;\n\tprogressComponent?: React.ReactNode;\n\tprogressPending?: boolean;\n\tresponsive?: boolean;\n\tselectableRowDisabled?: RowState;\n\tselectableRows?: boolean;\n\tselectableRowsComponent?: 'input' | React.ReactNode;\n\tselectableRowsComponentProps?: ComponentProps;\n\tselectableRowSelected?: RowState;\n\tselectableRowsHighlight?: boolean;\n\tselectableRowsNoSelectAll?: boolean;\n\tselectableRowsVisibleOnly?: boolean;\n\tselectableRowsSingle?: boolean;\n\tsortFunction?: SortFunction | null;\n\tsortIcon?: React.ReactNode;\n\tsortServer?: boolean;\n\tstriped?: boolean;\n\tstyle?: CSSObject;\n\tsubHeader?: React.ReactNode | React.ReactNode[];\n\tsubHeaderAlign?: Alignment;\n\tsubHeaderComponent?: React.ReactNode | React.ReactNode[];\n\tsubHeaderWrap?: boolean;\n\ttheme?: Themes;\n\t/**\n\t * Shows and displays a header with a title\n\t * */\n\ttitle?: string | React.ReactNode;\n};\n\nexport type TableColumnBase = {\n\tallowOverflow?: boolean;\n\tbutton?: boolean;\n\tcenter?: boolean;\n\tcompact?: boolean;\n\treorder?: boolean;\n\tgrow?: number;\n\thide?: number | ((value: number) => CSSObject) | Media;\n\tid?: string | number;\n\tignoreRowClick?: boolean;\n\tmaxWidth?: string;\n\tminWidth?: string;\n\tname?: string | number | React.ReactNode;\n\tomit?: boolean;\n\tright?: boolean;\n\tsortable?: boolean;\n\tstyle?: CSSObject;\n\twidth?: string;\n\twrap?: boolean;\n};\n\nexport interface TableColumn extends TableColumnBase {\n\tname?: string | number | React.ReactNode;\n\tsortField?: string;\n\tcell?: (row: T, rowIndex: number, column: TableColumn, id: string | number) => React.ReactNode;\n\tconditionalCellStyles?: ConditionalStyles[];\n\tformat?: Format | undefined;\n\tselector?: Selector;\n\tsortFunction?: ColumnSortFunction;\n}\n\nexport interface ConditionalStyles {\n\twhen: (row: T) => boolean;\n\tstyle?: CSSObject | ((row: T) => CSSObject);\n\tclassNames?: string[];\n}\n\nexport interface TableStyles {\n\ttable?: {\n\t\tstyle: CSSObject;\n\t};\n\ttableWrapper?: {\n\t\tstyle: CSSObject;\n\t};\n\tresponsiveWrapper?: {\n\t\tstyle: CSSObject;\n\t};\n\theader?: {\n\t\tstyle: CSSObject;\n\t};\n\tsubHeader?: {\n\t\tstyle: CSSObject;\n\t};\n\thead?: {\n\t\tstyle: CSSObject;\n\t};\n\theadRow?: {\n\t\tstyle?: CSSObject;\n\t\tdenseStyle?: CSSObject;\n\t};\n\theadCells?: {\n\t\tstyle?: CSSObject;\n\t\tdraggingStyle?: CSSObject;\n\t};\n\tcontextMenu?: {\n\t\tstyle?: CSSObject;\n\t\tactiveStyle?: CSSObject;\n\t};\n\tcells?: {\n\t\tstyle: CSSObject;\n\t\tdraggingStyle?: CSSObject;\n\t};\n\trows?: {\n\t\tstyle?: CSSObject;\n\t\tselectedHighlightStyle?: CSSObject;\n\t\tdenseStyle?: CSSObject;\n\t\thighlightOnHoverStyle?: CSSObject;\n\t\tstripedStyle?: CSSObject;\n\t};\n\texpanderRow?: {\n\t\tstyle: CSSObject;\n\t};\n\texpanderCell?: {\n\t\tstyle: CSSObject;\n\t};\n\texpanderButton?: {\n\t\tstyle: CSSObject;\n\t};\n\tpagination?: {\n\t\tstyle?: CSSObject;\n\t\tpageButtonsStyle?: CSSObject;\n\t};\n\tnoData?: {\n\t\tstyle: CSSObject;\n\t};\n\tprogress?: {\n\t\tstyle: CSSObject;\n\t};\n}\n\nexport interface PaginationOptions {\n\tnoRowsPerPage?: boolean;\n\trowsPerPageText?: string;\n\trangeSeparatorText?: string;\n\tselectAllRowsItem?: boolean;\n\tselectAllRowsItemText?: string;\n}\n\nexport interface PaginationServerOptions {\n\tpersistSelectedOnSort?: boolean;\n\tpersistSelectedOnPageChange?: boolean;\n}\n\nexport interface ExpandableIcon {\n\tcollapsed: React.ReactNode;\n\texpanded: React.ReactNode;\n}\n\nexport interface ContextMessage {\n\tsingular: string;\n\tplural: string;\n\tmessage?: string;\n}\n\nexport type TableState = {\n\tallSelected: boolean;\n\tcontextMessage: ContextMessage;\n\tselectedCount: number;\n\tselectedRows: T[];\n\tselectedColumn: TableColumn;\n\tsortDirection: SortOrder;\n\tcurrentPage: number;\n\trowsPerPage: number;\n\tselectedRowsFlag: boolean;\n\t/* server-side pagination and server-side sorting will cause selectedRows to change\n\t because of this behavior onSelectedRowsChange useEffect is triggered (by design it should notify if there was a change)\n\t however, when using selectableRowsSingle\n\t*/\n\ttoggleOnSelectedRowsChange: boolean;\n};\n\n// Theming\ntype ThemeText = {\n\tprimary: string;\n\tsecondary: string;\n\tdisabled: string;\n};\n\ntype ThemeBackground = {\n\tdefault: string;\n};\n\ntype ThemeContext = {\n\tbackground: string;\n\ttext: string;\n};\n\ntype ThemeDivider = {\n\tdefault: string;\n};\n\ntype ThemeButton = {\n\tdefault: string;\n\tfocus: string;\n\thover: string;\n\tdisabled: string;\n};\n\ntype ThemeSelected = {\n\tdefault: string;\n\ttext: string;\n};\n\ntype ThemeHighlightOnHover = {\n\tdefault: string;\n\ttext: string;\n};\n\ntype ThemeStriped = {\n\tdefault: string;\n\ttext: string;\n};\n\nexport type Themes = string;\n\nexport interface Theme {\n\ttext: ThemeText;\n\tbackground: ThemeBackground;\n\tcontext: ThemeContext;\n\tdivider: ThemeDivider;\n\tbutton: ThemeButton;\n\tselected: ThemeSelected;\n\thighlightOnHover: ThemeHighlightOnHover;\n\tstriped: ThemeStriped;\n}\n\n// Reducer Actions\nexport interface AllRowsAction {\n\ttype: 'SELECT_ALL_ROWS';\n\tkeyField: string;\n\trows: T[];\n\trowCount: number;\n\tmergeSelections: boolean;\n}\n\nexport interface SingleRowAction {\n\ttype: 'SELECT_SINGLE_ROW';\n\tkeyField: string;\n\trow: T;\n\tisSelected: boolean;\n\trowCount: number;\n\tsingleSelect: boolean;\n}\n\nexport interface MultiRowAction {\n\ttype: 'SELECT_MULTIPLE_ROWS';\n\tkeyField: string;\n\tselectedRows: T[];\n\ttotalRows: number;\n\tmergeSelections: boolean;\n}\n\nexport interface SortAction {\n\ttype: 'SORT_CHANGE';\n\tsortDirection: SortOrder;\n\tselectedColumn: TableColumn;\n\tclearSelectedOnSort: boolean;\n}\n\nexport interface PaginationPageAction {\n\ttype: 'CHANGE_PAGE';\n\tpage: number;\n\tpaginationServer: boolean;\n\tvisibleOnly: boolean;\n\tpersistSelectedOnPageChange: boolean;\n}\n\nexport interface PaginationRowsPerPageAction {\n\ttype: 'CHANGE_ROWS_PER_PAGE';\n\trowsPerPage: number;\n\tpage: number;\n}\n\nexport interface ClearSelectedRowsAction {\n\ttype: 'CLEAR_SELECTED_ROWS';\n\tselectedRowsFlag: boolean;\n}\n\nexport interface ColumnsAction {\n\ttype: 'UPDATE_COLUMNS';\n\tcols: TableColumn[];\n}\n\nexport type Action =\n\t| AllRowsAction\n\t| SingleRowAction\n\t| MultiRowAction\n\t| SortAction\n\t| PaginationPageAction\n\t| PaginationRowsPerPageAction\n\t| ClearSelectedRowsAction;\n","import { CSSObject } from 'styled-components';\nimport { ConditionalStyles, TableColumn, Format, TableRow, Selector, SortOrder, SortFunction } from './types';\n\nexport function prop(obj: T, key: K): T[K] {\n\treturn obj[key];\n}\n\nexport function isEmpty(field: string | number | undefined = ''): boolean {\n\tif (typeof field === 'number') {\n\t\treturn false;\n\t}\n\n\treturn !field || field.length === 0;\n}\n\nexport function sort(\n\trows: T[],\n\t// TODO: remove string in V8\n\tselector: Selector | string | null | undefined,\n\tdirection: SortOrder,\n\tsortFn?: SortFunction | null,\n): T[] {\n\tif (!selector) {\n\t\treturn rows;\n\t}\n\n\tif (sortFn && typeof sortFn === 'function') {\n\t\t// we must create a new rows reference\n\t\treturn sortFn(rows.slice(0), selector as Selector, direction);\n\t}\n\n\treturn rows.slice(0).sort((a: T, b: T) => {\n\t\tlet aValue;\n\t\tlet bValue;\n\n\t\tif (typeof selector === 'string') {\n\t\t\taValue = parseSelector(a, selector);\n\t\t\tbValue = parseSelector(b, selector);\n\t\t} else {\n\t\t\taValue = selector(a);\n\t\t\tbValue = selector(b);\n\t\t}\n\n\t\tif (direction === 'asc') {\n\t\t\tif (aValue < bValue) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\tif (aValue > bValue) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\tif (direction === 'desc') {\n\t\t\tif (aValue > bValue) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\tif (aValue < bValue) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t});\n}\n\n// TODO: string based selectors will be removed in v8\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function parseSelector>(row: T, selector: string): T {\n\treturn selector.split('.').reduce((acc, part) => {\n\t\t// O(n2) when querying for an array (e.g. items[0].name)\n\t\t// Likely, the object depth will be reasonable enough that performance is not a concern\n\t\tconst arr = part.match(/[^\\]\\\\[.]+/g);\n\t\tif (arr && arr.length > 1) {\n\t\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\t\treturn acc[arr[i]][arr[i + 1]];\n\t\t\t}\n\t\t}\n\n\t\treturn acc[part];\n\t}, row);\n}\n\nexport function getProperty(\n\trow: T,\n\t// TODO: remove string type in V8\n\tselector: Selector | string | undefined | null | unknown, // unknown allows us to throw an error for JS code\n\tformat: Format | undefined | null,\n\trowIndex: number,\n): React.ReactNode {\n\tif (!selector) {\n\t\treturn null;\n\t}\n\n\t// TODO: remove string check in V8\n\tif (typeof selector !== 'string' && typeof selector !== 'function') {\n\t\tthrow new Error('selector must be a . delimited string eg (my.property) or function (e.g. row => row.field');\n\t}\n\n\t// format will override how the selector is displayed but the original dataset is used for sorting\n\tif (format && typeof format === 'function') {\n\t\treturn format(row, rowIndex);\n\t}\n\n\tif (selector && typeof selector === 'function') {\n\t\treturn selector(row, rowIndex);\n\t}\n\n\t// TODO: Remove in V8\n\treturn parseSelector(row, selector);\n}\n\nexport function insertItem(array: T[] = [], item: T, index = 0): T[] {\n\treturn [...array.slice(0, index), item, ...array.slice(index)];\n}\n\nexport function removeItem(array: T[] = [], item: T, keyField = 'id'): T[] {\n\tconst newArray = array.slice();\n\tconst outerField = prop(item as TableRow, keyField);\n\n\tif (outerField) {\n\t\tnewArray.splice(\n\t\t\tnewArray.findIndex((a: T) => {\n\t\t\t\tconst innerField = prop(a as TableRow, keyField);\n\n\t\t\t\treturn innerField === outerField;\n\t\t\t}),\n\t\t\t1,\n\t\t);\n\t} else {\n\t\tnewArray.splice(\n\t\t\tnewArray.findIndex(a => a === item),\n\t\t\t1,\n\t\t);\n\t}\n\n\treturn newArray;\n}\n\n// Make sure columns have unique id's\nexport function decorateColumns(columns: TableColumn[]): TableColumn[] {\n\treturn columns.map((column, index) => {\n\t\tconst decoratedColumn: TableColumn = {\n\t\t\t...column,\n\t\t\tsortable: column.sortable || !!column.sortFunction || undefined,\n\t\t};\n\n\t\tif (!column.id) {\n\t\t\tdecoratedColumn.id = index + 1;\n\n\t\t\treturn decoratedColumn;\n\t\t}\n\n\t\treturn decoratedColumn;\n\t});\n}\n\nexport function getSortDirection(ascDirection: boolean | undefined = false): SortOrder {\n\treturn ascDirection ? SortOrder.ASC : SortOrder.DESC;\n}\n\nexport function handleFunctionProps(\n\tobject: { [key: string]: unknown },\n\t...args: unknown[]\n): { [key: string]: unknown } {\n\tlet newObject;\n\n\tObject.keys(object)\n\t\t.map(o => object[o])\n\t\t.forEach((value, index) => {\n\t\t\tconst oldObject = object;\n\n\t\t\tif (typeof value === 'function') {\n\t\t\t\tnewObject = { ...oldObject, [Object.keys(object)[index]]: value(...args) };\n\t\t\t\t// delete oldObject[value];\n\t\t\t}\n\t\t});\n\n\treturn newObject || object;\n}\n\nexport function getNumberOfPages(rowCount: number, rowsPerPage: number): number {\n\treturn Math.ceil(rowCount / rowsPerPage);\n}\n\nexport function recalculatePage(prevPage: number, nextPage: number): number {\n\treturn Math.min(prevPage, nextPage);\n}\n\nexport const noop = (): null => null;\n\nexport function getConditionalStyle(\n\trow: T,\n\tconditionalRowStyles: ConditionalStyles[] = [],\n\tbaseClassNames: string[] = [],\n): { style: CSSObject; classNames: string } {\n\tlet rowStyle = {};\n\tlet classNames: string[] = [...baseClassNames];\n\n\tif (conditionalRowStyles.length) {\n\t\tconditionalRowStyles.forEach(crs => {\n\t\t\tif (!crs.when || typeof crs.when !== 'function') {\n\t\t\t\tthrow new Error('\"when\" must be defined in the conditional style object and must be function');\n\t\t\t}\n\n\t\t\t// evaluate the field and if true return a the style to be applied\n\t\t\tif (crs.when(row)) {\n\t\t\t\trowStyle = crs.style || {};\n\n\t\t\t\tif (crs.classNames) {\n\t\t\t\t\tclassNames = [...classNames, ...crs.classNames];\n\t\t\t\t}\n\n\t\t\t\tif (typeof crs.style === 'function') {\n\t\t\t\t\trowStyle = crs.style(row) || {};\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\treturn { style: rowStyle, classNames: classNames.join(' ') };\n}\n\nexport function isRowSelected(row: T, selectedRows: T[] = [], keyField = 'id'): boolean {\n\t// cast row as TableRow because the property is unknown in advance therefore, typescript will throw an error\n\tconst outerField = prop(row as TableRow, keyField);\n\n\tif (outerField) {\n\t\treturn selectedRows.some(r => {\n\t\t\tconst innerField = prop(r as TableRow, keyField);\n\n\t\t\treturn innerField === outerField;\n\t\t});\n\t}\n\n\treturn selectedRows.some(r => r === row);\n}\n\nexport function isOdd(num: number): boolean {\n\treturn num % 2 === 0;\n}\n\nexport function findColumnIndexById(columns: TableColumn[], id: string | undefined): number {\n\tif (!id) {\n\t\treturn -1;\n\t}\n\n\treturn columns.findIndex(c => {\n\t\treturn equalizeId(c.id, id);\n\t});\n}\n\nexport function equalizeId(a: string | number | undefined, b: string | number | undefined): boolean {\n\treturn a == b;\n}\n","import { insertItem, isRowSelected, removeItem } from './util';\nimport { Action, TableState } from './types';\n\nexport function tableReducer(state: TableState, action: Action): TableState {\n\tconst toggleOnSelectedRowsChange = !state.toggleOnSelectedRowsChange;\n\n\tswitch (action.type) {\n\t\tcase 'SELECT_ALL_ROWS': {\n\t\t\tconst { keyField, rows, rowCount, mergeSelections } = action;\n\t\t\tconst allChecked = !state.allSelected;\n\t\t\tconst toggleOnSelectedRowsChange = !state.toggleOnSelectedRowsChange;\n\n\t\t\tif (mergeSelections) {\n\t\t\t\tconst selections = allChecked\n\t\t\t\t\t? [...state.selectedRows, ...rows.filter(row => !isRowSelected(row, state.selectedRows, keyField))]\n\t\t\t\t\t: state.selectedRows.filter(row => !isRowSelected(row, rows, keyField));\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tallSelected: allChecked,\n\t\t\t\t\tselectedCount: selections.length,\n\t\t\t\t\tselectedRows: selections,\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tallSelected: allChecked,\n\t\t\t\tselectedCount: allChecked ? rowCount : 0,\n\t\t\t\tselectedRows: allChecked ? rows : [],\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SELECT_SINGLE_ROW': {\n\t\t\tconst { keyField, row, isSelected, rowCount, singleSelect } = action;\n\n\t\t\t// handle single select mode\n\t\t\tif (singleSelect) {\n\t\t\t\tif (isSelected) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\t\tallSelected: false,\n\t\t\t\t\t\tselectedRows: [],\n\t\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: 1,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: [row],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// handle multi select mode\n\t\t\tif (isSelected) {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: state.selectedRows.length > 0 ? state.selectedRows.length - 1 : 0,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: removeItem(state.selectedRows, row, keyField),\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedCount: state.selectedRows.length + 1,\n\t\t\t\tallSelected: state.selectedRows.length + 1 === rowCount,\n\t\t\t\tselectedRows: insertItem(state.selectedRows, row),\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SELECT_MULTIPLE_ROWS': {\n\t\t\tconst { keyField, selectedRows, totalRows, mergeSelections } = action;\n\n\t\t\tif (mergeSelections) {\n\t\t\t\tconst selections = [\n\t\t\t\t\t...state.selectedRows,\n\t\t\t\t\t...selectedRows.filter(row => !isRowSelected(row, state.selectedRows, keyField)),\n\t\t\t\t];\n\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedCount: selections.length,\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedRows: selections,\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedCount: selectedRows.length,\n\t\t\t\tallSelected: selectedRows.length === totalRows,\n\t\t\t\tselectedRows,\n\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t};\n\t\t}\n\n\t\tcase 'CLEAR_SELECTED_ROWS': {\n\t\t\tconst { selectedRowsFlag } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tallSelected: false,\n\t\t\t\tselectedCount: 0,\n\t\t\t\tselectedRows: [],\n\t\t\t\tselectedRowsFlag,\n\t\t\t};\n\t\t}\n\n\t\tcase 'SORT_CHANGE': {\n\t\t\tconst { sortDirection, selectedColumn, clearSelectedOnSort } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselectedColumn,\n\t\t\t\tsortDirection,\n\t\t\t\tcurrentPage: 1,\n\t\t\t\t// when using server-side paging reset selected row counts when sorting\n\t\t\t\t...(clearSelectedOnSort && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\tselectedRows: [],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t}),\n\t\t\t};\n\t\t}\n\n\t\tcase 'CHANGE_PAGE': {\n\t\t\tconst { page, paginationServer, visibleOnly, persistSelectedOnPageChange } = action;\n\t\t\tconst mergeSelections = paginationServer && persistSelectedOnPageChange;\n\t\t\tconst clearSelectedOnPage = (paginationServer && !persistSelectedOnPageChange) || visibleOnly;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcurrentPage: page,\n\t\t\t\t...(mergeSelections && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t}),\n\t\t\t\t// when using server-side paging reset selected row counts\n\t\t\t\t...(clearSelectedOnPage && {\n\t\t\t\t\tallSelected: false,\n\t\t\t\t\tselectedCount: 0,\n\t\t\t\t\tselectedRows: [],\n\t\t\t\t\ttoggleOnSelectedRowsChange,\n\t\t\t\t}),\n\t\t\t};\n\t\t}\n\n\t\tcase 'CHANGE_ROWS_PER_PAGE': {\n\t\t\tconst { rowsPerPage, page } = action;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcurrentPage: page,\n\t\t\t\trowsPerPage,\n\t\t\t};\n\t\t}\n\t}\n}\n","import styled, { css } from 'styled-components';\n\nconst disabledCSS = css`\n\tpointer-events: none;\n\topacity: 0.4;\n`;\n\nconst TableStyle = styled.div<{\n\tdisabled?: boolean;\n}>`\n\tposition: relative;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\theight: 100%;\n\tmax-width: 100%;\n\t${({ disabled }) => disabled && disabledCSS};\n\t${({ theme }) => theme.table.style};\n`;\n\nexport default TableStyle;\n","import styled, { css } from 'styled-components';\n\nconst fixedCSS = css`\n\tposition: sticky;\n\tposition: -webkit-sticky; /* Safari */\n\ttop: 0;\n\tz-index: 1;\n`;\n\nconst Head = styled.div<{\n\tfixedHeader?: boolean;\n}>`\n\tdisplay: flex;\n\twidth: 100%;\n\t${({ fixedHeader }) => fixedHeader && fixedCSS};\n\t${({ theme }) => theme.head.style};\n`;\n\nexport default Head;\n","import styled from 'styled-components';\n\nconst HeadRow = styled.div<{\n\tdense?: boolean;\n\tdisabled?: boolean;\n}>`\n\tdisplay: flex;\n\talign-items: stretch;\n\twidth: 100%;\n\t${({ theme }) => theme.headRow.style};\n\t${({ dense, theme }) => dense && theme.headRow.denseStyle};\n`;\n\nexport default HeadRow;\n","import { css, CSSObject, FlattenSimpleInterpolation } from 'styled-components';\n\nexport const SMALL = 599;\nexport const MEDIUM = 959;\nexport const LARGE = 1280;\n\nexport const media = {\n\tsm: (literals: TemplateStringsArray, ...args: CSSObject[]): FlattenSimpleInterpolation => css`\n\t\t@media screen and (max-width: ${SMALL}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tmd: (literals: TemplateStringsArray, ...args: CSSObject[]): FlattenSimpleInterpolation => css`\n\t\t@media screen and (max-width: ${MEDIUM}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tlg: (literals: TemplateStringsArray, ...args: CSSObject[]): FlattenSimpleInterpolation => css`\n\t\t@media screen and (max-width: ${LARGE}px) {\n\t\t\t${css(literals, ...args)}\n\t\t}\n\t`,\n\tcustom:\n\t\t(value: number) =>\n\t\t(literals: TemplateStringsArray, ...args: CSSObject[]): FlattenSimpleInterpolation =>\n\t\t\tcss`\n\t\t\t\t@media screen and (max-width: ${value}px) {\n\t\t\t\t\t${css(literals, ...args)}\n\t\t\t\t}\n\t\t\t`,\n};\n","import styled, { css } from 'styled-components';\nimport { media } from './media';\nimport { TableColumnBase } from './types';\n\nexport const CellBase = styled.div<{\n\theadCell?: boolean;\n\tnoPadding?: boolean;\n}>`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tline-height: normal;\n\t${({ theme, headCell }) => theme[headCell ? 'headCells' : 'cells'].style};\n\t${({ noPadding }) => noPadding && 'padding: 0'};\n`;\n\nexport type CellProps = Pick<\n\tTableColumnBase,\n\t'button' | 'grow' | 'maxWidth' | 'minWidth' | 'width' | 'right' | 'center' | 'compact' | 'hide' | 'allowOverflow'\n>;\n\n// Flex calculations\nexport const CellExtended = styled(CellBase)`\n\tflex-grow: ${({ button, grow }) => (grow === 0 || button ? 0 : grow || 1)};\n\tflex-shrink: 0;\n\tflex-basis: 0;\n\tmax-width: ${({ maxWidth }) => maxWidth || '100%'};\n\tmin-width: ${({ minWidth }) => minWidth || '100px'};\n\t${({ width }) =>\n\t\twidth &&\n\t\tcss`\n\t\t\tmin-width: ${width};\n\t\t\tmax-width: ${width};\n\t\t`};\n\t${({ right }) => right && 'justify-content: flex-end'};\n\t${({ button, center }) => (center || button) && 'justify-content: center'};\n\t${({ compact, button }) => (compact || button) && 'padding: 0'};\n\n\t/* handle hiding cells */\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'sm' &&\n\t\tmedia.sm`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'md' &&\n\t\tmedia.md`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\thide === 'lg' &&\n\t\tmedia.lg`\n display: none;\n `};\n\t${({ hide }) =>\n\t\thide &&\n\t\tNumber.isInteger(hide) &&\n\t\tmedia.custom(hide as number)`\n display: none;\n `};\n`;\n","import * as React from 'react';\nimport styled, { css, CSSObject } from 'styled-components';\nimport { CellExtended } from './Cell';\nimport { getProperty, getConditionalStyle } from './util';\nimport { TableColumn } from './types';\n\ninterface CellStyleProps {\n\trenderAsCell: boolean | undefined;\n\twrapCell: boolean | undefined;\n\tallowOverflow: boolean | undefined;\n\tcellStyle: CSSObject | undefined;\n\tisDragging: boolean;\n}\n\nconst overflowCSS = css`\n\tdiv:first-child {\n\t\twhite-space: ${({ wrapCell }) => (wrapCell ? 'normal' : 'nowrap')};\n\t\toverflow: ${({ allowOverflow }) => (allowOverflow ? 'visible' : 'hidden')};\n\t\ttext-overflow: ellipsis;\n\t}\n`;\n\nconst CellStyle = styled(CellExtended).attrs(props => ({\n\tstyle: props.style,\n}))`\n\t${({ renderAsCell }) => !renderAsCell && overflowCSS};\n\t${({ theme, isDragging }) => isDragging && theme.cells.draggingStyle};\n\t${({ cellStyle }) => cellStyle};\n`;\n\ninterface CellProps {\n\tid: string;\n\tdataTag: string | null;\n\tcolumn: TableColumn;\n\trow: T;\n\trowIndex: number;\n\tisDragging: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nfunction Cell({\n\tid,\n\tcolumn,\n\trow,\n\trowIndex,\n\tdataTag,\n\tisDragging,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: CellProps): JSX.Element {\n\tconst { style, classNames } = getConditionalStyle(row, column.conditionalCellStyles, ['rdt_TableCell']);\n\n\treturn (\n\t\t\n\t\t\t{!column.cell &&
{getProperty(row, column.selector, column.format, rowIndex)}
}\n\t\t\t{column.cell && column.cell(row, rowIndex, column, id)}\n\t\t\n\t);\n}\n\nexport default React.memo(Cell) as typeof Cell;\n","import * as React from 'react';\nimport { handleFunctionProps, noop } from './util';\n\nconst defaultComponentName = 'input';\n\nconst calculateBaseStyle = (disabled: boolean) => ({\n\tfontSize: '18px',\n\t...(!disabled && { cursor: 'pointer' }),\n\tpadding: 0,\n\tmarginTop: '1px',\n\tverticalAlign: 'middle',\n\tposition: 'relative',\n});\n\ninterface CheckboxProps {\n\tname: string;\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tcomponent?: any;\n\tcomponentOptions?: { [key: string]: unknown };\n\tindeterminate?: boolean;\n\tchecked?: boolean;\n\tdisabled?: boolean;\n\tonClick?: (e: React.MouseEvent) => void;\n}\n\nfunction Checkbox({\n\tname,\n\tcomponent = defaultComponentName,\n\tcomponentOptions = { style: {} },\n\tindeterminate = false,\n\tchecked = false,\n\tdisabled = false,\n\tonClick = noop,\n}: CheckboxProps): JSX.Element {\n\tconst setCheckboxRef = (checkbox: HTMLInputElement) => {\n\t\tif (checkbox) {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tcheckbox.indeterminate = indeterminate;\n\t\t}\n\t};\n\n\tconst TagName = component;\n\tconst baseStyle = TagName !== defaultComponentName ? componentOptions.style : calculateBaseStyle(disabled);\n\tconst resolvedComponentOptions = React.useMemo(\n\t\t() => handleFunctionProps(componentOptions, indeterminate),\n\t\t[componentOptions, indeterminate],\n\t);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default React.memo(Checkbox);\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport Checkbox from './Checkbox';\nimport { RowState, SingleRowAction, ComponentProps } from './types';\n\nconst TableCellCheckboxStyle = styled(CellBase)`\n\tflex: 0 0 48px;\n\tmin-width: 48px;\n\tjustify-content: center;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n`;\n\ntype TableCellCheckboxProps = {\n\tname: string;\n\tkeyField: string;\n\trow: T;\n\trowCount: number;\n\tselected: boolean;\n\tselectableRowsComponent: 'input' | React.ReactNode;\n\tselectableRowsComponentProps: ComponentProps;\n\tselectableRowsSingle: boolean;\n\tselectableRowDisabled: RowState;\n\tonSelectedRow: (action: SingleRowAction) => void;\n};\n\nfunction TableCellCheckbox({\n\tname,\n\tkeyField,\n\trow,\n\trowCount,\n\tselected,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowsSingle,\n\tselectableRowDisabled,\n\tonSelectedRow,\n}: TableCellCheckboxProps): JSX.Element {\n\tconst disabled = !!(selectableRowDisabled && selectableRowDisabled(row));\n\n\tconst handleOnRowSelected = () => {\n\t\tonSelectedRow({\n\t\t\ttype: 'SELECT_SINGLE_ROW',\n\t\t\trow,\n\t\t\tisSelected: selected,\n\t\t\tkeyField,\n\t\t\trowCount,\n\t\t\tsingleSelect: selectableRowsSingle,\n\t\t});\n\t};\n\n\treturn (\n\t\t e.stopPropagation()} className=\"rdt_TableCell\" noPadding>\n\t\t\t\n\t\t\n\t);\n}\n\nexport default TableCellCheckbox;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { ExpandableIcon } from './types';\n\nconst ButtonStyle = styled.button`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n\tborder: none;\n\tbackground-color: transparent;\n\t${({ theme }) => theme.expanderButton.style};\n`;\n\ntype ExpanderButtonProps = {\n\tdisabled?: boolean;\n\texpanded?: boolean;\n\texpandableIcon: ExpandableIcon;\n\tid: string | number;\n\trow: T;\n\tonToggled?: (row: T) => void;\n};\n\nfunction ExpanderButton({\n\tdisabled = false,\n\texpanded = false,\n\texpandableIcon,\n\tid,\n\trow,\n\tonToggled,\n}: ExpanderButtonProps): JSX.Element {\n\tconst icon = expanded ? expandableIcon.expanded : expandableIcon.collapsed;\n\tconst handleToggle = () => onToggled && onToggled(row);\n\n\treturn (\n\t\t\n\t\t\t{icon}\n\t\t\n\t);\n}\n\nexport default ExpanderButton;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport ExpanderButton from './ExpanderButton';\nimport { ExpandableIcon } from './types';\n\nconst CellExpanderStyle = styled(CellBase)`\n\twhite-space: nowrap;\n\tfont-weight: 400;\n\tmin-width: 48px;\n\t${({ theme }) => theme.expanderCell.style};\n`;\n\ntype CellExpanderProps = {\n\tdisabled: boolean;\n\texpanded: boolean;\n\texpandableIcon: ExpandableIcon;\n\tid: string | number;\n\trow: T;\n\tonToggled: (row: T) => void;\n};\n\nfunction CellExpander({\n\trow,\n\texpanded = false,\n\texpandableIcon,\n\tid,\n\tonToggled,\n\tdisabled = false,\n}: CellExpanderProps): JSX.Element {\n\treturn (\n\t\t e.stopPropagation()} noPadding>\n\t\t\t\n\t\t\n\t);\n}\n\nexport default CellExpander;\n","import * as React from 'react';\nimport styled, { CSSObject } from 'styled-components';\nimport { ComponentProps, ExpandableRowsComponent } from './types';\n\nconst ExpanderRowStyle = styled.div<{\n\textendedRowStyle: CSSObject;\n}>`\n\twidth: 100%;\n\tbox-sizing: border-box;\n\t${({ theme }) => theme.expanderRow.style};\n\t${({ extendedRowStyle }) => extendedRowStyle};\n`;\n\ntype ExpanderRowProps = {\n\tdata: T;\n\tExpanderComponent: ExpandableRowsComponent;\n\textendedRowStyle: CSSObject;\n\textendedClassNames: string;\n\texpanderComponentProps: ComponentProps;\n};\n\nfunction ExpanderRow({\n\tdata,\n\tExpanderComponent,\n\texpanderComponentProps,\n\textendedRowStyle,\n\textendedClassNames,\n}: ExpanderRowProps): JSX.Element {\n\t// we need to strip of rdt_TableRow from extendedClassNames\n\tconst classNamesSplit = extendedClassNames.split(' ').filter(c => c !== 'rdt_TableRow');\n\tconst classNames = ['rdt_ExpanderRow', ...classNamesSplit].join(' ');\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default React.memo(ExpanderRow) as typeof ExpanderRow;\n","export const STOP_PROP_TAG = 'allowRowEvents';\n\nexport enum Direction {\n\tLTR = 'ltr',\n\tRTL = 'rtl',\n\tAUTO = 'auto',\n}\n\nexport enum Alignment {\n\tLEFT = 'left',\n\tRIGHT = 'right',\n\tCENTER = 'center',\n}\n\nexport enum Media {\n\tSM = 'sm',\n\tMD = 'md',\n\tLG = 'lg',\n}\n","import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport TableCell from './TableCell';\nimport TableCellCheckbox from './TableCellCheckbox';\nimport TableCellExpander from './TableCellExpander';\nimport ExpanderRow from './ExpanderRow';\nimport { prop, equalizeId, getConditionalStyle, isOdd, noop } from './util';\nimport { STOP_PROP_TAG } from './constants';\nimport { TableRow, SingleRowAction, TableProps } from './types';\n\nconst highlightCSS = css<{\n\thighlightOnHover?: boolean;\n}>`\n\t&:hover {\n\t\t${({ highlightOnHover, theme }) => highlightOnHover && theme.rows.highlightOnHoverStyle};\n\t}\n`;\n\nconst pointerCSS = css`\n\t&:hover {\n\t\tcursor: pointer;\n\t}\n`;\n\nconst TableRowStyle = styled.div.attrs(props => ({\n\tstyle: props.style,\n}))<{\n\tdense?: boolean;\n\thighlightOnHover?: boolean;\n\tpointerOnHover?: boolean;\n\tselected?: boolean;\n\tstriped?: boolean;\n}>`\n\tdisplay: flex;\n\talign-items: stretch;\n\talign-content: stretch;\n\twidth: 100%;\n\tbox-sizing: border-box;\n\t${({ theme }) => theme.rows.style};\n\t${({ dense, theme }) => dense && theme.rows.denseStyle};\n\t${({ striped, theme }) => striped && theme.rows.stripedStyle};\n\t${({ highlightOnHover }) => highlightOnHover && highlightCSS};\n\t${({ pointerOnHover }) => pointerOnHover && pointerCSS};\n\t${({ selected, theme }) => selected && theme.rows.selectedHighlightStyle};\n`;\n\ntype DProps = Pick<\n\tTableProps,\n\t| 'columns'\n\t| 'conditionalRowStyles'\n\t| 'dense'\n\t| 'expandableIcon'\n\t| 'expandableRows'\n\t| 'expandableRowsComponent'\n\t| 'expandableRowsComponentProps'\n\t| 'expandableRowsHideExpander'\n\t| 'expandOnRowClicked'\n\t| 'expandOnRowDoubleClicked'\n\t| 'highlightOnHover'\n\t| 'expandableInheritConditionalStyles'\n\t| 'keyField'\n\t| 'onRowClicked'\n\t| 'onRowDoubleClicked'\n\t| 'onRowMouseEnter'\n\t| 'onRowMouseLeave'\n\t| 'onRowExpandToggled'\n\t| 'pointerOnHover'\n\t| 'selectableRowDisabled'\n\t| 'selectableRows'\n\t| 'selectableRowsComponent'\n\t| 'selectableRowsComponentProps'\n\t| 'selectableRowsHighlight'\n\t| 'selectableRowsSingle'\n\t| 'striped'\n>;\n\ninterface TableRowProps extends Required> {\n\tdraggingColumnId: number | string;\n\tdefaultExpanded?: boolean;\n\tdefaultExpanderDisabled: boolean;\n\tid: string | number;\n\tonSelectedRow: (action: SingleRowAction) => void;\n\tpointerOnHover: boolean;\n\trow: T;\n\trowCount: number;\n\trowIndex: number;\n\tselected: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nfunction Row({\n\tcolumns = [],\n\tconditionalRowStyles = [],\n\tdefaultExpanded = false,\n\tdefaultExpanderDisabled = false,\n\tdense = false,\n\texpandableIcon,\n\texpandableRows = false,\n\texpandableRowsComponent,\n\texpandableRowsComponentProps,\n\texpandableRowsHideExpander,\n\texpandOnRowClicked = false,\n\texpandOnRowDoubleClicked = false,\n\thighlightOnHover = false,\n\tid,\n\texpandableInheritConditionalStyles,\n\tkeyField,\n\tonRowClicked = noop,\n\tonRowDoubleClicked = noop,\n\tonRowMouseEnter = noop,\n\tonRowMouseLeave = noop,\n\tonRowExpandToggled = noop,\n\tonSelectedRow = noop,\n\tpointerOnHover = false,\n\trow,\n\trowCount,\n\trowIndex,\n\tselectableRowDisabled = null,\n\tselectableRows = false,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowsHighlight = false,\n\tselectableRowsSingle = false,\n\tselected,\n\tstriped = false,\n\tdraggingColumnId,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: TableRowProps): JSX.Element {\n\tconst [expanded, setExpanded] = React.useState(defaultExpanded);\n\n\tReact.useEffect(() => {\n\t\tsetExpanded(defaultExpanded);\n\t}, [defaultExpanded]);\n\n\tconst handleExpanded = React.useCallback(() => {\n\t\tsetExpanded(!expanded);\n\t\tonRowExpandToggled(!expanded, row);\n\t}, [expanded, onRowExpandToggled, row]);\n\n\tconst showPointer = pointerOnHover || (expandableRows && (expandOnRowClicked || expandOnRowDoubleClicked));\n\n\tconst handleRowClick = React.useCallback(\n\t\te => {\n\t\t\t// use event delegation allow events to propagate only when the element with data-tag STOP_PROP_TAG is present\n\t\t\tif (e.target && e.target.getAttribute('data-tag') === STOP_PROP_TAG) {\n\t\t\t\tonRowClicked(row, e);\n\n\t\t\t\tif (!defaultExpanderDisabled && expandableRows && expandOnRowClicked) {\n\t\t\t\t\thandleExpanded();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[defaultExpanderDisabled, expandOnRowClicked, expandableRows, handleExpanded, onRowClicked, row],\n\t);\n\n\tconst handleRowDoubleClick = React.useCallback(\n\t\te => {\n\t\t\tif (e.target && e.target.getAttribute('data-tag') === STOP_PROP_TAG) {\n\t\t\t\tonRowDoubleClicked(row, e);\n\t\t\t\tif (!defaultExpanderDisabled && expandableRows && expandOnRowDoubleClicked) {\n\t\t\t\t\thandleExpanded();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[defaultExpanderDisabled, expandOnRowDoubleClicked, expandableRows, handleExpanded, onRowDoubleClicked, row],\n\t);\n\n\tconst handleRowMouseEnter = React.useCallback(\n\t\te => {\n\t\t\tonRowMouseEnter(row, e);\n\t\t},\n\t\t[onRowMouseEnter, row],\n\t);\n\n\tconst handleRowMouseLeave = React.useCallback(\n\t\te => {\n\t\t\tonRowMouseLeave(row, e);\n\t\t},\n\t\t[onRowMouseLeave, row],\n\t);\n\n\tconst rowKeyField = prop(row as TableRow, keyField);\n\tconst { style, classNames } = getConditionalStyle(row, conditionalRowStyles, ['rdt_TableRow']);\n\tconst highlightSelected = selectableRowsHighlight && selected;\n\tconst inheritStyles = expandableInheritConditionalStyles ? style : {};\n\tconst isStriped = striped && isOdd(rowIndex);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{selectableRows && (\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{expandableRows && !expandableRowsHideExpander && (\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{columns.map(column => {\n\t\t\t\t\tif (column.omit) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\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{expandableRows && expanded && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}\n\nexport default Row;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { SortOrder } from '../DataTable/types';\n\nconst Icon = styled.span<{\n\tsortActive: boolean;\n\tsortDirection: SortOrder;\n}>`\n\tpadding: 2px;\n\tcolor: inherit;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\t${({ sortActive }) => (sortActive ? 'opacity: 1' : 'opacity: 0')};\n\t${({ sortDirection }) => sortDirection === 'desc' && 'transform: rotate(180deg)'};\n`;\n\ninterface NativeSortIconProps {\n\tsortActive: boolean;\n\tsortDirection: SortOrder;\n}\n\nconst NativeSortIcon: React.FC = ({ sortActive, sortDirection }) => (\n\t\n\t\t▲\n\t\n);\n\nexport default NativeSortIcon;\n","import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { CellExtended, CellProps } from './Cell';\nimport NativeSortIcon from '../icons/NativeSortIcon';\nimport { equalizeId } from './util';\nimport { TableColumn, SortAction, SortOrder } from './types';\n\ninterface ColumnStyleProps extends CellProps {\n\tisDragging?: boolean;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n}\n\nconst ColumnStyled = styled(CellExtended)`\n\t${({ button }) => button && 'text-align: center'};\n\t${({ theme, isDragging }) => isDragging && theme.headCells.draggingStyle};\n`;\n\ninterface ColumnSortableProps {\n\tdisabled: boolean;\n\tsortActive: boolean;\n}\n\nconst sortableCSS = css`\n\tcursor: pointer;\n\tspan.__rdt_custom_sort_icon__ {\n\t\ti,\n\t\tsvg {\n\t\t\ttransform: 'translate3d(0, 0, 0)';\n\t\t\t${({ sortActive }) => (sortActive ? 'opacity: 1' : 'opacity: 0')};\n\t\t\tcolor: inherit;\n\t\t\tfont-size: 18px;\n\t\t\theight: 18px;\n\t\t\twidth: 18px;\n\t\t\tbackface-visibility: hidden;\n\t\t\ttransform-style: preserve-3d;\n\t\t\ttransition-duration: 95ms;\n\t\t\ttransition-property: transform;\n\t\t}\n\n\t\t&.asc i,\n\t\t&.asc svg {\n\t\t\ttransform: rotate(180deg);\n\t\t}\n\t}\n\n\t${({ sortActive }) =>\n\t\t!sortActive &&\n\t\tcss`\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\topacity: 0.7;\n\n\t\t\t\tspan,\n\t\t\t\tspan.__rdt_custom_sort_icon__ * {\n\t\t\t\t\topacity: 0.7;\n\t\t\t\t}\n\t\t\t}\n\t\t`};\n`;\n\nconst ColumnSortable = styled.div`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: inherit;\n\theight: 100%;\n\twidth: 100%;\n\toutline: none;\n\tuser-select: none;\n\toverflow: hidden;\n\t${({ disabled }) => !disabled && sortableCSS};\n`;\n\nconst ColumnText = styled.div`\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n`;\n\ntype TableColProps = {\n\tcolumn: TableColumn;\n\tdisabled: boolean;\n\tdraggingColumnId?: string | number;\n\tsortIcon?: React.ReactNode;\n\tpagination: boolean;\n\tpaginationServer: boolean;\n\tpersistSelectedOnSort: boolean;\n\tselectedColumn: TableColumn;\n\tsortDirection: SortOrder;\n\tsortServer: boolean;\n\tselectableRowsVisibleOnly: boolean;\n\tonSort: (action: SortAction) => void;\n\tonDragStart: (e: React.DragEvent) => void;\n\tonDragOver: (e: React.DragEvent) => void;\n\tonDragEnd: (e: React.DragEvent) => void;\n\tonDragEnter: (e: React.DragEvent) => void;\n\tonDragLeave: (e: React.DragEvent) => void;\n};\n\nfunction TableCol({\n\tcolumn,\n\tdisabled,\n\tdraggingColumnId,\n\tselectedColumn = {},\n\tsortDirection,\n\tsortIcon,\n\tsortServer,\n\tpagination,\n\tpaginationServer,\n\tpersistSelectedOnSort,\n\tselectableRowsVisibleOnly,\n\tonSort,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tonDragEnter,\n\tonDragLeave,\n}: TableColProps): JSX.Element | null {\n\tReact.useEffect(() => {\n\t\tif (typeof column.selector === 'string') {\n\t\t\tconsole.error(\n\t\t\t\t`Warning: ${column.selector} is a string based column selector which has been deprecated as of v7 and will be removed in v8. Instead, use a selector function e.g. row => row[field]...`,\n\t\t\t);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tconst [showTooltip, setShowTooltip] = React.useState(false);\n\tconst columnRef = React.useRef(null);\n\n\tReact.useEffect(() => {\n\t\tif (columnRef.current) {\n\t\t\tsetShowTooltip(columnRef.current.scrollWidth > columnRef.current.clientWidth);\n\t\t}\n\t}, [showTooltip]);\n\n\tif (column.omit) {\n\t\treturn null;\n\t}\n\n\tconst handleSortChange = () => {\n\t\tif (!column.sortable && !column.selector) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet direction = sortDirection;\n\n\t\tif (equalizeId(selectedColumn.id, column.id)) {\n\t\t\tdirection = sortDirection === SortOrder.ASC ? SortOrder.DESC : SortOrder.ASC;\n\t\t}\n\n\t\tonSort({\n\t\t\ttype: 'SORT_CHANGE',\n\t\t\tsortDirection: direction,\n\t\t\tselectedColumn: column,\n\t\t\tclearSelectedOnSort:\n\t\t\t\t(pagination && paginationServer && !persistSelectedOnSort) || sortServer || selectableRowsVisibleOnly,\n\t\t});\n\t};\n\n\tconst handleKeyPress = (event: React.KeyboardEvent) => {\n\t\tif (event.key === 'Enter') {\n\t\t\thandleSortChange();\n\t\t}\n\t};\n\n\tconst renderNativeSortIcon = (sortActive: boolean) => (\n\t\t\n\t);\n\n\tconst renderCustomSortIcon = () => (\n\t\t{sortIcon}\n\t);\n\n\tconst sortActive = !!(column.sortable && equalizeId(selectedColumn.id, column.id));\n\tconst disableSort = !column.sortable || disabled;\n\tconst nativeSortIconLeft = column.sortable && !sortIcon && !column.right;\n\tconst nativeSortIconRight = column.sortable && !sortIcon && column.right;\n\tconst customSortIconLeft = column.sortable && sortIcon && !column.right;\n\tconst customSortIconRight = column.sortable && sortIcon && column.right;\n\n\treturn (\n\t\t\n\t\t\t{column.name && (\n\t\t\t\t\n\t\t\t\t\t{!disableSort && customSortIconRight && renderCustomSortIcon()}\n\t\t\t\t\t{!disableSort && nativeSortIconRight && renderNativeSortIcon(sortActive)}\n\n\t\t\t\t\t{typeof column.name === 'string' ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{column.name}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\tcolumn.name\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!disableSort && customSortIconLeft && renderCustomSortIcon()}\n\t\t\t\t\t{!disableSort && nativeSortIconLeft && renderNativeSortIcon(sortActive)}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}\n\nexport default React.memo(TableCol) as typeof TableCol;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { CellBase } from './Cell';\nimport Checkbox from './Checkbox';\nimport { AllRowsAction, RowState } from './types';\n\nconst ColumnStyle = styled(CellBase)`\n\tflex: 0 0 48px;\n\tjustify-content: center;\n\talign-items: center;\n\tuser-select: none;\n\twhite-space: nowrap;\n\tfont-size: unset;\n`;\n\ninterface ColumnCheckboxProps {\n\theadCell?: boolean;\n\tselectableRowsComponent: 'input' | React.ReactNode;\n\tselectableRowsComponentProps: Record;\n\tselectableRowDisabled: RowState;\n\tkeyField: string;\n\tmergeSelections: boolean;\n\trowData: T[];\n\tselectedRows: T[];\n\tallSelected: boolean;\n\tonSelectAllRows: (action: AllRowsAction) => void;\n}\n\nfunction ColumnCheckbox({\n\theadCell = true,\n\trowData,\n\tkeyField,\n\tallSelected,\n\tmergeSelections,\n\tselectedRows,\n\tselectableRowsComponent,\n\tselectableRowsComponentProps,\n\tselectableRowDisabled,\n\tonSelectAllRows,\n}: ColumnCheckboxProps): JSX.Element {\n\tconst indeterminate = selectedRows.length > 0 && !allSelected;\n\tconst rows = selectableRowDisabled ? rowData.filter((row: T) => !selectableRowDisabled(row)) : rowData;\n\tconst isDisabled = rows.length === 0;\n\t// The row count should subtract rows that are disabled\n\tconst rowCount = Math.min(rowData.length, rows.length);\n\n\tconst handleSelectAll = () => {\n\t\tonSelectAllRows({\n\t\t\ttype: 'SELECT_ALL_ROWS',\n\t\t\trows,\n\t\t\trowCount,\n\t\t\tmergeSelections,\n\t\t\tkeyField,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ColumnCheckbox;\n","import * as React from 'react';\nimport { Direction } from '../DataTable/constants';\n\nfunction useRTL(direction: Direction = Direction.AUTO): boolean {\n\tconst isClient = typeof window === 'object';\n\n\tconst [isRTL, setIsRTL] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tif (!isClient) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'auto') {\n\t\t\tconst canUse = !!(window.document && window.document.createElement);\n\t\t\tconst bodyRTL = document.getElementsByTagName('BODY')[0];\n\t\t\tconst htmlTRL = document.getElementsByTagName('HTML')[0];\n\t\t\tconst hasRTL = bodyRTL.dir === 'rtl' || htmlTRL.dir === 'rtl';\n\n\t\t\tsetIsRTL(canUse && hasRTL);\n\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsRTL(direction === 'rtl');\n\t}, [direction, isClient]);\n\n\treturn isRTL;\n}\n\nexport default useRTL;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport useRTL from '../hooks/useRTL';\nimport { Direction } from './constants';\nimport { ContextMessage } from './types';\n\nconst Title = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tflex: 1 0 auto;\n\theight: 100%;\n\tcolor: ${({ theme }) => theme.contextMenu.fontColor};\n\tfont-size: ${({ theme }) => theme.contextMenu.fontSize};\n\tfont-weight: 400;\n`;\n\nconst ContextActions = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\tflex-wrap: wrap;\n`;\n\nconst ContextMenuStyle = styled.div<{\n\trtl?: boolean;\n\tvisible: boolean;\n}>`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbox-sizing: inherit;\n\tz-index: 1;\n\talign-items: center;\n\tjustify-content: space-between;\n\tdisplay: flex;\n\t${({ rtl }) => rtl && 'direction: rtl'};\n\t${({ theme }) => theme.contextMenu.style};\n\t${({ theme, visible }) => visible && theme.contextMenu.activeStyle};\n`;\n\nconst generateDefaultContextTitle = (contextMessage: ContextMessage, selectedCount: number, rtl: boolean) => {\n\tif (selectedCount === 0) {\n\t\treturn null;\n\t}\n\n\tconst datumName = selectedCount === 1 ? contextMessage.singular : contextMessage.plural;\n\n\t// TODO: add mock document rtl tests\n\tif (rtl) {\n\t\treturn `${selectedCount} ${contextMessage.message || ''} ${datumName}`;\n\t}\n\n\treturn `${selectedCount} ${datumName} ${contextMessage.message || ''}`;\n};\n\ntype ContextMenuProps = {\n\tcontextMessage: ContextMessage;\n\tcontextActions: React.ReactNode | React.ReactNode[];\n\tcontextComponent: React.ReactNode | null;\n\tselectedCount: number;\n\tdirection: Direction;\n};\n\nfunction ContextMenu({\n\tcontextMessage,\n\tcontextActions,\n\tcontextComponent,\n\tselectedCount,\n\tdirection,\n}: ContextMenuProps): JSX.Element {\n\tconst isRTL = useRTL(direction);\n\tconst visible = selectedCount > 0;\n\n\tif (contextComponent) {\n\t\treturn (\n\t\t\t\n\t\t\t\t{React.cloneElement(contextComponent as React.ReactElement, { selectedCount })}\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{generateDefaultContextTitle(contextMessage, selectedCount, isRTL)}\n\t\t\t{contextActions}\n\t\t\n\t);\n}\n\nexport default ContextMenu;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport ContextMenu from './ContextMenu';\nimport { Direction } from './constants';\nimport { ContextMessage } from './types';\n\nconst HeaderStyle = styled.div`\n\tposition: relative;\n\tbox-sizing: border-box;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\talign-items: center;\n\tjustify-content: space-between;\n\twidth: 100%;\n\tflex-wrap: wrap;\n\t${({ theme }) => theme.header.style}\n`;\n\nconst Title = styled.div`\n\tflex: 1 0 auto;\n\tcolor: ${({ theme }) => theme.header.fontColor};\n\tfont-size: ${({ theme }) => theme.header.fontSize};\n\tfont-weight: 400;\n`;\n\nconst Actions = styled.div`\n\tflex: 1 0 auto;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\n\t> * {\n\t\tmargin-left: 5px;\n\t}\n`;\n\ntype HeaderProps = {\n\ttitle?: string | React.ReactNode;\n\tactions?: React.ReactNode | React.ReactNode[];\n\tdirection: Direction;\n\tselectedCount: number;\n\tshowMenu?: boolean;\n\tcontextMessage: ContextMessage;\n\tcontextActions: React.ReactNode | React.ReactNode[];\n\tcontextComponent: React.ReactNode | null;\n};\n\nconst Header = ({\n\ttitle,\n\tactions = null,\n\tcontextMessage,\n\tcontextActions,\n\tcontextComponent,\n\tselectedCount,\n\tdirection,\n\tshowMenu = true,\n}: HeaderProps): JSX.Element => (\n\t\n\t\t{title}\n\t\t{actions && {actions}}\n\n\t\t{showMenu && (\n\t\t\t\n\t\t)}\n\t\n);\n\nexport default Header;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nconst alignMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n};\n\ntype AlignItems = 'center' | 'left' | 'right';\n\nconst SubheaderWrapper = styled.header<{\n\talign: AlignItems;\n\twrapContent: boolean;\n}>`\n\tposition: relative;\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tbox-sizing: border-box;\n\talign-items: center;\n\tpadding: 4px 16px 4px 24px;\n\twidth: 100%;\n\tjustify-content: ${({ align }) => alignMap[align]};\n\tflex-wrap: ${({ wrapContent }) => (wrapContent ? 'wrap' : 'nowrap')};\n\t${({ theme }) => theme.subHeader.style}\n`;\n\ntype SubheaderProps = {\n\talign?: AlignItems;\n\twrapContent?: boolean;\n\tchildren?: React.ReactNode;\n};\n\nconst Subheader = ({ align = 'right', wrapContent = true, ...rest }: SubheaderProps): JSX.Element => (\n\t\n);\n\nexport default Subheader;\n","import styled from 'styled-components';\n\nconst Body = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n\nexport default Body;\n","import styled, { css } from 'styled-components';\n\n/* Hack when using layovers/menus that get clipped by overflow-x\n when a table is responsive due to overflow-xy scroll spec stupidity.\n Note: The parent element height must be set to 100%!\n https://www.brunildo.org/test/Overflowxy2.html\n*/\n\nconst ResponsiveWrapper = styled.div<{\n\tresponsive: boolean;\n\tfixedHeader?: boolean;\n\tfixedHeaderScrollHeight?: string;\n}>`\n\tposition: relative;\n\twidth: 100%;\n\tborder-radius: inherit;\n\t${({ responsive, fixedHeader }) =>\n\t\tresponsive &&\n\t\tcss`\n\t\t\toverflow-x: auto;\n\n\t\t\t// hidden prevents vertical scrolling in firefox when fixedHeader is disabled\n\t\t\toverflow-y: ${fixedHeader ? 'auto' : 'hidden'};\n\t\t\tmin-height: 0;\n\t\t`};\n\n\t${({ fixedHeader = false, fixedHeaderScrollHeight = '100vh' }) =>\n\t\tfixedHeader &&\n\t\tcss`\n\t\t\tmax-height: ${fixedHeaderScrollHeight};\n\t\t\t-webkit-overflow-scrolling: touch;\n\t\t`};\n\n\t${({ theme }) => theme.responsiveWrapper.style};\n`;\n\nexport default ResponsiveWrapper;\n","import styled from 'styled-components';\n\nconst ProgressWrapper = styled.div`\n\tposition: relative;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\t${props => props.theme.progress.style};\n`;\n\nexport default ProgressWrapper;\n","import styled from 'styled-components';\n\nconst Wrapper = styled.div`\n\tposition: relative;\n\twidth: 100%;\n\t${({ theme }) => theme.tableWrapper.style};\n`;\n\nexport default Wrapper;\n","import styled from 'styled-components';\nimport { CellBase } from './Cell';\n\nconst ColumnExpander = styled(CellBase)`\n\twhite-space: nowrap;\n\t${({ theme }) => theme.expanderCell.style};\n`;\n\nexport default ColumnExpander;\n","import styled from 'styled-components';\n\nconst NoDataWrapper = styled.div`\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\t${({ theme }) => theme.noData.style};\n`;\n\nexport default NoDataWrapper;\n","import React from 'react';\n\nconst DropdownIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default DropdownIcon;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport DropDownIcon from '../icons/Dropdown';\n\nconst SelectControl = styled.select`\n\tcursor: pointer;\n\theight: 24px;\n\tmax-width: 100%;\n\tuser-select: none;\n\tpadding-left: 8px;\n\tpadding-right: 24px;\n\tbox-sizing: content-box;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tborder: none;\n\tbackground-color: transparent;\n\tappearance: none;\n\tdirection: ltr;\n\tflex-shrink: 0;\n\n\t&::-ms-expand {\n\t\tdisplay: none;\n\t}\n\n\t&:disabled::-ms-expand {\n\t\tbackground: #f60;\n\t}\n\n\toption {\n\t\tcolor: initial;\n\t}\n`;\n\nconst SelectWrapper = styled.div`\n\tposition: relative;\n\tflex-shrink: 0;\n\tfont-size: inherit;\n\tcolor: inherit;\n\tmargin-top: 1px;\n\n\tsvg {\n\t\ttop: 0;\n\t\tright: 0;\n\t\tcolor: inherit;\n\t\tposition: absolute;\n\t\tfill: currentColor;\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tdisplay: inline-block;\n\t\tuser-select: none;\n\t\tpointer-events: none;\n\t}\n`;\n\ntype SelectProps = {\n\tonChange: (e: React.ChangeEvent) => void;\n\tdefaultValue: string | number;\n\tchildren: React.ReactNode;\n};\n\nconst Select = ({ defaultValue, onChange, ...rest }: SelectProps): JSX.Element => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Select;\n","import React from 'react';\nimport FirstPageIcon from '../icons/FirstPage';\nimport LastPageIcon from '../icons/LastPage';\nimport LeftIcon from '../icons/Left';\nimport RightIcon from '../icons/Right';\nimport ExpanderCollapsedIcon from '../icons/ExpanderCollapsedIcon';\nimport ExpanderExpandedIcon from '../icons/ExpanderExpandedIcon';\nimport { noop } from './util';\nimport { Alignment, Direction } from './constants';\n\nexport const defaultProps = {\n\tcolumns: [],\n\tdata: [],\n\ttitle: '',\n\tkeyField: 'id',\n\tselectableRows: false,\n\tselectableRowsHighlight: false,\n\tselectableRowsNoSelectAll: false,\n\tselectableRowSelected: null,\n\tselectableRowDisabled: null,\n\tselectableRowsComponent: 'input' as const,\n\tselectableRowsComponentProps: {},\n\tselectableRowsVisibleOnly: false,\n\tselectableRowsSingle: false,\n\tclearSelectedRows: false,\n\texpandableRows: false,\n\texpandableRowDisabled: null,\n\texpandableRowExpanded: null,\n\texpandOnRowClicked: false,\n\texpandableRowsHideExpander: false,\n\texpandOnRowDoubleClicked: false,\n\texpandableInheritConditionalStyles: false,\n\texpandableRowsComponent: function DefaultExpander(): JSX.Element {\n\t\treturn (\n\t\t\t
\n\t\t\t\tTo add an expander pass in a component instance via expandableRowsComponent. You can then\n\t\t\t\taccess props.data from this component.\n\t\t\t
\n\t\t);\n\t},\n\texpandableIcon: {\n\t\tcollapsed: ,\n\t\texpanded: ,\n\t},\n\texpandableRowsComponentProps: {},\n\tprogressPending: false,\n\tprogressComponent:
Loading...
,\n\tpersistTableHead: false,\n\tsortIcon: null,\n\tsortFunction: null,\n\tsortServer: false,\n\tstriped: false,\n\thighlightOnHover: false,\n\tpointerOnHover: false,\n\tnoContextMenu: false,\n\tcontextMessage: { singular: 'item', plural: 'items', message: 'selected' },\n\tactions: null,\n\tcontextActions: null,\n\tcontextComponent: null,\n\tdefaultSortFieldId: null,\n\tdefaultSortAsc: true,\n\tresponsive: true,\n\tnoDataComponent:
There are no records to display
,\n\tdisabled: false,\n\tnoTableHead: false,\n\tnoHeader: false,\n\tsubHeader: false,\n\tsubHeaderAlign: Alignment.RIGHT,\n\tsubHeaderWrap: true,\n\tsubHeaderComponent: null,\n\tfixedHeader: false,\n\tfixedHeaderScrollHeight: '100vh',\n\tpagination: false,\n\tpaginationServer: false,\n\tpaginationServerOptions: {\n\t\tpersistSelectedOnSort: false,\n\t\tpersistSelectedOnPageChange: false,\n\t},\n\tpaginationDefaultPage: 1,\n\tpaginationResetDefaultPage: false,\n\tpaginationTotalRows: 0,\n\tpaginationPerPage: 10,\n\tpaginationRowsPerPageOptions: [10, 15, 20, 25, 30],\n\tpaginationComponent: null,\n\tpaginationComponentOptions: {},\n\tpaginationIconFirstPage: ,\n\tpaginationIconLastPage: ,\n\tpaginationIconNext: ,\n\tpaginationIconPrevious: ,\n\tdense: false,\n\tconditionalRowStyles: [],\n\ttheme: 'default' as const,\n\tcustomStyles: {},\n\tdirection: Direction.AUTO,\n\tonChangePage: noop,\n\tonChangeRowsPerPage: noop,\n\tonRowClicked: noop,\n\tonRowDoubleClicked: noop,\n\tonRowMouseEnter: noop,\n\tonRowMouseLeave: noop,\n\tonRowExpandToggled: noop,\n\tonSelectedRowsChange: noop,\n\tonSort: noop,\n\tonColumnOrderChange: noop,\n};\n","import React from 'react';\n\nconst ExpanderCollapsedIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default ExpanderCollapsedIcon;\n","import React from 'react';\n\nconst ExpanderExpandedIcon: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default ExpanderExpandedIcon;\n","import React from 'react';\n\nconst FirstPage: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default FirstPage;\n","import React from 'react';\n\nconst LastPage: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default LastPage;\n","import React from 'react';\n\nconst Right: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Right;\n","import React from 'react';\n\nconst Left: React.FC = () => (\n\t\n\t\t\n\t\t\n\t\n);\n\nexport default Left;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport Select from './Select';\nimport { getNumberOfPages } from './util';\nimport useWindowSize from '../hooks/useWindowSize';\nimport useRTL from '../hooks/useRTL';\nimport { media, SMALL } from './media';\nimport { Direction } from './constants';\nimport { PaginationOptions } from './types';\nimport { defaultProps } from './defaultProps';\n\nconst defaultComponentOptions = {\n\trowsPerPageText: 'Rows per page:',\n\trangeSeparatorText: 'of',\n\tnoRowsPerPage: false,\n\tselectAllRowsItem: false,\n\tselectAllRowsItemText: 'All',\n};\n\nconst PaginationWrapper = styled.nav`\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding-right: 8px;\n\tpadding-left: 8px;\n\twidth: 100%;\n\t${({ theme }) => theme.pagination.style};\n`;\n\nconst Button = styled.button<{\n\tisRTL: boolean;\n}>`\n\tposition: relative;\n\tdisplay: block;\n\tuser-select: none;\n\tborder: none;\n\t${({ theme }) => theme.pagination.pageButtonsStyle};\n\t${({ isRTL }) => isRTL && 'transform: scale(-1, -1)'};\n`;\n\nconst PageList = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tborder-radius: 4px;\n\twhite-space: nowrap;\n\t${media.sm`\n width: 100%;\n justify-content: space-around;\n `};\n`;\n\nconst Span = styled.span`\n\tflex-shrink: 1;\n\tuser-select: none;\n`;\n\nconst Range = styled(Span)`\n\tmargin: 0 24px;\n`;\n\nconst RowLabel = styled(Span)`\n\tmargin: 0 4px;\n`;\n\ninterface PaginationProps {\n\trowsPerPage: number;\n\trowCount: number;\n\tcurrentPage: number;\n\tdirection?: Direction;\n\tpaginationRowsPerPageOptions?: number[];\n\tpaginationIconLastPage?: React.ReactNode;\n\tpaginationIconFirstPage?: React.ReactNode;\n\tpaginationIconNext?: React.ReactNode;\n\tpaginationIconPrevious?: React.ReactNode;\n\tpaginationComponentOptions?: PaginationOptions;\n\tonChangePage: (page: number) => void;\n\tonChangeRowsPerPage: (numRows: number, currentPage: number) => void;\n}\n\nfunction Pagination({\n\trowsPerPage,\n\trowCount,\n\tcurrentPage,\n\tdirection = defaultProps.direction,\n\tpaginationRowsPerPageOptions = defaultProps.paginationRowsPerPageOptions,\n\tpaginationIconLastPage = defaultProps.paginationIconLastPage,\n\tpaginationIconFirstPage = defaultProps.paginationIconFirstPage,\n\tpaginationIconNext = defaultProps.paginationIconNext,\n\tpaginationIconPrevious = defaultProps.paginationIconPrevious,\n\tpaginationComponentOptions = defaultProps.paginationComponentOptions,\n\tonChangeRowsPerPage = defaultProps.onChangeRowsPerPage,\n\tonChangePage = defaultProps.onChangePage,\n}: PaginationProps): JSX.Element {\n\tconst windowSize = useWindowSize();\n\tconst isRTL = useRTL(direction);\n\tconst shouldShow = windowSize.width && windowSize.width > SMALL;\n\t// const isRTL = detectRTL(direction);\n\tconst numPages = getNumberOfPages(rowCount, rowsPerPage);\n\tconst lastIndex = currentPage * rowsPerPage;\n\tconst firstIndex = lastIndex - rowsPerPage + 1;\n\tconst disabledLesser = currentPage === 1;\n\tconst disabledGreater = currentPage === numPages;\n\tconst options = { ...defaultComponentOptions, ...paginationComponentOptions };\n\tconst range =\n\t\tcurrentPage === numPages\n\t\t\t? `${firstIndex}-${rowCount} ${options.rangeSeparatorText} ${rowCount}`\n\t\t\t: `${firstIndex}-${lastIndex} ${options.rangeSeparatorText} ${rowCount}`;\n\n\tconst handlePrevious = React.useCallback(() => onChangePage(currentPage - 1), [currentPage, onChangePage]);\n\tconst handleNext = React.useCallback(() => onChangePage(currentPage + 1), [currentPage, onChangePage]);\n\tconst handleFirst = React.useCallback(() => onChangePage(1), [onChangePage]);\n\tconst handleLast = React.useCallback(\n\t\t() => onChangePage(getNumberOfPages(rowCount, rowsPerPage)),\n\t\t[onChangePage, rowCount, rowsPerPage],\n\t);\n\tconst handleRowsPerPage = React.useCallback(\n\t\t(e: React.ChangeEvent) => onChangeRowsPerPage(Number(e.target.value), currentPage),\n\t\t[currentPage, onChangeRowsPerPage],\n\t);\n\n\tconst selectOptions = paginationRowsPerPageOptions.map((num: number) => (\n\t\t\n\t));\n\n\tif (options.selectAllRowsItem) {\n\t\tselectOptions.push(\n\t\t\t,\n\t\t);\n\t}\n\n\tconst select = (\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t{!options.noRowsPerPage && shouldShow && (\n\t\t\t\t<>\n\t\t\t\t\t{options.rowsPerPageText}\n\t\t\t\t\t{select}\n\t\t\t\t\n\t\t\t)}\n\t\t\t{shouldShow && {range}}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{paginationIconFirstPage}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconPrevious}\n\t\t\t\t\n\n\t\t\t\t{!shouldShow && select}\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconNext}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{paginationIconLastPage}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default React.memo(Pagination);\n","// Credit: https://usehooks.com/useWindowSize/\nimport * as React from 'react';\n\ntype Hook = () => {\n\twidth: number | undefined;\n\theight: number | undefined;\n};\n\nconst useWindowSize: Hook = () => {\n\tconst isClient = typeof window === 'object';\n\n\tfunction getSize() {\n\t\treturn {\n\t\t\twidth: isClient ? window.innerWidth : undefined,\n\t\t\theight: isClient ? window.innerHeight : undefined,\n\t\t};\n\t}\n\n\tconst [windowSize, setWindowSize] = React.useState(getSize);\n\n\tReact.useEffect(() => {\n\t\tif (!isClient) {\n\t\t\treturn () => null;\n\t\t}\n\n\t\tfunction handleResize() {\n\t\t\tsetWindowSize(getSize());\n\t\t}\n\n\t\twindow.addEventListener('resize', handleResize);\n\t\treturn () => window.removeEventListener('resize', handleResize);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\treturn windowSize;\n};\n\nexport default useWindowSize;\n","import * as React from 'react';\n\ntype Hook = (fn: () => void, inputs: unknown[]) => void;\n\nconst useFirstUpdate: Hook = (fn, inputs) => {\n\tconst firstUpdate = React.useRef(true);\n\n\tReact.useEffect(() => {\n\t\tif (firstUpdate.current) {\n\t\t\tfirstUpdate.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tfn();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, inputs);\n};\n\nexport default useFirstUpdate;\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\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import merge from 'deepmerge';\nimport { Theme, Themes } from './types';\n\ntype ThemeMapping = {\n\t[propertyName: string]: Theme;\n};\n\nconst defaultTheme = {\n\ttext: {\n\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\tsecondary: 'rgba(0, 0, 0, 0.54)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.38)',\n\t},\n\tbackground: {\n\t\tdefault: '#FFFFFF',\n\t},\n\tcontext: {\n\t\tbackground: '#e3f2fd',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\tdivider: {\n\t\tdefault: 'rgba(0,0,0,.12)',\n\t},\n\tbutton: {\n\t\tdefault: 'rgba(0,0,0,.54)',\n\t\tfocus: 'rgba(0,0,0,.12)',\n\t\thover: 'rgba(0,0,0,.12)',\n\t\tdisabled: 'rgba(0, 0, 0, .18)',\n\t},\n\tselected: {\n\t\tdefault: '#e3f2fd',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\thighlightOnHover: {\n\t\tdefault: '#EEEEEE',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n\tstriped: {\n\t\tdefault: '#FAFAFA',\n\t\ttext: 'rgba(0, 0, 0, 0.87)',\n\t},\n};\n\nexport const defaultThemes: ThemeMapping = {\n\tdefault: defaultTheme,\n\tlight: defaultTheme,\n\tdark: {\n\t\ttext: {\n\t\t\tprimary: '#FFFFFF',\n\t\t\tsecondary: 'rgba(255, 255, 255, 0.7)',\n\t\t\tdisabled: 'rgba(0,0,0,.12)',\n\t\t},\n\t\tbackground: {\n\t\t\tdefault: '#424242',\n\t\t},\n\t\tcontext: {\n\t\t\tbackground: '#E91E63',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\tdivider: {\n\t\t\tdefault: 'rgba(81, 81, 81, 1)',\n\t\t},\n\t\tbutton: {\n\t\t\tdefault: '#FFFFFF',\n\t\t\tfocus: 'rgba(255, 255, 255, .54)',\n\t\t\thover: 'rgba(255, 255, 255, .12)',\n\t\t\tdisabled: 'rgba(255, 255, 255, .18)',\n\t\t},\n\t\tselected: {\n\t\t\tdefault: 'rgba(0, 0, 0, .7)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\thighlightOnHover: {\n\t\t\tdefault: 'rgba(0, 0, 0, .7)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t\tstriped: {\n\t\t\tdefault: 'rgba(0, 0, 0, .87)',\n\t\t\ttext: '#FFFFFF',\n\t\t},\n\t},\n};\n\nexport function createTheme(name = 'default', customTheme?: T, inherit: Themes = 'default'): Theme {\n\tif (!defaultThemes[name]) {\n\t\tdefaultThemes[name] = merge(defaultThemes[inherit], customTheme || {});\n\t}\n\n\t// allow tweaking default or light themes if the theme passed in matches\n\tdefaultThemes[name] = merge(defaultThemes[name], customTheme || {});\n\n\treturn defaultThemes[name];\n}\n","import * as React from 'react';\nimport { decorateColumns, findColumnIndexById, getSortDirection } from '../DataTable/util';\nimport useDidUpdateEffect from '../hooks/useDidUpdateEffect';\nimport { SortOrder, TableColumn } from '../DataTable/types';\n\ntype ColumnsHook = {\n\ttableColumns: TableColumn[];\n\tdraggingColumnId: string;\n\thandleDragStart: (e: React.DragEvent) => void;\n\thandleDragEnter: (e: React.DragEvent) => void;\n\thandleDragOver: (e: React.DragEvent) => void;\n\thandleDragLeave: (e: React.DragEvent) => void;\n\thandleDragEnd: (e: React.DragEvent) => void;\n\tdefaultSortDirection: SortOrder;\n\tdefaultSortColumn: TableColumn;\n};\n\nfunction useColumns(\n\tcolumns: TableColumn[],\n\tonColumnOrderChange: (nextOrder: TableColumn[]) => void,\n\tdefaultSortFieldId: string | number | null | undefined,\n\tdefaultSortAsc: boolean,\n): ColumnsHook {\n\tconst [tableColumns, setTableColumns] = React.useState[]>(() => decorateColumns(columns));\n\tconst [draggingColumnId, setDraggingColumn] = React.useState('');\n\tconst sourceColumnId = React.useRef('');\n\n\tuseDidUpdateEffect(() => {\n\t\tsetTableColumns(decorateColumns(columns));\n\t}, [columns]);\n\n\tconst handleDragStart = React.useCallback(\n\t\t(e: React.DragEvent) => {\n\t\t\tconst { attributes } = e.target as HTMLDivElement;\n\t\t\tconst id = attributes.getNamedItem('data-column-id')?.value;\n\n\t\t\tif (id) {\n\t\t\t\tsourceColumnId.current = tableColumns[findColumnIndexById(tableColumns, id)]?.id?.toString() || '';\n\n\t\t\t\tsetDraggingColumn(sourceColumnId.current);\n\t\t\t}\n\t\t},\n\t\t[tableColumns],\n\t);\n\n\tconst handleDragEnter = React.useCallback(\n\t\t(e: React.DragEvent) => {\n\t\t\tconst { attributes } = e.target as HTMLDivElement;\n\t\t\tconst id = attributes.getNamedItem('data-column-id')?.value;\n\n\t\t\tif (id && sourceColumnId.current && id !== sourceColumnId.current) {\n\t\t\t\tconst selectedColIndex = findColumnIndexById(tableColumns, sourceColumnId.current);\n\t\t\t\tconst targetColIndex = findColumnIndexById(tableColumns, id);\n\t\t\t\tconst reorderedCols = [...tableColumns];\n\n\t\t\t\treorderedCols[selectedColIndex] = tableColumns[targetColIndex];\n\t\t\t\treorderedCols[targetColIndex] = tableColumns[selectedColIndex];\n\n\t\t\t\tsetTableColumns(reorderedCols);\n\n\t\t\t\tonColumnOrderChange(reorderedCols);\n\t\t\t}\n\t\t},\n\t\t[onColumnOrderChange, tableColumns],\n\t);\n\n\tconst handleDragOver = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\t}, []);\n\n\tconst handleDragLeave = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\t}, []);\n\n\tconst handleDragEnd = React.useCallback((e: React.DragEvent) => {\n\t\te.preventDefault();\n\n\t\tsourceColumnId.current = '';\n\n\t\tsetDraggingColumn('');\n\t}, []);\n\n\tconst defaultSortDirection = getSortDirection(defaultSortAsc);\n\tconst defaultSortColumn = React.useMemo(\n\t\t() => tableColumns[findColumnIndexById(tableColumns, defaultSortFieldId?.toString())] || {},\n\t\t[defaultSortFieldId, tableColumns],\n\t);\n\n\treturn {\n\t\ttableColumns,\n\t\tdraggingColumnId,\n\t\thandleDragStart,\n\t\thandleDragEnter,\n\t\thandleDragOver,\n\t\thandleDragLeave,\n\t\thandleDragEnd,\n\t\tdefaultSortDirection,\n\t\tdefaultSortColumn,\n\t};\n}\n\nexport default useColumns;\n","import * as React from 'react';\nimport { ThemeProvider } from 'styled-components';\nimport { tableReducer } from './tableReducer';\nimport Table from './Table';\nimport Head from './TableHead';\nimport HeadRow from './TableHeadRow';\nimport Row from './TableRow';\nimport Column from './TableCol';\nimport ColumnCheckbox from './TableColCheckbox';\nimport Header from './TableHeader';\nimport Subheader from './TableSubheader';\nimport Body from './TableBody';\nimport ResponsiveWrapper from './ResponsiveWrapper';\nimport ProgressWrapper from './ProgressWrapper';\nimport Wrapper from './TableWrapper';\nimport ColumnExpander from './TableColExpander';\nimport { CellBase } from './Cell';\nimport NoData from './NoDataWrapper';\nimport NativePagination from './Pagination';\nimport useDidUpdateEffect from '../hooks/useDidUpdateEffect';\nimport { prop, getNumberOfPages, sort, isEmpty, isRowSelected, recalculatePage } from './util';\nimport { defaultProps } from './defaultProps';\nimport { createStyles } from './styles';\nimport {\n\tAction,\n\tAllRowsAction,\n\tSingleRowAction,\n\tTableRow,\n\tSortAction,\n\tTableProps,\n\tTableState,\n\tSortOrder,\n} from './types';\nimport useColumns from '../hooks/useColumns';\n\nfunction DataTable(props: TableProps): JSX.Element {\n\tconst {\n\t\tdata = defaultProps.data,\n\t\tcolumns = defaultProps.columns,\n\t\ttitle = defaultProps.title,\n\t\tactions = defaultProps.actions,\n\t\tkeyField = defaultProps.keyField,\n\t\tstriped = defaultProps.striped,\n\t\thighlightOnHover = defaultProps.highlightOnHover,\n\t\tpointerOnHover = defaultProps.pointerOnHover,\n\t\tdense = defaultProps.dense,\n\t\tselectableRows = defaultProps.selectableRows,\n\t\tselectableRowsSingle = defaultProps.selectableRowsSingle,\n\t\tselectableRowsHighlight = defaultProps.selectableRowsHighlight,\n\t\tselectableRowsNoSelectAll = defaultProps.selectableRowsNoSelectAll,\n\t\tselectableRowsVisibleOnly = defaultProps.selectableRowsVisibleOnly,\n\t\tselectableRowSelected = defaultProps.selectableRowSelected,\n\t\tselectableRowDisabled = defaultProps.selectableRowDisabled,\n\t\tselectableRowsComponent = defaultProps.selectableRowsComponent,\n\t\tselectableRowsComponentProps = defaultProps.selectableRowsComponentProps,\n\t\tonRowExpandToggled = defaultProps.onRowExpandToggled,\n\t\tonSelectedRowsChange = defaultProps.onSelectedRowsChange,\n\t\texpandableIcon = defaultProps.expandableIcon,\n\t\tonChangeRowsPerPage = defaultProps.onChangeRowsPerPage,\n\t\tonChangePage = defaultProps.onChangePage,\n\t\tpaginationServer = defaultProps.paginationServer,\n\t\tpaginationServerOptions = defaultProps.paginationServerOptions,\n\t\tpaginationTotalRows = defaultProps.paginationTotalRows,\n\t\tpaginationDefaultPage = defaultProps.paginationDefaultPage,\n\t\tpaginationResetDefaultPage = defaultProps.paginationResetDefaultPage,\n\t\tpaginationPerPage = defaultProps.paginationPerPage,\n\t\tpaginationRowsPerPageOptions = defaultProps.paginationRowsPerPageOptions,\n\t\tpaginationIconLastPage = defaultProps.paginationIconLastPage,\n\t\tpaginationIconFirstPage = defaultProps.paginationIconFirstPage,\n\t\tpaginationIconNext = defaultProps.paginationIconNext,\n\t\tpaginationIconPrevious = defaultProps.paginationIconPrevious,\n\t\tpaginationComponent = defaultProps.paginationComponent,\n\t\tpaginationComponentOptions = defaultProps.paginationComponentOptions,\n\t\tresponsive = defaultProps.responsive,\n\t\tprogressPending = defaultProps.progressPending,\n\t\tprogressComponent = defaultProps.progressComponent,\n\t\tpersistTableHead = defaultProps.persistTableHead,\n\t\tnoDataComponent = defaultProps.noDataComponent,\n\t\tdisabled = defaultProps.disabled,\n\t\tnoTableHead = defaultProps.noTableHead,\n\t\tnoHeader = defaultProps.noHeader,\n\t\tfixedHeader = defaultProps.fixedHeader,\n\t\tfixedHeaderScrollHeight = defaultProps.fixedHeaderScrollHeight,\n\t\tpagination = defaultProps.pagination,\n\t\tsubHeader = defaultProps.subHeader,\n\t\tsubHeaderAlign = defaultProps.subHeaderAlign,\n\t\tsubHeaderWrap = defaultProps.subHeaderWrap,\n\t\tsubHeaderComponent = defaultProps.subHeaderComponent,\n\t\tnoContextMenu = defaultProps.noContextMenu,\n\t\tcontextMessage = defaultProps.contextMessage,\n\t\tcontextActions = defaultProps.contextActions,\n\t\tcontextComponent = defaultProps.contextComponent,\n\t\texpandableRows = defaultProps.expandableRows,\n\t\tonRowClicked = defaultProps.onRowClicked,\n\t\tonRowDoubleClicked = defaultProps.onRowDoubleClicked,\n\t\tonRowMouseEnter = defaultProps.onRowMouseEnter,\n\t\tonRowMouseLeave = defaultProps.onRowMouseLeave,\n\t\tsortIcon = defaultProps.sortIcon,\n\t\tonSort = defaultProps.onSort,\n\t\tsortFunction = defaultProps.sortFunction,\n\t\tsortServer = defaultProps.sortServer,\n\t\texpandableRowsComponent = defaultProps.expandableRowsComponent,\n\t\texpandableRowsComponentProps = defaultProps.expandableRowsComponentProps,\n\t\texpandableRowDisabled = defaultProps.expandableRowDisabled,\n\t\texpandableRowsHideExpander = defaultProps.expandableRowsHideExpander,\n\t\texpandOnRowClicked = defaultProps.expandOnRowClicked,\n\t\texpandOnRowDoubleClicked = defaultProps.expandOnRowDoubleClicked,\n\t\texpandableRowExpanded = defaultProps.expandableRowExpanded,\n\t\texpandableInheritConditionalStyles = defaultProps.expandableInheritConditionalStyles,\n\t\tdefaultSortFieldId = defaultProps.defaultSortFieldId,\n\t\tdefaultSortAsc = defaultProps.defaultSortAsc,\n\t\tclearSelectedRows = defaultProps.clearSelectedRows,\n\t\tconditionalRowStyles = defaultProps.conditionalRowStyles,\n\t\ttheme = defaultProps.theme,\n\t\tcustomStyles = defaultProps.customStyles,\n\t\tdirection = defaultProps.direction,\n\t\tonColumnOrderChange = defaultProps.onColumnOrderChange,\n\t} = props;\n\n\tconst {\n\t\ttableColumns,\n\t\tdraggingColumnId,\n\t\thandleDragStart,\n\t\thandleDragEnter,\n\t\thandleDragOver,\n\t\thandleDragLeave,\n\t\thandleDragEnd,\n\t\tdefaultSortDirection,\n\t\tdefaultSortColumn,\n\t} = useColumns(columns, onColumnOrderChange, defaultSortFieldId, defaultSortAsc);\n\n\tconst [\n\t\t{\n\t\t\trowsPerPage,\n\t\t\tcurrentPage,\n\t\t\tselectedRows,\n\t\t\tallSelected,\n\t\t\tselectedCount,\n\t\t\tselectedColumn,\n\t\t\tsortDirection,\n\t\t\ttoggleOnSelectedRowsChange,\n\t\t},\n\t\tdispatch,\n\t] = React.useReducer, Action>>(tableReducer, {\n\t\tallSelected: false,\n\t\tselectedCount: 0,\n\t\tselectedRows: [],\n\t\tselectedColumn: defaultSortColumn,\n\t\ttoggleOnSelectedRowsChange: false,\n\t\tsortDirection: defaultSortDirection,\n\t\tcurrentPage: paginationDefaultPage,\n\t\trowsPerPage: paginationPerPage,\n\t\tselectedRowsFlag: false,\n\t\tcontextMessage: defaultProps.contextMessage,\n\t});\n\n\tconst { persistSelectedOnSort = false, persistSelectedOnPageChange = false } = paginationServerOptions;\n\tconst mergeSelections = !!(paginationServer && (persistSelectedOnPageChange || persistSelectedOnSort));\n\tconst enabledPagination = pagination && !progressPending && data.length > 0;\n\tconst Pagination = paginationComponent || NativePagination;\n\n\tconst currentTheme = React.useMemo(() => createStyles(customStyles, theme), [customStyles, theme]);\n\tconst wrapperProps = React.useMemo(() => ({ ...(direction !== 'auto' && { dir: direction }) }), [direction]);\n\n\tconst sortedData = React.useMemo(() => {\n\t\t// server-side sorting bypasses internal sorting\n\t\tif (sortServer) {\n\t\t\treturn data;\n\t\t}\n\n\t\tif (selectedColumn?.sortFunction && typeof selectedColumn.sortFunction === 'function') {\n\t\t\tconst sortFn = selectedColumn.sortFunction;\n\t\t\tconst customSortFunction = sortDirection === SortOrder.ASC ? sortFn : (a: T, b: T) => sortFn(a, b) * -1;\n\n\t\t\treturn [...data].sort(customSortFunction);\n\t\t}\n\n\t\treturn sort(data, selectedColumn?.selector, sortDirection, sortFunction);\n\t}, [sortServer, selectedColumn, sortDirection, data, sortFunction]);\n\n\tconst tableRows = React.useMemo(() => {\n\t\tif (pagination && !paginationServer) {\n\t\t\t// when using client-side pagination we can just slice the rows set\n\t\t\tconst lastIndex = currentPage * rowsPerPage;\n\t\t\tconst firstIndex = lastIndex - rowsPerPage;\n\n\t\t\treturn sortedData.slice(firstIndex, lastIndex);\n\t\t}\n\n\t\treturn sortedData;\n\t}, [currentPage, pagination, paginationServer, rowsPerPage, sortedData]);\n\n\tconst handleSort = React.useCallback((action: SortAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleSelectAllRows = React.useCallback((action: AllRowsAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleSelectedRow = React.useCallback((action: SingleRowAction) => {\n\t\tdispatch(action);\n\t}, []);\n\n\tconst handleRowClicked = React.useCallback((row, e) => onRowClicked(row, e), [onRowClicked]);\n\n\tconst handleRowDoubleClicked = React.useCallback((row, e) => onRowDoubleClicked(row, e), [onRowDoubleClicked]);\n\n\tconst handleRowMouseEnter = React.useCallback((row, e) => onRowMouseEnter(row, e), [onRowMouseEnter]);\n\n\tconst handleRowMouseLeave = React.useCallback((row, e) => onRowMouseLeave(row, e), [onRowMouseLeave]);\n\n\tconst handleChangePage = React.useCallback(\n\t\t(page: number) =>\n\t\t\tdispatch({\n\t\t\t\ttype: 'CHANGE_PAGE',\n\t\t\t\tpage,\n\t\t\t\tpaginationServer,\n\t\t\t\tvisibleOnly: selectableRowsVisibleOnly,\n\t\t\t\tpersistSelectedOnPageChange,\n\t\t\t}),\n\t\t[paginationServer, persistSelectedOnPageChange, selectableRowsVisibleOnly],\n\t);\n\n\tconst handleChangeRowsPerPage = React.useCallback(\n\t\t(newRowsPerPage: number) => {\n\t\t\tconst rowCount = paginationTotalRows || tableRows.length;\n\t\t\tconst updatedPage = getNumberOfPages(rowCount, newRowsPerPage);\n\t\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\t\t// update the currentPage for client-side pagination\n\t\t\t// server - side should be handled by onChangeRowsPerPage\n\t\t\tif (!paginationServer) {\n\t\t\t\thandleChangePage(recalculatedPage);\n\t\t\t}\n\n\t\t\tdispatch({ type: 'CHANGE_ROWS_PER_PAGE', page: recalculatedPage, rowsPerPage: newRowsPerPage });\n\t\t},\n\t\t[currentPage, handleChangePage, paginationServer, paginationTotalRows, tableRows.length],\n\t);\n\n\tconst showTableHead = () => {\n\t\tif (noTableHead) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (persistTableHead) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn sortedData.length > 0 && !progressPending;\n\t};\n\n\tconst showHeader = () => {\n\t\tif (noHeader) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (title) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (actions) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\t// recalculate the pagination and currentPage if the rows length changes\n\tif (pagination && !paginationServer && sortedData.length > 0 && tableRows.length === 0) {\n\t\tconst updatedPage = getNumberOfPages(sortedData.length, rowsPerPage);\n\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\thandleChangePage(recalculatedPage);\n\t}\n\n\tuseDidUpdateEffect(() => {\n\t\tonSelectedRowsChange({ allSelected, selectedCount, selectedRows: selectedRows.slice(0) });\n\t\t// onSelectedRowsChange trigger is controlled by toggleOnSelectedRowsChange state\n\t}, [toggleOnSelectedRowsChange]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonSort(selectedColumn, sortDirection, sortedData.slice(0));\n\t\t// do not update on sortedData\n\t}, [selectedColumn, sortDirection]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonChangePage(currentPage, paginationTotalRows || sortedData.length);\n\t}, [currentPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\tonChangeRowsPerPage(rowsPerPage, currentPage);\n\t}, [rowsPerPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\thandleChangePage(paginationDefaultPage);\n\t}, [paginationDefaultPage, paginationResetDefaultPage]);\n\n\tuseDidUpdateEffect(() => {\n\t\tif (pagination && paginationServer && paginationTotalRows > 0) {\n\t\t\tconst updatedPage = getNumberOfPages(paginationTotalRows, rowsPerPage);\n\t\t\tconst recalculatedPage = recalculatePage(currentPage, updatedPage);\n\n\t\t\tif (currentPage !== recalculatedPage) {\n\t\t\t\thandleChangePage(recalculatedPage);\n\t\t\t}\n\t\t}\n\t}, [paginationTotalRows]);\n\n\tReact.useEffect(() => {\n\t\tdispatch({ type: 'CLEAR_SELECTED_ROWS', selectedRowsFlag: clearSelectedRows });\n\t}, [selectableRowsSingle, clearSelectedRows]);\n\n\tReact.useEffect(() => {\n\t\tif (!selectableRowSelected) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst preSelectedRows = sortedData.filter(row => selectableRowSelected(row));\n\t\t// if selectableRowsSingle mode then return the first match\n\t\tconst selected = selectableRowsSingle ? preSelectedRows.slice(0, 1) : preSelectedRows;\n\n\t\tdispatch({\n\t\t\ttype: 'SELECT_MULTIPLE_ROWS',\n\t\t\tkeyField,\n\t\t\tselectedRows: selected,\n\t\t\ttotalRows: sortedData.length,\n\t\t\tmergeSelections,\n\t\t});\n\n\t\t// We only want to update the selectedRowState if data changes\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [data, selectableRowSelected]);\n\n\tconst visibleRows = selectableRowsVisibleOnly ? tableRows : sortedData;\n\tconst showSelectAll = persistSelectedOnPageChange || selectableRowsSingle || selectableRowsNoSelectAll;\n\n\treturn (\n\t\t\n\t\t\t{showHeader() && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{subHeader && (\n\t\t\t\t\n\t\t\t\t\t{subHeaderComponent}\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{progressPending && !persistTableHead && {progressComponent}}\n\n\t\t\t\t\t\n\t\t\t\t\t\t{showTableHead() && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{selectableRows &&\n\t\t\t\t\t\t\t\t\t\t(showSelectAll ? (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t{expandableRows && !expandableRowsHideExpander && }\n\t\t\t\t\t\t\t\t\t{tableColumns.map(column => (\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\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!sortedData.length && !progressPending && {noDataComponent}}\n\n\t\t\t\t\t\t{progressPending && persistTableHead && {progressComponent}}\n\n\t\t\t\t\t\t{!progressPending && sortedData.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{tableRows.map((row, i) => {\n\t\t\t\t\t\t\t\t\tconst key = prop(row as TableRow, keyField) as string | number;\n\t\t\t\t\t\t\t\t\tconst id = isEmpty(key) ? i : key;\n\t\t\t\t\t\t\t\t\tconst selected = isRowSelected(row, selectedRows, keyField);\n\t\t\t\t\t\t\t\t\tconst expanderExpander = !!(expandableRows && expandableRowExpanded && expandableRowExpanded(row));\n\t\t\t\t\t\t\t\t\tconst expanderDisabled = !!(expandableRows && expandableRowDisabled && expandableRowDisabled(row));\n\n\t\t\t\t\t\t\t\t\treturn (\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})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\n\t\t\t{enabledPagination && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n\nexport default React.memo(DataTable) as typeof DataTable;\n","import merge from 'deepmerge';\nimport { defaultThemes } from './themes';\nimport { TableStyles, Theme, Themes } from './types';\n\nexport const defaultStyles = (theme: Theme): TableStyles => ({\n\ttable: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\ttableWrapper: {\n\t\tstyle: {\n\t\t\tdisplay: 'table',\n\t\t},\n\t},\n\tresponsiveWrapper: {\n\t\tstyle: {},\n\t},\n\theader: {\n\t\tstyle: {\n\t\t\tfontSize: '22px',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '56px',\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '8px',\n\t\t},\n\t},\n\tsubHeader: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '52px',\n\t\t},\n\t},\n\thead: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tfontSize: '12px',\n\t\t\tfontWeight: 500,\n\t\t},\n\t},\n\theadRow: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '52px',\n\t\t\tborderBottomWidth: '1px',\n\t\t\tborderBottomColor: theme.divider.default,\n\t\t\tborderBottomStyle: 'solid',\n\t\t},\n\t\tdenseStyle: {\n\t\t\tminHeight: '32px',\n\t\t},\n\t},\n\theadCells: {\n\t\tstyle: {\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '16px',\n\t\t},\n\t\tdraggingStyle: {\n\t\t\tcursor: 'move',\n\t\t},\n\t},\n\tcontextMenu: {\n\t\tstyle: {\n\t\t\tbackgroundColor: theme.context.background,\n\t\t\tfontSize: '18px',\n\t\t\tfontWeight: 400,\n\t\t\tcolor: theme.context.text,\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '8px',\n\t\t\ttransform: 'translate3d(0, -100%, 0)',\n\t\t\ttransitionDuration: '125ms',\n\t\t\ttransitionTimingFunction: 'cubic-bezier(0, 0, 0.2, 1)',\n\t\t\twillChange: 'transform',\n\t\t},\n\t\tactiveStyle: {\n\t\t\ttransform: 'translate3d(0, 0, 0)',\n\t\t},\n\t},\n\tcells: {\n\t\tstyle: {\n\t\t\tpaddingLeft: '16px',\n\t\t\tpaddingRight: '16px',\n\t\t\twordBreak: 'break-word',\n\t\t},\n\t\tdraggingStyle: {},\n\t},\n\trows: {\n\t\tstyle: {\n\t\t\tfontSize: '13px',\n\t\t\tfontWeight: 400,\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tminHeight: '48px',\n\t\t\t'&:not(:last-of-type)': {\n\t\t\t\tborderBottomStyle: 'solid',\n\t\t\t\tborderBottomWidth: '1px',\n\t\t\t\tborderBottomColor: theme.divider.default,\n\t\t\t},\n\t\t},\n\t\tdenseStyle: {\n\t\t\tminHeight: '32px',\n\t\t},\n\t\tselectedHighlightStyle: {\n\t\t\t// use nth-of-type(n) to override other nth selectors\n\t\t\t'&:nth-of-type(n)': {\n\t\t\t\tcolor: theme.selected.text,\n\t\t\t\tbackgroundColor: theme.selected.default,\n\t\t\t\tborderBottomColor: theme.background.default,\n\t\t\t},\n\t\t},\n\t\thighlightOnHoverStyle: {\n\t\t\tcolor: theme.highlightOnHover.text,\n\t\t\tbackgroundColor: theme.highlightOnHover.default,\n\t\t\ttransitionDuration: '0.15s',\n\t\t\ttransitionProperty: 'background-color',\n\t\t\tborderBottomColor: theme.background.default,\n\t\t\toutlineStyle: 'solid',\n\t\t\toutlineWidth: '1px',\n\t\t\toutlineColor: theme.background.default,\n\t\t},\n\t\tstripedStyle: {\n\t\t\tcolor: theme.striped.text,\n\t\t\tbackgroundColor: theme.striped.default,\n\t\t},\n\t},\n\texpanderRow: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\texpanderCell: {\n\t\tstyle: {\n\t\t\tflex: '0 0 48px',\n\t\t},\n\t},\n\texpanderButton: {\n\t\tstyle: {\n\t\t\tcolor: theme.button.default,\n\t\t\tfill: theme.button.default,\n\t\t\tbackgroundColor: 'transparent',\n\t\t\tborderRadius: '2px',\n\t\t\ttransition: '0.25s',\n\t\t\theight: '100%',\n\t\t\twidth: '100%',\n\t\t\t'&:hover:enabled': {\n\t\t\t\tcursor: 'pointer',\n\t\t\t},\n\t\t\t'&:disabled': {\n\t\t\t\tcolor: theme.button.disabled,\n\t\t\t},\n\t\t\t'&:hover:not(:disabled)': {\n\t\t\t\tcursor: 'pointer',\n\t\t\t\tbackgroundColor: theme.button.hover,\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tbackgroundColor: theme.button.focus,\n\t\t\t},\n\t\t\tsvg: {\n\t\t\t\tmargin: 'auto',\n\t\t\t},\n\t\t},\n\t},\n\tpagination: {\n\t\tstyle: {\n\t\t\tcolor: theme.text.secondary,\n\t\t\tfontSize: '13px',\n\t\t\tminHeight: '56px',\n\t\t\tbackgroundColor: theme.background.default,\n\t\t\tborderTopStyle: 'solid',\n\t\t\tborderTopWidth: '1px',\n\t\t\tborderTopColor: theme.divider.default,\n\t\t},\n\t\tpageButtonsStyle: {\n\t\t\tborderRadius: '50%',\n\t\t\theight: '40px',\n\t\t\twidth: '40px',\n\t\t\tpadding: '8px',\n\t\t\tmargin: 'px',\n\t\t\tcursor: 'pointer',\n\t\t\ttransition: '0.4s',\n\t\t\tcolor: theme.button.default,\n\t\t\tfill: theme.button.default,\n\t\t\tbackgroundColor: 'transparent',\n\t\t\t'&:disabled': {\n\t\t\t\tcursor: 'unset',\n\t\t\t\tcolor: theme.button.disabled,\n\t\t\t\tfill: theme.button.disabled,\n\t\t\t},\n\t\t\t'&:hover:not(:disabled)': {\n\t\t\t\tbackgroundColor: theme.button.hover,\n\t\t\t},\n\t\t\t'&:focus': {\n\t\t\t\toutline: 'none',\n\t\t\t\tbackgroundColor: theme.button.focus,\n\t\t\t},\n\t\t},\n\t},\n\tnoData: {\n\t\tstyle: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n\tprogress: {\n\t\tstyle: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\tcolor: theme.text.primary,\n\t\t\tbackgroundColor: theme.background.default,\n\t\t},\n\t},\n});\n\nexport const createStyles = (\n\tcustomStyles: TableStyles = {},\n\tthemeName = 'default',\n\tinherit: Themes = 'default',\n): TableStyles => {\n\tconst themeType = defaultThemes[themeName] ? themeName : inherit;\n\n\treturn merge(defaultStyles(defaultThemes[themeType]), customStyles);\n};\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn 'Sheet' + 'JS ' + XLSX.version + '';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array*/ = [\"ID;PWXL;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('');\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
\");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\td = $cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addYears\"),require(\"date-fns/subMinutes\"),require(\"date-fns/subHours\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getISOWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarWeeks\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-dom\"),require(\"react-popper\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addYears\",\"date-fns/subMinutes\",\"date-fns/subHours\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getISOWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarWeeks\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-dom\",\"react-popper\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.addDays,e.addWeeks,e.addMonths,e.addYears,null,null,e.subDays,e.subWeeks,e.subMonths,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getISOWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.setMonth,e.setQuarter,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,null,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,null,null,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactDOM,e.ReactPopper)}(this,(function(e,t,r,a,n,o,s,i,p,l,d,c,u,f,h,m,y,D,v,w,g,k,b,S,C,_,M,P,E,N,x,O,Y,I,T,L,R,F,A,q,W,B,K,H,j,Q,V,U,$,z,G,J,X,Z,ee,te,re,ae,ne,oe,se,ie,pe){\"use strict\";function le(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var de=le(t),ce=le(a),ue=le(n),fe=le(o),he=le(s),me=le(i),ye=le(p),De=le(l),ve=le(d),we=le(c),ge=le(u),ke=le(m),be=le(y),Se=le(D),Ce=le(v),_e=le(w),Me=le(g),Pe=le(k),Ee=le(b),Ne=le(S),xe=le(C),Oe=le(_),Ye=le(M),Ie=le(P),Te=le(E),Le=le(N),Re=le(x),Fe=le(O),Ae=le(Y),qe=le(I),We=le(T),Be=le(L),Ke=le(R),He=le(F),je=le(A),Qe=le(W),Ve=le(B),Ue=le(K),$e=le(H),ze=le(j),Ge=le(Q),Je=le(V),Xe=le(z),Ze=le(G),et=le(J),tt=le(X),rt=le(Z),at=le(ee),nt=le(te),ot=le(re),st=le(ae),it=le(ne),pt=le(oe),lt=le(se),dt=le(ie);function ct(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function ut(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r0&&(o=it.default(e,t.slice(0,e.length),new Date)),Tt(o)||(o=new Date(e))),Tt(o)&&i?o:null)}function Tt(e,t){return t=t||new Date(\"1/1/1000\"),fe.default(e)&&!nt.default(e,t)}function Lt(e,t,r){if(\"en\"===r)return he.default(e,t,{awareOfUnicodeTokens:!0});var a=Xt(r);return r&&!a&&console.warn('A locale object was not found for the provided string [\"'.concat(r,'\"].')),!a&&Jt()&&Xt(Jt())&&(a=Xt(Jt())),he.default(e,t,{locale:a||null,awareOfUnicodeTokens:!0})}function Rt(e,t){var r=t.dateFormat,a=t.locale;return e&&Lt(e,Array.isArray(r)?r[0]:r,a)||\"\"}function Ft(e,t){var r=t.hour,a=void 0===r?0:r,n=t.minute,o=void 0===n?0:n,s=t.second,i=void 0===s?0:s;return Fe.default(Re.default(Le.default(e,i),o),a)}function At(e,t){var r=t&&Xt(t)||Jt()&&Xt(Jt());return xe.default(e,r?{locale:r}:null)}function qt(e,t){return Lt(e,\"ddd\",t)}function Wt(e){return Ve.default(e)}function Bt(e,t,r){var a=Xt(t||Jt());return Ue.default(e,{locale:a,weekStartsOn:r})}function Kt(e){return $e.default(e)}function Ht(e){return Ge.default(e)}function jt(e){return ze.default(e)}function Qt(e,t){return e&&t?tt.default(e,t):!e&&!t}function Vt(e,t){return e&&t?et.default(e,t):!e&&!t}function Ut(e,t){return e&&t?rt.default(e,t):!e&&!t}function $t(e,t){return e&&t?Ze.default(e,t):!e&&!t}function zt(e,t){return e&&t?Xe.default(e,t):!e&&!t}function Gt(e,t,r){var a,n=Ve.default(t),o=Je.default(r);try{a=ot.default(e,{start:n,end:o})}catch(e){a=!1}return a}function Jt(){return(\"undefined\"!=typeof window?window:globalThis).__localeId__}function Xt(e){if(\"string\"==typeof e){var t=\"undefined\"!=typeof window?window:globalThis;return t.__localeData__?t.__localeData__[e]:null}return e}function Zt(e,t){return Lt(Ae.default(Yt(),e),\"LLLL\",t)}function er(e,t){return Lt(Ae.default(Yt(),e),\"LLL\",t)}function tr(e,t){return Lt(qe.default(Yt(),e),\"QQQ\",t)}function rr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.excludeDateIntervals,s=t.includeDates,i=t.includeDateIntervals,p=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return $t(e,t)}))||o&&o.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})}))||s&&!s.some((function(t){return $t(e,t)}))||i&&!i.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})}))||p&&!p(Yt(e))||!1}function ar(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,a=t.excludeDateIntervals;return a&&a.length>0?a.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})})):r&&r.some((function(t){return $t(e,t)}))||!1}function nr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Vt(e,t)}))||o&&!o.some((function(t){return Vt(e,t)}))||s&&!s(Yt(e))||!1}function or(e,t,r,a){var n=Ie.default(e),o=Oe.default(e),s=Ie.default(t),i=Oe.default(t),p=Ie.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Ut(e,t)}))||o&&!o.some((function(t){return Ut(e,t)}))||s&&!s(Yt(e))||!1}function ir(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=new Date(e,0,1);return lr(n,{minDate:r,maxDate:a})||!1}function pr(e,t,r,a){var n=Ie.default(e),o=Ye.default(e),s=Ie.default(t),i=Ye.default(t),p=Ie.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function lr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate;return r&&He.default(e,r)<0||a&&He.default(e,a)>0}function dr(e,t){return t.some((function(t){return Pe.default(t)===Pe.default(e)&&Me.default(t)===Me.default(e)}))}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,a=t.includeTimes,n=t.filterTime;return r&&dr(e,r)||a&&!dr(e,a)||n&&!n(e)||!1}function ur(e,t){var r=t.minTime,a=t.maxTime;if(!r||!a)throw new Error(\"Both minTime and maxTime props required\");var n,o=Yt(),s=Fe.default(Re.default(o,Me.default(e)),Pe.default(e)),i=Fe.default(Re.default(o,Me.default(r)),Pe.default(r)),p=Fe.default(Re.default(o,Me.default(a)),Pe.default(a));try{n=!ot.default(s,{start:i,end:p})}catch(e){n=!1}return n}function fr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Se.default(e,1);return r&&je.default(r,n)>0||a&&a.every((function(e){return je.default(e,n)>0}))||!1}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=we.default(e,1);return r&&je.default(n,r)>0||a&&a.every((function(e){return je.default(n,e)>0}))||!1}function mr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Ce.default(e,1);return r&&Qe.default(r,n)>0||a&&a.every((function(e){return Qe.default(e,n)>0}))||!1}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=ge.default(e,1);return r&&Qe.default(n,r)>0||a&&a.every((function(e){return Qe.default(n,e)>0}))||!1}function Dr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return He.default(e,t)>=0}));return Be.default(a)}return r?Be.default(r):t}function vr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return He.default(e,t)<=0}));return Ke.default(a)}return r?Ke.default(r):t}function wr(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,a=0,n=e.length;a1&&void 0!==arguments[1]?arguments[1]:xt,r=Math.ceil(Ie.default(e)/t)*t,a=r-(t-1);return{startPeriod:a,endPeriod:r}}function Sr(e,t,r,a){for(var n=[],o=0;o<2*t+1;o++){var s=e+t-o,i=!0;r&&(i=Ie.default(r)<=s),a&&i&&(i=Ie.default(a)>=s),i&&n.push(s)}return n}var Cr=function(e){wt(a,e);var r=Ct(a);function a(e){var n;ht(this,a),Dt(bt(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,t=n.state.yearsList.map((function(t){return de.default.createElement(\"div\",{className:e===t?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:t,onClick:n.onChange.bind(bt(n),t),\"aria-selected\":e===t?\"true\":void 0},e===t?de.default.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",t)})),r=n.props.minDate?Ie.default(n.props.minDate):null,a=n.props.maxDate?Ie.default(n.props.maxDate):null;return a&&n.state.yearsList.find((function(e){return e===a}))||t.unshift(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),r&&n.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),t})),Dt(bt(n),\"onChange\",(function(e){n.props.onChange(e)})),Dt(bt(n),\"handleClickOutside\",(function(){n.props.onCancel()})),Dt(bt(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),Dt(bt(n),\"incrementYears\",(function(){return n.shiftYears(1)})),Dt(bt(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,i=o||(s?10:5);return n.state={yearsList:Sr(n.props.year,i,n.props.minDate,n.props.maxDate)},n.dropdownRef=t.createRef(),n}return yt(a,[{key:\"componentDidMount\",value:function(){var e=this.dropdownRef.current;e&&(e.scrollTop=e.scrollHeight/2-e.clientHeight/2)}},{key:\"render\",value:function(){var e=ce.default({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return de.default.createElement(\"div\",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),a}(de.default.Component),_r=lt.default(Cr),Mr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(r=!0)),r&&e.dayEl.current.focus({preventScroll:!0})})),Dt(bt(e),\"renderDayContents\",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Ne.default(e.props.day),e.props.day):Ne.default(e.props.day)})),Dt(bt(e),\"render\",(function(){return de.default.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"option\",\"aria-disabled\":e.isDisabled(),\"aria-current\":e.isCurrentDay()?\"date\":void 0,\"aria-selected\":e.isSelected()},e.renderDayContents())})),e}return yt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),Lr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o=6,i=!r&&!e.isWeekInMonth(o);if(s||i){if(!e.props.peekNextMonth)break;n=!0}}return t})),Dt(bt(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Kt(Ae.default(e.props.day,r)),t)})),Dt(bt(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),Dt(bt(e),\"onMonthKeyDown\",(function(t,r){var a=t.key;if(!e.props.disabledKeyboardNavigation)switch(a){case\"Enter\":e.onMonthClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,we.default(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,Se.default(e.props.preSelection,1))}})),Dt(bt(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(jt(qe.default(e.props.day,r)),t)})),Dt(bt(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,d=r.monthClassName,c=d?d(a):void 0;return ce.default(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),c,{\"react-datepicker__month--disabled\":(i||p)&&nr(Ae.default(a,t),e.props),\"react-datepicker__month--selected\":e.isSelectedMonth(a,t,s),\"react-datepicker__month-text--keyboard-selected\":Oe.default(l)===t,\"react-datepicker__month--in-range\":or(n,o,t,a),\"react-datepicker__month--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month--range-end\":e.isRangeEndMonth(t),\"react-datepicker__month-text--today\":e.isCurrentMonth(a,t)})})),Dt(bt(e),\"getTabIndex\",(function(t){var r=Oe.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),Dt(bt(e),\"getAriaLabel\",(function(t){var r=e.props,a=r.chooseDayAriaLabelPrefix,n=void 0===a?\"Choose\":a,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,i=r.day,p=Ae.default(i,t),l=e.isDisabled(p)||e.isExcluded(p)?s:n;return\"\".concat(l,\" \").concat(Lt(p,\"MMMM yyyy\"))})),Dt(bt(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate;return ce.default(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter--disabled\":(i||p)&&sr(qe.default(a,t),e.props),\"react-datepicker__quarter--selected\":e.isSelectedQuarter(a,t,s),\"react-datepicker__quarter--in-range\":pr(n,o,t,a),\"react-datepicker__quarter--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter--range-end\":e.isRangeEndQuarter(t)})})),Dt(bt(e),\"renderMonths\",(function(){var t=e.props,r=t.showFullMonthYearPicker,a=t.showTwoColumnMonthYearPicker,n=t.showFourColumnMonthYearPicker,o=t.locale,s=t.day,i=t.selected;return(n?[[0,1,2,3],[4,5,6,7],[8,9,10,11]]:a?[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]]:[[0,1,2],[3,4,5],[6,7,8],[9,10,11]]).map((function(t,a){return de.default.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:a},t.map((function(t,a){return de.default.createElement(\"div\",{ref:e.MONTH_REFS[t],key:a,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:\"option\",\"aria-label\":e.getAriaLabel(t),\"aria-current\":e.isCurrentMonth(s,t)?\"date\":void 0,\"aria-selected\":e.isSelectedMonth(s,t,i)},r?Zt(t,o):er(t,o))})))}))})),Dt(bt(e),\"renderQuarters\",(function(){var t=e.props,r=t.day,a=t.selected;return de.default.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(t,n){return de.default.createElement(\"div\",{key:n,role:\"option\",onClick:function(r){e.onQuarterClick(r,t)},className:e.getQuarterClassNames(t),\"aria-selected\":e.isSelectedQuarter(r,t,a)},tr(t,e.props.locale))})))})),Dt(bt(e),\"getClassNames\",(function(){var t=e.props;t.day;var r=t.selectingDate,a=t.selectsStart,n=t.selectsEnd,o=t.showMonthYearPicker,s=t.showQuarterYearPicker;return ce.default(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||n)},{\"react-datepicker__monthPicker\":o},{\"react-datepicker__quarterPicker\":s})})),e}return yt(r,[{key:\"render\",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,a=e.day,n=e.ariaLabelPrefix,o=void 0===n?\"month \":n;return de.default.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(o,\" \").concat(Lt(a,\"yyyy-MM\")),role:\"listbox\"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),Ar=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{}).className||\"\").split(/\\s+/);return Kr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&a.props.onDropdownFocus()})),Dt(bt(a),\"getDateInView\",(function(){var e=a.props,t=e.preSelection,r=e.selected,n=e.openToDate,o=Dr(a.props),s=vr(a.props),i=Yt(),p=n||r||t;return p||(o&&nt.default(i,o)?o:s&&at.default(i,s)?s:i)})),Dt(bt(a),\"increaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:we.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),Dt(bt(a),\"decreaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:Se.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),Dt(bt(a),\"handleDayClick\",(function(e,t,r){a.props.onSelect(e,t,r),a.props.setPreSelection&&a.props.setPreSelection(e)})),Dt(bt(a),\"handleDayMouseEnter\",(function(e){a.setState({selectingDate:e}),a.props.onDayMouseEnter&&a.props.onDayMouseEnter(e)})),Dt(bt(a),\"handleMonthMouseLeave\",(function(){a.setState({selectingDate:null}),a.props.onMonthMouseLeave&&a.props.onMonthMouseLeave()})),Dt(bt(a),\"handleYearChange\",(function(e){a.props.onYearChange&&a.props.onYearChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),Dt(bt(a),\"handleMonthChange\",(function(e){a.props.onMonthChange&&a.props.onMonthChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),Dt(bt(a),\"handleMonthYearChange\",(function(e){a.handleYearChange(e),a.handleMonthChange(e)})),Dt(bt(a),\"changeYear\",(function(e){a.setState((function(t){var r=t.date;return{date:We.default(r,e)}}),(function(){return a.handleYearChange(a.state.date)}))})),Dt(bt(a),\"changeMonth\",(function(e){a.setState((function(t){var r=t.date;return{date:Ae.default(r,e)}}),(function(){return a.handleMonthChange(a.state.date)}))})),Dt(bt(a),\"changeMonthYear\",(function(e){a.setState((function(t){var r=t.date;return{date:We.default(Ae.default(r,Oe.default(e)),Ie.default(e))}}),(function(){return a.handleMonthYearChange(a.state.date)}))})),Dt(bt(a),\"header\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=Bt(e,a.props.locale,a.props.calendarStartDay),r=[];return a.props.showWeekNumbers&&r.push(de.default.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},a.props.weekLabel||\"#\")),r.concat([0,1,2,3,4,5,6].map((function(e){var r=De.default(t,e),n=a.formatWeekday(r,a.props.locale),o=a.props.weekDayClassName?a.props.weekDayClassName(r):void 0;return de.default.createElement(\"div\",{key:e,className:ce.default(\"react-datepicker__day-name\",o)},n)})))})),Dt(bt(a),\"formatWeekday\",(function(e,t){return a.props.formatWeekDay?function(e,t,r){return t(Lt(e,\"EEEE\",r))}(e,a.props.formatWeekDay,t):a.props.useWeekdaysShort?function(e,t){return Lt(e,\"EEE\",t)}(e,t):function(e,t){return Lt(e,\"EEEEEE\",t)}(e,t)})),Dt(bt(a),\"decreaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:Ce.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),Dt(bt(a),\"renderPreviousButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=mr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.yearItemNumber,n=void 0===a?xt:a,o=br(Ht(Ce.default(e,n)),n).endPeriod,s=r&&Ie.default(r);return s&&s>o||!1}(a.state.date,a.props);break;default:e=fr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],r=a.decreaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.decreaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--previous--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.previousMonthButtonLabel,i=o.previousYearButtonLabel,p=a.props,l=p.previousMonthAriaLabel,d=void 0===l?\"string\"==typeof s?s:\"Previous Month\":l,c=p.previousYearAriaLabel,u=void 0===c?\"string\"==typeof i?i:\"Previous Year\":c;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:d},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--previous\"].join(\" \")},n?a.props.previousYearButtonLabel:a.props.previousMonthButtonLabel))}}})),Dt(bt(a),\"increaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:ge.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),Dt(bt(a),\"renderNextButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=yr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.yearItemNumber,n=void 0===a?xt:a,o=br(ge.default(e,n),n).startPeriod,s=r&&Ie.default(r);return s&&s0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=[\"react-datepicker__current-month\"];return a.props.showYearDropdown&&t.push(\"react-datepicker__current-month--hasYearDropdown\"),a.props.showMonthDropdown&&t.push(\"react-datepicker__current-month--hasMonthDropdown\"),a.props.showMonthYearDropdown&&t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),de.default.createElement(\"div\",{className:t.join(\" \")},Lt(e,a.props.dateFormat,a.props.locale))})),Dt(bt(a),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showYearDropdown&&!e)return de.default.createElement(Mr,{adjustDateOnChange:a.props.adjustDateOnChange,date:a.state.date,onSelect:a.props.onSelect,setOpen:a.props.setOpen,dropdownMode:a.props.dropdownMode,onChange:a.changeYear,minDate:a.props.minDate,maxDate:a.props.maxDate,year:Ie.default(a.state.date),scrollableYearDropdown:a.props.scrollableYearDropdown,yearDropdownItemNumber:a.props.yearDropdownItemNumber})})),Dt(bt(a),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthDropdown&&!e)return de.default.createElement(Nr,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,onChange:a.changeMonth,month:Oe.default(a.state.date),useShortMonthInDropdown:a.props.useShortMonthInDropdown})})),Dt(bt(a),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthYearDropdown&&!e)return de.default.createElement(Ir,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,dateFormat:a.props.dateFormat,onChange:a.changeMonthYear,minDate:a.props.minDate,maxDate:a.props.maxDate,date:a.state.date,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown})})),Dt(bt(a),\"renderTodayButton\",(function(){if(a.props.todayButton&&!a.props.showTimeSelectOnly)return de.default.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return a.props.onSelect(Ve.default(Yt()),e)}},a.props.todayButton)})),Dt(bt(a),\"renderDefaultHeader\",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement(\"div\",{className:\"react-datepicker__header \".concat(a.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},a.renderCurrentMonth(t),de.default.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),onFocus:a.handleDropdownFocus},a.renderMonthDropdown(0!==r),a.renderMonthYearDropdown(0!==r),a.renderYearDropdown(0!==r)),de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),Dt(bt(a),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(a.props.showTimeSelect&&!a.state.monthContainer||a.props.showTimeSelectOnly)return null;var n=fr(a.state.date,a.props),o=hr(a.state.date,a.props),s=mr(a.state.date,a.props),i=yr(a.state.date,a.props),p=!a.props.showMonthYearPicker&&!a.props.showQuarterYearPicker&&!a.props.showYearPicker;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:a.props.onDropdownFocus},a.props.renderCustomHeader(ut(ut({},a.state),{},{customHeaderCount:r,monthDate:t,changeMonth:a.changeMonth,changeYear:a.changeYear,decreaseMonth:a.decreaseMonth,increaseMonth:a.increaseMonth,decreaseYear:a.decreaseYear,increaseYear:a.increaseYear,prevMonthButtonDisabled:n,nextMonthButtonDisabled:o,prevYearButtonDisabled:s,nextYearButtonDisabled:i})),p&&de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),Dt(bt(a),\"renderYearHeader\",(function(){var e=a.state.date,t=a.props,r=t.showYearPicker,n=br(e,t.yearItemNumber),o=n.startPeriod,s=n.endPeriod;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},r?\"\".concat(o,\" - \").concat(s):Ie.default(e))})),Dt(bt(a),\"renderHeader\",(function(e){switch(!0){case void 0!==a.props.renderCustomHeader:return a.renderCustomHeader(e);case a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker:return a.renderYearHeader(e);default:return a.renderDefaultHeader(e)}})),Dt(bt(a),\"renderMonths\",(function(){if(!a.props.showTimeSelectOnly&&!a.props.showYearPicker){for(var e=[],t=a.props.showPreviousMonths?a.props.monthsShown-1:0,r=Se.default(a.state.date,t),n=0;n0;e.push(de.default.createElement(\"div\",{key:i,ref:function(e){a.monthContainer=e},className:\"react-datepicker__month-container\"},a.renderHeader({monthDate:s,i:n}),de.default.createElement(Fr,{chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,ariaLabelPrefix:a.props.monthAriaLabelPrefix,onChange:a.changeMonthYear,day:s,dayClassName:a.props.dayClassName,calendarStartDay:a.props.calendarStartDay,monthClassName:a.props.monthClassName,onDayClick:a.handleDayClick,handleOnKeyDown:a.props.handleOnDayKeyDown,onDayMouseEnter:a.handleDayMouseEnter,onMouseLeave:a.handleMonthMouseLeave,onWeekSelect:a.props.onWeekSelect,orderInDisplay:n,formatWeekNumber:a.props.formatWeekNumber,locale:a.props.locale,minDate:a.props.minDate,maxDate:a.props.maxDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,highlightDates:a.props.highlightDates,selectingDate:a.state.selectingDate,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,inline:a.props.inline,shouldFocusDayInline:a.props.shouldFocusDayInline,fixedHeight:a.props.fixedHeight,filterDate:a.props.filterDate,preSelection:a.props.preSelection,setPreSelection:a.props.setPreSelection,selected:a.props.selected,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showWeekNumbers:a.props.showWeekNumbers,startDate:a.props.startDate,endDate:a.props.endDate,peekNextMonth:a.props.peekNextMonth,setOpen:a.props.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,renderDayContents:a.props.renderDayContents,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,isInputFocused:a.props.isInputFocused,containerRef:a.containerRef,monthShowsDuplicateDaysEnd:p,monthShowsDuplicateDaysStart:l})))}return e}})),Dt(bt(a),\"renderYears\",(function(){if(!a.props.showTimeSelectOnly)return a.props.showYearPicker?de.default.createElement(\"div\",{className:\"react-datepicker__year--container\"},a.renderHeader(),de.default.createElement(qr,vt({onDayClick:a.handleDayClick,date:a.state.date},a.props))):void 0})),Dt(bt(a),\"renderTimeSection\",(function(){if(a.props.showTimeSelect&&(a.state.monthContainer||a.props.showTimeSelectOnly))return de.default.createElement(Ar,{selected:a.props.selected,openToDate:a.props.openToDate,onChange:a.props.onTimeChange,timeClassName:a.props.timeClassName,format:a.props.timeFormat,includeTimes:a.props.includeTimes,intervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,todayButton:a.props.todayButton,showMonthDropdown:a.props.showMonthDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,monthRef:a.state.monthContainer,injectTimes:a.props.injectTimes,locale:a.props.locale,handleOnKeyDown:a.props.handleOnKeyDown,showTimeSelectOnly:a.props.showTimeSelectOnly})})),Dt(bt(a),\"renderInputTimeSection\",(function(){var e=new Date(a.props.selected),t=Tt(e)&&Boolean(a.props.selected)?\"\".concat(kr(e.getHours()),\":\").concat(kr(e.getMinutes())):\"\";if(a.props.showTimeInput)return de.default.createElement(Wr,{date:e,timeString:t,timeInputLabel:a.props.timeInputLabel,onChange:a.props.onTimeChange,customTimeInput:a.props.customTimeInput})})),a.containerRef=de.default.createRef(),a.state={date:a.getDateInView(),selectingDate:null,monthContainer:null},a}return yt(r,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){this.props.preSelection&&!$t(this.props.preSelection,e.preSelection)?this.setState({date:this.props.preSelection}):this.props.openToDate&&!$t(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate})}},{key:\"render\",value:function(){var e=this.props.container||Br;return de.default.createElement(\"div\",{ref:this.containerRef},de.default.createElement(e,{className:ce.default(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.props.children))}}],[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,monthSelectedIn:0,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:xt}}}]),r}(de.default.Component),jr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),(a=t.call(this,e)).el=document.createElement(\"div\"),a}return yt(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return dt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),Qr=function(e){return!e.disabled&&-1!==e.tabIndex},Vr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),Dt(bt(a=t.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(Qr)})),Dt(bt(a),\"handleFocusStart\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[t.length-1].focus()})),Dt(bt(a),\"handleFocusEnd\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[0].focus()})),a.tabLoopRef=de.default.createRef(),a}return yt(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),Ur=function(e){wt(r,e);var t=Ct(r);function r(){return ht(this,r),t.apply(this,arguments)}return yt(r,[{key:\"render\",value:function(){var e,t=this.props,r=t.className,a=t.wrapperClassName,n=t.hidePopper,o=t.popperComponent,s=t.popperModifiers,i=t.popperPlacement,p=t.popperProps,l=t.targetComponent,d=t.enableTabLoop,c=t.popperOnKeyDown,u=t.portalId,f=t.portalHost;if(!n){var h=ce.default(\"react-datepicker-popper\",r);e=de.default.createElement(pe.Popper,vt({modifiers:s,placement:i},p),(function(e){var t=e.ref,r=e.style,a=e.placement,n=e.arrowProps;return de.default.createElement(Vr,{enableTabLoop:d},de.default.createElement(\"div\",{ref:t,style:r,className:h,\"data-placement\":a,onKeyDown:c},de.default.cloneElement(o,{arrowProps:n})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),u&&!n&&(e=de.default.createElement(jr,{portalId:u,portalHost:f},e));var m=ce.default(\"react-datepicker-wrapper\",a);return de.default.createElement(pe.Manager,{className:\"react-datepicker-manager\"},de.default.createElement(pe.Reference,null,(function(e){var t=e.ref;return de.default.createElement(\"div\",{ref:t,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(de.default.Component),$r=\"react-datepicker-ignore-onclickoutside\",zr=lt.default(Hr);var Gr=\"Date input not valid.\",Jr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),Dt(bt(a=t.call(this,e)),\"getPreSelection\",(function(){return a.props.openToDate?a.props.openToDate:a.props.selectsEnd&&a.props.startDate?a.props.startDate:a.props.selectsStart&&a.props.endDate?a.props.endDate:Yt()})),Dt(bt(a),\"calcInitialState\",(function(){var e,t=a.getPreSelection(),r=Dr(a.props),n=vr(a.props),o=r&&nt.default(t,Ve.default(r))?r:n&&at.default(t,Je.default(n))?n:t;return{open:a.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=a.props.selectsRange?a.props.startDate:a.props.selected)&&void 0!==e?e:o,highlightDates:wr(a.props.highlightDates),focused:!1,shouldFocusDayInline:!1}})),Dt(bt(a),\"clearPreventFocusTimeout\",(function(){a.preventFocusTimeout&&clearTimeout(a.preventFocusTimeout)})),Dt(bt(a),\"setFocus\",(function(){a.input&&a.input.focus&&a.input.focus({preventScroll:!0})})),Dt(bt(a),\"setBlur\",(function(){a.input&&a.input.blur&&a.input.blur(),a.cancelFocusInput()})),Dt(bt(a),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.setState({open:e,preSelection:e&&a.state.open?a.state.preSelection:a.calcInitialState().preSelection,lastPreSelectChange:Zr},(function(){e||a.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&a.setBlur(),a.setState({inputValue:null})}))}))})),Dt(bt(a),\"inputOk\",(function(){return ue.default(a.state.preSelection)})),Dt(bt(a),\"isCalendarOpen\",(function(){return void 0===a.props.open?a.state.open&&!a.props.disabled&&!a.props.readOnly:a.props.open})),Dt(bt(a),\"handleFocus\",(function(e){a.state.preventFocus||(a.props.onFocus(e),a.props.preventOpenOnFocus||a.props.readOnly||a.setOpen(!0)),a.setState({focused:!0})})),Dt(bt(a),\"cancelFocusInput\",(function(){clearTimeout(a.inputFocusTimeout),a.inputFocusTimeout=null})),Dt(bt(a),\"deferFocusInput\",(function(){a.cancelFocusInput(),a.inputFocusTimeout=setTimeout((function(){return a.setFocus()}),1)})),Dt(bt(a),\"handleDropdownFocus\",(function(){a.cancelFocusInput()})),Dt(bt(a),\"handleBlur\",(function(e){(!a.state.open||a.props.withPortal||a.props.showTimeInput)&&a.props.onBlur(e),a.setState({focused:!1})})),Dt(bt(a),\"handleCalendarClickOutside\",(function(e){a.props.inline||a.setOpen(!1),a.props.onClickOutside(e),a.props.withPortal&&e.preventDefault()})),Dt(bt(a),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.slice(pos, idx)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n let type, xOffset, yOffset, size, cornerRadius;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { toFont as $, _rlookupByKey as A, _isPointInArea as B, getAngleFromPoint as C, toPadding as D, each as E, getMaximumSize as F, _getParentNode as G, HALF_PI as H, readUsedSize as I, throttled as J, supportsEventListenerOptions as K, _isDomSupported as L, log10 as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, toDegrees as S, TAU as T, _measureText as U, _int16Range as V, _alignPixel as W, clipArea as X, renderText as Y, unclipArea as Z, _arrayUnique as _, resolve as a, QUARTER_PI as a$, _toLeftRightCenter as a0, _alignStartEnd as a1, overrides as a2, merge as a3, _capitalize as a4, descriptors as a5, isFunction as a6, _attachContext as a7, _createResolver as a8, _descriptors as a9, _textX as aA, restoreTextDirection as aB, noop as aC, distanceBetweenPoints as aD, _setMinAndMaxByKey as aE, niceNum as aF, almostWhole as aG, almostEquals as aH, _decimalPlaces as aI, _longestText as aJ, _filterBetween as aK, _lookup as aL, isPatternOrGradient as aM, getHoverColor as aN, clone$1 as aO, _merger as aP, _mergerIf as aQ, _deprecated as aR, toFontString as aS, splineCurve as aT, splineCurveMonotone as aU, getStyle as aV, fontString as aW, toLineHeight as aX, PITAU as aY, INFINITY as aZ, RAD_PER_DEG as a_, mergeIf as aa, uid as ab, debounce as ac, retinaScale as ad, clearCanvas as ae, setsEqual as af, _elementsEqual as ag, _isClickEvent as ah, _isBetween as ai, _readValueToProps as aj, _updateBezierControlPoints as ak, _computeSegments as al, _boundSegments as am, _steppedInterpolation as an, _bezierInterpolation as ao, _pointInLine as ap, _steppedLineTo as aq, _bezierCurveTo as ar, drawPoint as as, addRoundedRectPath as at, toTRBL as au, toTRBLCorners as av, _boundSegment as aw, _normalizeAngle as ax, getRtlAdapter as ay, overrideTextDirection as az, isArray as b, TWO_THIRDS_PI as b0, _angleDiff as b1, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n","/*!\n * Chart.js v3.8.0\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _isPointInArea, C as getAngleFromPoint, D as toPadding, E as each, F as getMaximumSize, G as _getParentNode, I as readUsedSize, J as throttled, K as supportsEventListenerOptions, L as _isDomSupported, M as log10, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as toDegrees, U as _measureText, V as _int16Range, W as _alignPixel, X as clipArea, Y as renderText, Z as unclipArea, $ as toFont, a0 as _toLeftRightCenter, a1 as _alignStartEnd, a2 as overrides, a3 as merge, a4 as _capitalize, a5 as descriptors, a6 as isFunction, a7 as _attachContext, a8 as _createResolver, a9 as _descriptors, aa as mergeIf, ab as uid, ac as debounce, ad as retinaScale, ae as clearCanvas, af as setsEqual, ag as _elementsEqual, ah as _isClickEvent, ai as _isBetween, aj as _readValueToProps, ak as _updateBezierControlPoints, al as _computeSegments, am as _boundSegments, an as _steppedInterpolation, ao as _bezierInterpolation, ap as _pointInLine, aq as _steppedLineTo, ar as _bezierCurveTo, as as drawPoint, at as addRoundedRectPath, au as toTRBL, av as toTRBLCorners, aw as _boundSegment, ax as _normalizeAngle, ay as getRtlAdapter, az as overrideTextDirection, aA as _textX, aB as restoreTextDirection, aC as noop, aD as distanceBetweenPoints, aE as _setMinAndMaxByKey, aF as niceNum, aG as almostWhole, aH as almostEquals, aI as _decimalPlaces, aJ as _longestText, aK as _filterBetween, aL as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n return plugins;\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, plugins, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.8.0\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (source) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = compareObjects;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction compareObjects(objA, objB) {\n var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if (objA === objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (aKeys.length !== bKeys.length) {\n return true;\n }\n\n var keysMap = {};\n var i, len;\n\n for (i = 0, len = keys.length; i < len; i++) {\n keysMap[keys[i]] = true;\n }\n\n for (i = 0, len = aKeys.length; i < len; i++) {\n var key = aKeys[i];\n var aValue = objA[key];\n var bValue = objB[key];\n\n if (aValue === bValue) {\n continue;\n }\n\n if (!keysMap[key] || aValue === null || bValue === null || _typeof(aValue) !== 'object' || _typeof(bValue) !== 'object') {\n return true;\n }\n\n var aValueKeys = Object.keys(aValue);\n var bValueKeys = Object.keys(bValue);\n\n if (aValueKeys.length !== bValueKeys.length) {\n return true;\n }\n\n for (var n = 0, length = aValueKeys.length; n < length; n++) {\n var aValueKey = aValueKeys[n];\n\n if (aValue[aValueKey] !== bValue[aValueKey]) {\n return true;\n }\n }\n }\n\n return false;\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import type { MouseEvent } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nimport type { ForwardedRef } from './types';\n\nconst defaultDatasetIdKey = 'label';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n chart.options = { ...nextOptions };\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[],\n datasetIdKey = defaultDatasetIdKey\n) {\n const addedDatasets: ChartDataset[] = [];\n\n currentData.datasets = nextDatasets.map(\n (nextDataset: Record) => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n (dataset: Record) =>\n dataset[datasetIdKey] === nextDataset[datasetIdKey]\n );\n\n // There is no original to update, so simply add new one\n if (\n !currentDataset ||\n !nextDataset.data ||\n addedDatasets.includes(currentDataset)\n ) {\n return { ...nextDataset } as ChartDataset;\n }\n\n addedDatasets.push(currentDataset);\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n }\n );\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData, datasetIdKey = defaultDatasetIdKey) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n\n return nextData;\n}\n\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getDatasetAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementsAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n );\n}\n","import React, { useEffect, useRef, forwardRef } from 'react';\nimport { Chart as ChartJS } from 'chart.js';\nimport type { ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ForwardedRef, ChartProps, TypedChartComponent } from './types';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils';\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n {\n height = 150,\n width = 300,\n redraw = false,\n datasetIdKey,\n type,\n data,\n options,\n plugins = [],\n fallbackContent,\n updateMode,\n ...props\n }: ChartProps,\n ref: ForwardedRef>\n) {\n type TypedChartJS = ChartJS;\n\n const canvasRef = useRef(null);\n const chartRef = useRef();\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data, datasetIdKey),\n options,\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as TypedChartComponent;\n","import React, { forwardRef } from 'react';\nimport {\n Chart as ChartJS,\n LineController,\n BarController,\n RadarController,\n DoughnutController,\n PolarAreaController,\n BubbleController,\n PieController,\n ScatterController,\n} from 'chart.js';\nimport type { ChartType, ChartComponentLike } from 'chart.js';\n\nimport type {\n ChartProps,\n ChartJSOrUndefined,\n TypedChartComponent,\n} from './types';\nimport { Chart } from './chart';\n\nfunction createTypedChart(\n type: T,\n registerables: ChartComponentLike\n) {\n ChartJS.register(registerables);\n\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = /* #__PURE__ */ createTypedChart('line', LineController);\n\nexport const Bar = /* #__PURE__ */ createTypedChart('bar', BarController);\n\nexport const Radar = /* #__PURE__ */ createTypedChart('radar', RadarController);\n\nexport const Doughnut = /* #__PURE__ */ createTypedChart(\n 'doughnut',\n DoughnutController\n);\n\nexport const PolarArea = /* #__PURE__ */ createTypedChart(\n 'polarArea',\n PolarAreaController\n);\n\nexport const Bubble = /* #__PURE__ */ createTypedChart(\n 'bubble',\n BubbleController\n);\n\nexport const Pie = /* #__PURE__ */ createTypedChart('pie', PieController);\n\nexport const Scatter = /* #__PURE__ */ createTypedChart(\n 'scatter',\n ScatterController\n);\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\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","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","/**\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * Copyright (c) 2014-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\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\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 warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nmodule.exports = require('./Autosuggest')[\"default\"];","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a