{"version":3,"file":"js/bundle.js?ver=3.0.55.4","sources":["webpack:///webpack/bootstrap dbada6f6c3eb1457f973","webpack:///./~/core-js/modules/_export.js","webpack:///./~/react/react.js","webpack:///./~/prop-types/index.js","webpack:///./~/core-js/modules/_an-object.js","webpack:///./~/react-redux/es/index.js","webpack:///./~/fbjs/lib/invariant.js","webpack:///./~/core-js/modules/_global.js","webpack:///./~/crypto-js/core.js","webpack:///./~/core-js/modules/_fails.js","webpack:///./~/core-js/modules/_is-object.js","webpack:///./~/fbjs/lib/warning.js","webpack:///./~/react-dom/lib/reactProdInvariant.js","webpack:///./~/react-router/es/index.js","webpack:///./~/core-js/modules/_wks.js","webpack:///app/common/components/Loader/Loader.jsx","webpack:///./~/core-js/modules/_to-length.js","webpack:///./~/object-assign/index.js","webpack:///./~/underscore/modules/_setup.js","webpack:///app/common/actions/ErrorAction.js","webpack:///./~/core-js/modules/_descriptors.js","webpack:///./~/core-js/modules/_object-dp.js","webpack:///./~/core-js/modules/_to-object.js","webpack:///./~/react-dom/lib/ReactDOMComponentTree.js","webpack:///./~/crypto-js/cipher-core.js","webpack:///./app/version.json","webpack:///./~/underscore/modules/keys.js","webpack:///app/common/actions/CartAction.js","webpack:///./~/invariant/browser.js","webpack:///./~/underscore/modules/_tagTester.js","webpack:///app/common/actions/AuthAction.js","webpack:///./~/core-js/modules/_a-function.js","webpack:///./~/redux-persist/es/constants.js","webpack:///./~/fbjs/lib/ExecutionEnvironment.js","webpack:///./~/underscore/modules/_cb.js","webpack:///app/common/actions/UserAction.js","webpack:///./~/core-js/modules/_hide.js","webpack:///./~/core-js/modules/_redefine.js","webpack:///./~/core-js/modules/_string-html.js","webpack:///./~/underscore/modules/_isArrayLike.js","webpack:///./~/underscore/modules/restArguments.js","webpack:///./~/underscore/modules/underscore.js","webpack:///./~/axios/lib/utils.js","webpack:///app/common/actions/PatronsAction.js","webpack:///./~/core-js/modules/_has.js","webpack:///./~/core-js/modules/_object-gopd.js","webpack:///./~/core-js/modules/_object-gpo.js","webpack:///./~/core-js/modules/_to-iobject.js","webpack:///./~/underscore/modules/_getLength.js","webpack:///./~/underscore/modules/isFunction.js","webpack:///./~/axios/index.js","webpack:///app/common/components/ToolTip/ToolTip.jsx","webpack:///./~/core-js/modules/_cof.js","webpack:///./~/core-js/modules/_core.js","webpack:///./~/core-js/modules/_ctx.js","webpack:///./~/core-js/modules/_strict-method.js","webpack:///./~/core-js/modules/_to-integer.js","webpack:///./~/fbjs/lib/emptyFunction.js","webpack:///./~/react-dom/lib/ReactInstrumentation.js","webpack:///app/common/js/utils.js","webpack:///./~/core-js/modules/_array-methods.js","webpack:///./~/core-js/modules/_defined.js","webpack:///./~/core-js/modules/_object-sap.js","webpack:///./~/core-js/modules/_to-primitive.js","webpack:///./~/react-dom/lib/ReactUpdates.js","webpack:///app/common/actions/SubAction.js","webpack:///./~/core-js/modules/_metadata.js","webpack:///./~/core-js/modules/_typed-array.js","webpack:///./~/create-react-class/index.js","webpack:///./~/react-dom/lib/SyntheticEvent.js","webpack:///./~/react/lib/ReactCurrentOwner.js","webpack:///./~/axios-retry/lib/esm/index.js","webpack:///app/common/actions/TransAction.js","webpack:///app/common/constants/AuthConstants.js","webpack:///app/common/constants/UserConstants.js","webpack:///./~/core-js/modules/_add-to-unscopables.js","webpack:///./~/core-js/modules/_library.js","webpack:///./~/core-js/modules/_meta.js","webpack:///./~/history/lib/PathUtils.js","webpack:///./~/react-router/es/RouteUtils.js","webpack:///./~/underscore/modules/_has.js","webpack:///./~/warning/browser.js","webpack:///(webpack)/buildin/global.js","webpack:///app/common/actions/RememberAction.js","webpack:///app/common/components/LeftCol/LeftCol.jsx","webpack:///app/common/components/RightCol/RightCol.jsx","webpack:///./~/core-js/modules/_an-instance.js","webpack:///./~/core-js/modules/_for-of.js","webpack:///./~/core-js/modules/_object-create.js","webpack:///./~/core-js/modules/_object-gopn.js","webpack:///./~/core-js/modules/_object-keys.js","webpack:///./~/core-js/modules/_property-desc.js","webpack:///./~/core-js/modules/_redefine-all.js","webpack:///./~/core-js/modules/_set-species.js","webpack:///./~/core-js/modules/_to-absolute-index.js","webpack:///./~/core-js/modules/_uid.js","webpack:///./~/core-js/modules/_validate-collection.js","webpack:///./~/crypto-js/evpkdf.js","webpack:///./~/history/lib/LocationUtils.js","webpack:///./~/react-dom/lib/PooledClass.js","webpack:///./~/underscore/modules/each.js","webpack:///./~/underscore/modules/isArray.js","webpack:///./~/underscore/modules/isObject.js","webpack:///app/common/components/Modals/Modal/Modal.jsx","webpack:///./~/core-js/modules/_classof.js","webpack:///./~/core-js/modules/_iterators.js","webpack:///./~/core-js/modules/_set-to-string-tag.js","webpack:///./~/core-js/modules/_string-trim.js","webpack:///./~/crypto-js/enc-base64.js","webpack:///./~/crypto-js/md5.js","webpack:///./~/react-dom/lib/DOMLazyTree.js","webpack:///./~/react-dom/lib/DOMProperty.js","webpack:///./~/react-dom/lib/ReactReconciler.js","webpack:///./~/react-router/es/PatternUtils.js","webpack:///./~/react-router/es/routerWarning.js","webpack:///./~/react/lib/React.js","webpack:///./~/react/lib/ReactElement.js","webpack:///./~/underscore/modules/_flatten.js","webpack:///./~/underscore/modules/map.js","webpack:///./~/underscore/modules/values.js","webpack:///app/common/components/AddStudent/AddStudent.jsx","webpack:///app/common/js/Biometry.js","webpack:///./~/core-js/modules/_flags.js","webpack:///./~/core-js/modules/_iobject.js","webpack:///./~/core-js/modules/_object-pie.js","webpack:///./~/core-js/modules/_shared.js","webpack:///./~/core-js/modules/_species-constructor.js","webpack:///./~/history/lib/Actions.js","webpack:///./~/history/lib/DOMUtils.js","webpack:///./~/react-dom/lib/EventPluginHub.js","webpack:///./~/react-dom/lib/EventPropagators.js","webpack:///./~/react-dom/lib/ReactInstanceMap.js","webpack:///./~/react-dom/lib/SyntheticUIEvent.js","webpack:///./~/react-router/es/InternalPropTypes.js","webpack:///./~/react/lib/reactProdInvariant.js","webpack:///./~/underscore/modules/_optimizeCb.js","webpack:///./~/underscore/modules/_stringTagBug.js","webpack:///./~/underscore/modules/_toPath.js","webpack:///./~/underscore/modules/allKeys.js","webpack:///./~/underscore/modules/contains.js","webpack:///./~/underscore/modules/filter.js","webpack:///app/common/components/Receipt/Receipt.jsx","webpack:///app/common/constants/CartConstants.js","webpack:///./~/core-js/modules/_array-includes.js","webpack:///./~/core-js/modules/_collection.js","webpack:///./~/core-js/modules/_fix-re-wks.js","webpack:///./~/core-js/modules/_is-array.js","webpack:///./~/core-js/modules/_is-regexp.js","webpack:///./~/core-js/modules/_iter-detect.js","webpack:///./~/core-js/modules/_object-forced-pam.js","webpack:///./~/core-js/modules/_object-gops.js","webpack:///./~/core-js/modules/_regexp-exec-abstract.js","webpack:///./~/core-js/modules/_set-collection-from.js","webpack:///./~/core-js/modules/_set-collection-of.js","webpack:///./~/core-js/modules/_string-at.js","webpack:///./~/core-js/modules/_typed.js","webpack:///./~/core-js/modules/_user-agent.js","webpack:///./~/crypto-js/x64-core.js","webpack:///./app/common/components/AboutComponents/Contents/Contents.scss","webpack:///./app/parent/components/Subscriptions/Subscriptions.scss","webpack:///./~/history/lib/ExecutionEnvironment.js","webpack:///./~/react-dom/lib/ReactBrowserEventEmitter.js","webpack:///./~/react-dom/lib/SyntheticMouseEvent.js","webpack:///./~/react-dom/lib/Transaction.js","webpack:///./~/react-dom/lib/escapeTextContentForBrowser.js","webpack:///./~/react-dom/lib/setInnerHTML.js","webpack:///./~/react-is/index.js","webpack:///./~/underscore/modules/_group.js","webpack:///./~/underscore/modules/matcher.js","webpack:///./~/underscore/modules/partial.js","webpack:///./~/@babel/runtime/helpers/esm/extends.js","webpack:///./~/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./~/axios/lib/defaults.js","webpack:///app/common/components/ExistingPayment/ExistingPayment.jsx","webpack:///app/common/components/Modals/Error/Error.jsx","webpack:///app/common/components/PaymentInfo/PaymentInfo.jsx","webpack:///app/common/components/SinglePage/SinglePage.jsx","webpack:///app/common/constants/PatronsConstants.js","webpack:///app/common/js/Push.js","webpack:///app/common/js/Sub.js","webpack:///app/common/js/coppa.js","webpack:///app/parent/components/Sidebar/Sidebar.jsx","webpack:///./~/core-js/modules/_advance-string-index.js","webpack:///./~/core-js/modules/_array-fill.js","webpack:///./~/core-js/modules/_array-species-create.js","webpack:///./~/core-js/modules/_create-property.js","webpack:///./~/core-js/modules/_dom-create.js","webpack:///./~/core-js/modules/_enum-bug-keys.js","webpack:///./~/core-js/modules/_fails-is-regexp.js","webpack:///./~/core-js/modules/_html.js","webpack:///./~/core-js/modules/_inherit-if-required.js","webpack:///./~/core-js/modules/_is-array-iter.js","webpack:///./~/core-js/modules/_iter-create.js","webpack:///./~/core-js/modules/_iter-define.js","webpack:///./~/core-js/modules/_math-expm1.js","webpack:///./~/core-js/modules/_math-sign.js","webpack:///./~/core-js/modules/_microtask.js","webpack:///./~/core-js/modules/_new-promise-capability.js","webpack:///./~/core-js/modules/_regexp-exec.js","webpack:///./~/core-js/modules/_set-proto.js","webpack:///./~/core-js/modules/_shared-key.js","webpack:///./~/core-js/modules/_string-context.js","webpack:///./~/core-js/modules/_string-repeat.js","webpack:///./~/core-js/modules/_string-ws.js","webpack:///./~/core-js/modules/_task.js","webpack:///./~/core-js/modules/_typed-buffer.js","webpack:///./~/core-js/modules/_wks-define.js","webpack:///./~/core-js/modules/core.get-iterator-method.js","webpack:///./~/core-js/modules/es6.array.iterator.js","webpack:///./~/crypto-js/hmac.js","webpack:///./~/crypto-js/sha1.js","webpack:///./~/es5-ext/object/is-value.js","webpack:///./~/fbjs/lib/emptyObject.js","webpack:///./~/fbjs/lib/shallowEqual.js","webpack:///./~/focus-trap-react/dist/focus-trap-react.js","webpack:///./~/history/lib/BrowserProtocol.js","webpack:///./~/history/lib/createHistory.js","webpack:///./~/history/lib/runTransitionHook.js","webpack:///./~/history/lib/useBasename.js","webpack:///./~/history/lib/useQueries.js","webpack:///./app/common/constants/SecurityQuestions.json","webpack:///./app/common/constants/ValidationErrorIDs.json","webpack:///./~/lodash-es/isPlainObject.js","webpack:///./~/process/browser.js","webpack:///./~/react-autowhatever/dist/compareObjects.js","webpack:///./~/react-dom/lib/DOMChildrenOperations.js","webpack:///./~/react-dom/lib/DOMNamespaces.js","webpack:///./~/react-dom/lib/EventPluginRegistry.js","webpack:///./~/react-dom/lib/EventPluginUtils.js","webpack:///./~/react-dom/lib/KeyEscapeUtils.js","webpack:///./~/react-dom/lib/LinkedValueUtils.js","webpack:///./~/react-dom/lib/ReactComponentEnvironment.js","webpack:///./~/react-dom/lib/ReactErrorUtils.js","webpack:///./~/react-dom/lib/ReactUpdateQueue.js","webpack:///./~/react-dom/lib/createMicrosoftUnsafeLocalFunction.js","webpack:///./~/react-dom/lib/getEventCharCode.js","webpack:///./~/react-dom/lib/getEventModifierState.js","webpack:///./~/react-dom/lib/getEventTarget.js","webpack:///./~/react-dom/lib/isEventSupported.js","webpack:///./~/react-dom/lib/shouldUpdateReactComponent.js","webpack:///./~/react-dom/lib/validateDOMNesting.js","webpack:///./~/react-redux/es/utils/warning.js","webpack:///./~/react-router/es/AsyncUtils.js","webpack:///./~/react-router/es/ContextUtils.js","webpack:///./~/react-router/es/PropTypes.js","webpack:///./~/react-router/es/RouterContext.js","webpack:///./~/redux/es/index.js","webpack:///./~/underscore/modules/_createAssigner.js","webpack:///./~/underscore/modules/_deepGet.js","webpack:///./~/underscore/modules/_getByteLength.js","webpack:///./~/underscore/modules/_methodFingerprint.js","webpack:///./~/underscore/modules/extendOwn.js","webpack:///./~/underscore/modules/findIndex.js","webpack:///./~/underscore/modules/identity.js","webpack:///./~/underscore/modules/index-all.js","webpack:///./~/underscore/modules/index.js","webpack:///./~/underscore/modules/isArguments.js","webpack:///./~/underscore/modules/isDataView.js","webpack:///./~/underscore/modules/isString.js","webpack:///./~/underscore/modules/negate.js","webpack:///./~/underscore/modules/now.js","webpack:///./~/underscore/modules/pluck.js","webpack:///./~/underscore/modules/property.js","webpack:///./~/regenerator-runtime/runtime.js","webpack:///./~/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./~/axios/lib/adapters/xhr.js","webpack:///./~/axios/lib/cancel/Cancel.js","webpack:///./~/axios/lib/cancel/isCancel.js","webpack:///./~/axios/lib/core/createError.js","webpack:///./~/axios/lib/helpers/bind.js","webpack:///app/common/actions/AboutAction.js","webpack:///app/common/components/AboutComponents/AboutComponents.jsx","webpack:///app/common/components/AboutComponents/Contents/TermOfUseContents.jsx","webpack:///app/common/components/AccountInfo/AccountInfo.jsx","webpack:///app/common/components/Alert/Alert.jsx","webpack:///app/common/components/ForgotPassword/ForgotPassword.jsx","webpack:///app/common/components/ForgotUsername/ForgotUsername.jsx","webpack:///app/common/components/Header/Header.jsx","webpack:///app/common/components/Modals/Reauth/Reauth.jsx","webpack:///app/common/components/StudentInfo/StudentInfo.jsx","webpack:///app/common/components/SubSetting/SubSetting.jsx","webpack:///app/common/components/ToggleLoader/ToggleLoader.jsx","webpack:///app/common/components/Toggle/Toggle.jsx","webpack:///app/common/components/UserInfo/UserInfo.jsx","webpack:///app/common/constants/AboutConstants.js","webpack:///app/common/constants/ErrorConstants.js","webpack:///app/common/constants/RememberConstants.js","webpack:///app/common/constants/ReportConstants.js","webpack:///app/common/constants/SubConstants.js","webpack:///app/common/constants/TransConstants.js","webpack:///app/common/js/RegistrationValidation.js","webpack:///app/common/js/SubForm.js","webpack:///app/parent/components/Subscriptions/SubscriptionForm.jsx","webpack:///app/parent/store.js","webpack:///./~/core-js/modules/_a-number-value.js","webpack:///./~/core-js/modules/_array-copy-within.js","webpack:///./~/core-js/modules/_array-from-iterable.js","webpack:///./~/core-js/modules/_array-reduce.js","webpack:///./~/core-js/modules/_bind.js","webpack:///./~/core-js/modules/_collection-strong.js","webpack:///./~/core-js/modules/_collection-to-json.js","webpack:///./~/core-js/modules/_collection-weak.js","webpack:///./~/core-js/modules/_flatten-into-array.js","webpack:///./~/core-js/modules/_ie8-dom-define.js","webpack:///./~/core-js/modules/_invoke.js","webpack:///./~/core-js/modules/_is-integer.js","webpack:///./~/core-js/modules/_iter-call.js","webpack:///./~/core-js/modules/_iter-step.js","webpack:///./~/core-js/modules/_math-fround.js","webpack:///./~/core-js/modules/_math-log1p.js","webpack:///./~/core-js/modules/_math-scale.js","webpack:///./~/core-js/modules/_object-assign.js","webpack:///./~/core-js/modules/_object-dps.js","webpack:///./~/core-js/modules/_object-gopn-ext.js","webpack:///./~/core-js/modules/_object-keys-internal.js","webpack:///./~/core-js/modules/_object-to-array.js","webpack:///./~/core-js/modules/_own-keys.js","webpack:///./~/core-js/modules/_parse-float.js","webpack:///./~/core-js/modules/_parse-int.js","webpack:///./~/core-js/modules/_perform.js","webpack:///./~/core-js/modules/_promise-resolve.js","webpack:///./~/core-js/modules/_same-value.js","webpack:///./~/core-js/modules/_string-pad.js","webpack:///./~/core-js/modules/_to-index.js","webpack:///./~/core-js/modules/_wks-ext.js","webpack:///./~/core-js/modules/es6.map.js","webpack:///./~/core-js/modules/es6.regexp.exec.js","webpack:///./~/core-js/modules/es6.regexp.flags.js","webpack:///./~/core-js/modules/es6.set.js","webpack:///./~/core-js/modules/es6.weak-map.js","webpack:///./~/create-react-class/factory.js","webpack:///./~/crypto-js/sha256.js","webpack:///./~/crypto-js/sha512.js","webpack:///./~/fbjs/lib/EventListener.js","webpack:///./~/fbjs/lib/focusNode.js","webpack:///./~/fbjs/lib/getActiveElement.js","webpack:///./~/history/lib/DOMStateStorage.js","webpack:///./~/history/lib/createBrowserHistory.js","webpack:///./~/history/lib/createHashHistory.js","webpack:///./~/history/lib/createMemoryHistory.js","webpack:///./~/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./~/lodash-es/_Symbol.js","webpack:///./~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/react-autosuggest/dist/redux.js","webpack:///./~/react-dom/lib/CSSProperty.js","webpack:///./~/react-dom/lib/CallbackQueue.js","webpack:///./~/react-dom/lib/DOMPropertyOperations.js","webpack:///./~/react-dom/lib/ReactDOMComponentFlags.js","webpack:///./~/react-dom/lib/ReactDOMSelect.js","webpack:///./~/react-dom/lib/ReactEmptyComponent.js","webpack:///./~/react-dom/lib/ReactFeatureFlags.js","webpack:///./~/react-dom/lib/ReactHostComponent.js","webpack:///./~/react-dom/lib/ReactInputSelection.js","webpack:///./~/react-dom/lib/ReactMount.js","webpack:///./~/react-dom/lib/ReactNodeTypes.js","webpack:///./~/react-dom/lib/ViewportMetrics.js","webpack:///./~/react-dom/lib/accumulateInto.js","webpack:///./~/react-dom/lib/forEachAccumulated.js","webpack:///./~/react-dom/lib/getHostComponentFromComposite.js","webpack:///./~/react-dom/lib/getTextContentAccessor.js","webpack:///./~/react-dom/lib/instantiateReactComponent.js","webpack:///./~/react-dom/lib/isTextInputElement.js","webpack:///./~/react-dom/lib/setTextContent.js","webpack:///./~/react-dom/lib/traverseAllChildren.js","webpack:///./~/react-pullrefresh/index.js","webpack:///./~/react-redux/es/components/connectAdvanced.js","webpack:///./~/react-redux/es/connect/wrapMapToProps.js","webpack:///./~/react-redux/es/utils/PropTypes.js","webpack:///./~/react-redux/es/utils/verifyPlainObject.js","webpack:///./~/react-router/es/Link.js","webpack:///./~/react-router/es/PromiseUtils.js","webpack:///./~/react-router/es/Redirect.js","webpack:///./~/react-router/es/RouterUtils.js","webpack:///./~/react-router/es/createMemoryHistory.js","webpack:///./~/react-router/es/createRouterHistory.js","webpack:///./~/react-router/es/createTransitionManager.js","webpack:///./~/react-router/es/useRouterHistory.js","webpack:///./~/react/lib/ReactBaseClasses.js","webpack:///./~/react/lib/ReactComponentTreeHook.js","webpack:///./~/react/lib/ReactElementSymbol.js","webpack:///./~/react/lib/ReactNoopUpdateQueue.js","webpack:///./~/react/lib/canDefineProperty.js","webpack:///./~/redux-logger/lib/helpers.js","webpack:///./~/redux-persist/es/createPersistor.js","webpack:///./~/redux-persist/es/defaults/asyncLocalStorage.js","webpack:///./~/redux-persist/es/getStoredState.js","webpack:///./~/redux-persist/es/purgeStoredState.js","webpack:///./~/redux-persist/es/utils/setImmediate.js","webpack:///./~/redux/es/compose.js","webpack:///./~/redux/es/createStore.js","webpack:///./~/redux/es/utils/warning.js","webpack:///./~/type/value/is.js","webpack:///./~/underscore/modules/_baseCreate.js","webpack:///./~/underscore/modules/_baseIteratee.js","webpack:///./~/underscore/modules/_chainResult.js","webpack:///./~/underscore/modules/_collectNonEnumProps.js","webpack:///./~/underscore/modules/_createEscaper.js","webpack:///./~/underscore/modules/_createIndexFinder.js","webpack:///./~/underscore/modules/_createPredicateIndexFinder.js","webpack:///./~/underscore/modules/_createReduce.js","webpack:///./~/underscore/modules/_createSizePropertyCheck.js","webpack:///./~/underscore/modules/_escapeMap.js","webpack:///./~/underscore/modules/_executeBound.js","webpack:///./~/underscore/modules/_shallowProperty.js","webpack:///./~/underscore/modules/before.js","webpack:///./~/underscore/modules/bind.js","webpack:///./~/underscore/modules/clone.js","webpack:///./~/underscore/modules/constant.js","webpack:///./~/underscore/modules/defaults.js","webpack:///./~/underscore/modules/delay.js","webpack:///./~/underscore/modules/difference.js","webpack:///./~/underscore/modules/extend.js","webpack:///./~/underscore/modules/find.js","webpack:///./~/underscore/modules/findKey.js","webpack:///./~/underscore/modules/findLastIndex.js","webpack:///./~/underscore/modules/functions.js","webpack:///./~/underscore/modules/get.js","webpack:///./~/underscore/modules/indexOf.js","webpack:///./~/underscore/modules/initial.js","webpack:///./~/underscore/modules/invert.js","webpack:///./~/underscore/modules/isArrayBuffer.js","webpack:///./~/underscore/modules/isBoolean.js","webpack:///./~/underscore/modules/isMatch.js","webpack:///./~/underscore/modules/isNaN.js","webpack:///./~/underscore/modules/isNumber.js","webpack:///./~/underscore/modules/isSymbol.js","webpack:///./~/underscore/modules/isTypedArray.js","webpack:///./~/underscore/modules/isUndefined.js","webpack:///./~/underscore/modules/iteratee.js","webpack:///./~/underscore/modules/max.js","webpack:///./~/underscore/modules/noop.js","webpack:///./~/underscore/modules/pick.js","webpack:///./~/underscore/modules/random.js","webpack:///./~/underscore/modules/rest.js","webpack:///./~/underscore/modules/sample.js","webpack:///./~/underscore/modules/sortedIndex.js","webpack:///./~/underscore/modules/templateSettings.js","webpack:///./~/underscore/modules/toPath.js","webpack:///./~/underscore/modules/uniq.js","webpack:///./~/underscore/modules/unzip.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///app/parent/index.jsx","webpack:///./~/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./~/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./~/axios/lib/axios.js","webpack:///./~/axios/lib/cancel/CancelToken.js","webpack:///./~/axios/lib/core/Axios.js","webpack:///./~/axios/lib/core/InterceptorManager.js","webpack:///./~/axios/lib/core/dispatchRequest.js","webpack:///./~/axios/lib/core/enhanceError.js","webpack:///./~/axios/lib/core/settle.js","webpack:///./~/axios/lib/core/transformData.js","webpack:///./~/axios/lib/helpers/btoa.js","webpack:///./~/axios/lib/helpers/buildURL.js","webpack:///./~/axios/lib/helpers/combineURLs.js","webpack:///./~/axios/lib/helpers/cookies.js","webpack:///./~/axios/lib/helpers/isAbsoluteURL.js","webpack:///./~/axios/lib/helpers/isURLSameOrigin.js","webpack:///./~/axios/lib/helpers/normalizeHeaderName.js","webpack:///./~/axios/lib/helpers/parseHeaders.js","webpack:///./~/axios/lib/helpers/spread.js","webpack:///app/common/actions/ReportAction.js","webpack:///app/common/actions/TestAction.js","webpack:///app/common/components/AboutComponents/AboutUs.jsx","webpack:///app/common/components/AboutComponents/CancelAccount.jsx","webpack:///app/common/components/AboutComponents/ChangeNotes.jsx","webpack:///app/common/components/AboutComponents/Contents/AboutUsContents.jsx","webpack:///app/common/components/AboutComponents/Contents/CancelAccountContents.jsx","webpack:///app/common/components/AboutComponents/Contents/ChangeNotesContents.jsx","webpack:///app/common/components/AboutComponents/Contents/FAQContents.jsx","webpack:///app/common/components/AboutComponents/Contents/PrivacyPolicyContents.jsx","webpack:///app/common/components/AboutComponents/FAQ.jsx","webpack:///app/common/components/AboutComponents/PrivacyPolicy.jsx","webpack:///app/common/components/AboutComponents/TermsOfUse.jsx","webpack:///app/common/components/AppBanner/AppBanner.jsx","webpack:///app/common/components/Card/Card.jsx","webpack:///app/common/components/Cart/Cart.jsx","webpack:///app/common/components/ExistingAccount/ExistingAccount.jsx","webpack:///app/common/components/FeeCard/FeeCard.jsx","webpack:///app/common/components/FeeInfo/FeeInfo.jsx","webpack:///app/common/components/FocusRover/FocusRover.js","webpack:///app/common/components/MobileLogin/MobileLogin.jsx","webpack:///app/common/components/Modals/ACHValidation/ACHValidation.jsx","webpack:///app/common/components/Modals/AreYouSure/AreYouSure.jsx","webpack:///app/common/components/Modals/CartConfirmation/CartConfirmation.jsx","webpack:///app/common/components/Modals/CheckValidation/CheckValidation.jsx","webpack:///app/common/components/Modals/Confirmation/Confirmation.jsx","webpack:///app/common/components/Modals/CoppaValidation/CoppaValidation.jsx","webpack:///app/common/components/Modals/Deposit/Deposit.jsx","webpack:///app/common/components/Modals/District/District.jsx","webpack:///app/common/components/Modals/MasterOption/MasterOption.jsx","webpack:///app/common/components/Modals/PaymentMethodConfirmation/PaymentMethodConfirmation.jsx","webpack:///app/common/components/Modals/SchPause/SchPause.jsx","webpack:///app/common/components/Modals/SignOut/SignOut.jsx","webpack:///app/common/components/Modals/Warning/Warning.jsx","webpack:///app/common/components/NavLink/NavLink.jsx","webpack:///app/common/components/NewAccount/NewAccount.jsx","webpack:///app/common/components/NewPayment/NewPayment.jsx","webpack:///app/common/components/NotificationDebug/NotificationDebug.jsx","webpack:///app/common/constants/ErrorCodes.js","webpack:///app/common/constants/TestConstants.js","webpack:///app/common/js/ActionableError.js","webpack:///app/common/js/GeneralErrorHandler.js","webpack:///app/common/js/MobileAppData.js","webpack:///app/common/js/PushHandler.js","webpack:///app/common/js/ValidationErrorHandler.js","webpack:///app/common/reducers/AboutReducer.js","webpack:///app/common/reducers/AuthReducer.js","webpack:///app/common/reducers/CartReducer.js","webpack:///app/common/reducers/ErrorReducer.js","webpack:///app/common/reducers/PatronsReducer.js","webpack:///app/common/reducers/RememberReducer.js","webpack:///app/common/reducers/ReportReducer.js","webpack:///app/common/reducers/SubReducer.js","webpack:///app/common/reducers/TransReducer.js","webpack:///app/common/reducers/UserReducer.js","webpack:///app/common/routes/AboutUs/AboutUs.jsx","webpack:///app/common/routes/Accounts/Accounts.jsx","webpack:///app/common/routes/Forgot/Forgot.jsx","webpack:///app/common/routes/Privacy/Privacy.jsx","webpack:///app/common/routes/PublicAboutUs/PublicAboutUs.jsx","webpack:///app/common/routes/Receipts/Receipts.jsx","webpack:///app/common/routes/Register/Register.jsx","webpack:///app/common/routes/Reports/Reports.jsx","webpack:///app/common/routes/Root/Root.jsx","webpack:///app/common/routes/Settings/Settings.jsx","webpack:///app/common/routes/SignedOutSuccess/SignedOutSuccess.jsx","webpack:///app/common/routes/Support/Support.jsx","webpack:///app/common/routes/Terms/Terms.jsx","webpack:///app/parent/components/App/App.jsx","webpack:///app/parent/components/DesktopLogin/DesktopLogin.jsx","webpack:///app/parent/components/MenuAlert/MenuAlert.jsx","webpack:///app/parent/components/Subscriptions/ScheduleSentence.jsx","webpack:///app/parent/components/Subscriptions/SubscriptionAccountItem.jsx","webpack:///app/parent/components/Subscriptions/SubscriptionAccounts.jsx","webpack:///app/parent/components/Subscriptions/SubscriptionCard.jsx","webpack:///app/parent/components/Subscriptions/SubscriptionConfirmation.jsx","webpack:///app/parent/components/Subscriptions/SubscriptionScheduler.jsx","webpack:///app/parent/components/Subscriptions/Subscriptions.jsx","webpack:///app/parent/routes/Dashboard/Dashboard.jsx","webpack:///app/parent/routes/Fees/Fees.jsx","webpack:///app/parent/routes/Login/Login.jsx","webpack:///app/parent/routes/ScheduleDeposit/ScheduleDeposit.jsx","webpack:///./~/babel-polyfill/lib/index.js","webpack:///./~/babel-polyfill/~/regenerator-runtime/runtime.js","webpack:///./~/core-js/fn/regexp/escape.js","webpack:///./~/core-js/modules/_array-species-constructor.js","webpack:///./~/core-js/modules/_date-to-iso-string.js","webpack:///./~/core-js/modules/_date-to-primitive.js","webpack:///./~/core-js/modules/_enum-keys.js","webpack:///./~/core-js/modules/_function-to-string.js","webpack:///./~/core-js/modules/_replacer.js","webpack:///./~/core-js/modules/core.regexp.escape.js","webpack:///./~/core-js/modules/es6.array.copy-within.js","webpack:///./~/core-js/modules/es6.array.every.js","webpack:///./~/core-js/modules/es6.array.fill.js","webpack:///./~/core-js/modules/es6.array.filter.js","webpack:///./~/core-js/modules/es6.array.find-index.js","webpack:///./~/core-js/modules/es6.array.find.js","webpack:///./~/core-js/modules/es6.array.for-each.js","webpack:///./~/core-js/modules/es6.array.from.js","webpack:///./~/core-js/modules/es6.array.index-of.js","webpack:///./~/core-js/modules/es6.array.is-array.js","webpack:///./~/core-js/modules/es6.array.join.js","webpack:///./~/core-js/modules/es6.array.last-index-of.js","webpack:///./~/core-js/modules/es6.array.map.js","webpack:///./~/core-js/modules/es6.array.of.js","webpack:///./~/core-js/modules/es6.array.reduce-right.js","webpack:///./~/core-js/modules/es6.array.reduce.js","webpack:///./~/core-js/modules/es6.array.slice.js","webpack:///./~/core-js/modules/es6.array.some.js","webpack:///./~/core-js/modules/es6.array.sort.js","webpack:///./~/core-js/modules/es6.array.species.js","webpack:///./~/core-js/modules/es6.date.now.js","webpack:///./~/core-js/modules/es6.date.to-iso-string.js","webpack:///./~/core-js/modules/es6.date.to-json.js","webpack:///./~/core-js/modules/es6.date.to-primitive.js","webpack:///./~/core-js/modules/es6.date.to-string.js","webpack:///./~/core-js/modules/es6.function.bind.js","webpack:///./~/core-js/modules/es6.function.has-instance.js","webpack:///./~/core-js/modules/es6.function.name.js","webpack:///./~/core-js/modules/es6.math.acosh.js","webpack:///./~/core-js/modules/es6.math.asinh.js","webpack:///./~/core-js/modules/es6.math.atanh.js","webpack:///./~/core-js/modules/es6.math.cbrt.js","webpack:///./~/core-js/modules/es6.math.clz32.js","webpack:///./~/core-js/modules/es6.math.cosh.js","webpack:///./~/core-js/modules/es6.math.expm1.js","webpack:///./~/core-js/modules/es6.math.fround.js","webpack:///./~/core-js/modules/es6.math.hypot.js","webpack:///./~/core-js/modules/es6.math.imul.js","webpack:///./~/core-js/modules/es6.math.log10.js","webpack:///./~/core-js/modules/es6.math.log1p.js","webpack:///./~/core-js/modules/es6.math.log2.js","webpack:///./~/core-js/modules/es6.math.sign.js","webpack:///./~/core-js/modules/es6.math.sinh.js","webpack:///./~/core-js/modules/es6.math.tanh.js","webpack:///./~/core-js/modules/es6.math.trunc.js","webpack:///./~/core-js/modules/es6.number.constructor.js","webpack:///./~/core-js/modules/es6.number.epsilon.js","webpack:///./~/core-js/modules/es6.number.is-finite.js","webpack:///./~/core-js/modules/es6.number.is-integer.js","webpack:///./~/core-js/modules/es6.number.is-nan.js","webpack:///./~/core-js/modules/es6.number.is-safe-integer.js","webpack:///./~/core-js/modules/es6.number.max-safe-integer.js","webpack:///./~/core-js/modules/es6.number.min-safe-integer.js","webpack:///./~/core-js/modules/es6.number.parse-float.js","webpack:///./~/core-js/modules/es6.number.parse-int.js","webpack:///./~/core-js/modules/es6.number.to-fixed.js","webpack:///./~/core-js/modules/es6.number.to-precision.js","webpack:///./~/core-js/modules/es6.object.assign.js","webpack:///./~/core-js/modules/es6.object.create.js","webpack:///./~/core-js/modules/es6.object.define-properties.js","webpack:///./~/core-js/modules/es6.object.define-property.js","webpack:///./~/core-js/modules/es6.object.freeze.js","webpack:///./~/core-js/modules/es6.object.get-own-property-descriptor.js","webpack:///./~/core-js/modules/es6.object.get-own-property-names.js","webpack:///./~/core-js/modules/es6.object.get-prototype-of.js","webpack:///./~/core-js/modules/es6.object.is-extensible.js","webpack:///./~/core-js/modules/es6.object.is-frozen.js","webpack:///./~/core-js/modules/es6.object.is-sealed.js","webpack:///./~/core-js/modules/es6.object.is.js","webpack:///./~/core-js/modules/es6.object.keys.js","webpack:///./~/core-js/modules/es6.object.prevent-extensions.js","webpack:///./~/core-js/modules/es6.object.seal.js","webpack:///./~/core-js/modules/es6.object.set-prototype-of.js","webpack:///./~/core-js/modules/es6.object.to-string.js","webpack:///./~/core-js/modules/es6.parse-float.js","webpack:///./~/core-js/modules/es6.parse-int.js","webpack:///./~/core-js/modules/es6.promise.js","webpack:///./~/core-js/modules/es6.reflect.apply.js","webpack:///./~/core-js/modules/es6.reflect.construct.js","webpack:///./~/core-js/modules/es6.reflect.define-property.js","webpack:///./~/core-js/modules/es6.reflect.delete-property.js","webpack:///./~/core-js/modules/es6.reflect.enumerate.js","webpack:///./~/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./~/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./~/core-js/modules/es6.reflect.get.js","webpack:///./~/core-js/modules/es6.reflect.has.js","webpack:///./~/core-js/modules/es6.reflect.is-extensible.js","webpack:///./~/core-js/modules/es6.reflect.own-keys.js","webpack:///./~/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./~/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./~/core-js/modules/es6.reflect.set.js","webpack:///./~/core-js/modules/es6.regexp.constructor.js","webpack:///./~/core-js/modules/es6.regexp.match.js","webpack:///./~/core-js/modules/es6.regexp.replace.js","webpack:///./~/core-js/modules/es6.regexp.search.js","webpack:///./~/core-js/modules/es6.regexp.split.js","webpack:///./~/core-js/modules/es6.regexp.to-string.js","webpack:///./~/core-js/modules/es6.string.anchor.js","webpack:///./~/core-js/modules/es6.string.big.js","webpack:///./~/core-js/modules/es6.string.blink.js","webpack:///./~/core-js/modules/es6.string.bold.js","webpack:///./~/core-js/modules/es6.string.code-point-at.js","webpack:///./~/core-js/modules/es6.string.ends-with.js","webpack:///./~/core-js/modules/es6.string.fixed.js","webpack:///./~/core-js/modules/es6.string.fontcolor.js","webpack:///./~/core-js/modules/es6.string.fontsize.js","webpack:///./~/core-js/modules/es6.string.from-code-point.js","webpack:///./~/core-js/modules/es6.string.includes.js","webpack:///./~/core-js/modules/es6.string.italics.js","webpack:///./~/core-js/modules/es6.string.iterator.js","webpack:///./~/core-js/modules/es6.string.link.js","webpack:///./~/core-js/modules/es6.string.raw.js","webpack:///./~/core-js/modules/es6.string.repeat.js","webpack:///./~/core-js/modules/es6.string.small.js","webpack:///./~/core-js/modules/es6.string.starts-with.js","webpack:///./~/core-js/modules/es6.string.strike.js","webpack:///./~/core-js/modules/es6.string.sub.js","webpack:///./~/core-js/modules/es6.string.sup.js","webpack:///./~/core-js/modules/es6.string.trim.js","webpack:///./~/core-js/modules/es6.symbol.js","webpack:///./~/core-js/modules/es6.typed.array-buffer.js","webpack:///./~/core-js/modules/es6.typed.data-view.js","webpack:///./~/core-js/modules/es6.typed.float32-array.js","webpack:///./~/core-js/modules/es6.typed.float64-array.js","webpack:///./~/core-js/modules/es6.typed.int16-array.js","webpack:///./~/core-js/modules/es6.typed.int32-array.js","webpack:///./~/core-js/modules/es6.typed.int8-array.js","webpack:///./~/core-js/modules/es6.typed.uint16-array.js","webpack:///./~/core-js/modules/es6.typed.uint32-array.js","webpack:///./~/core-js/modules/es6.typed.uint8-array.js","webpack:///./~/core-js/modules/es6.typed.uint8-clamped-array.js","webpack:///./~/core-js/modules/es6.weak-set.js","webpack:///./~/core-js/modules/es7.array.flat-map.js","webpack:///./~/core-js/modules/es7.array.flatten.js","webpack:///./~/core-js/modules/es7.array.includes.js","webpack:///./~/core-js/modules/es7.asap.js","webpack:///./~/core-js/modules/es7.error.is-error.js","webpack:///./~/core-js/modules/es7.global.js","webpack:///./~/core-js/modules/es7.map.from.js","webpack:///./~/core-js/modules/es7.map.of.js","webpack:///./~/core-js/modules/es7.map.to-json.js","webpack:///./~/core-js/modules/es7.math.clamp.js","webpack:///./~/core-js/modules/es7.math.deg-per-rad.js","webpack:///./~/core-js/modules/es7.math.degrees.js","webpack:///./~/core-js/modules/es7.math.fscale.js","webpack:///./~/core-js/modules/es7.math.iaddh.js","webpack:///./~/core-js/modules/es7.math.imulh.js","webpack:///./~/core-js/modules/es7.math.isubh.js","webpack:///./~/core-js/modules/es7.math.rad-per-deg.js","webpack:///./~/core-js/modules/es7.math.radians.js","webpack:///./~/core-js/modules/es7.math.scale.js","webpack:///./~/core-js/modules/es7.math.signbit.js","webpack:///./~/core-js/modules/es7.math.umulh.js","webpack:///./~/core-js/modules/es7.object.define-getter.js","webpack:///./~/core-js/modules/es7.object.define-setter.js","webpack:///./~/core-js/modules/es7.object.entries.js","webpack:///./~/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./~/core-js/modules/es7.object.lookup-getter.js","webpack:///./~/core-js/modules/es7.object.lookup-setter.js","webpack:///./~/core-js/modules/es7.object.values.js","webpack:///./~/core-js/modules/es7.observable.js","webpack:///./~/core-js/modules/es7.promise.finally.js","webpack:///./~/core-js/modules/es7.promise.try.js","webpack:///./~/core-js/modules/es7.reflect.define-metadata.js","webpack:///./~/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./~/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./~/core-js/modules/es7.reflect.get-metadata.js","webpack:///./~/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./~/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./~/core-js/modules/es7.reflect.has-metadata.js","webpack:///./~/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./~/core-js/modules/es7.reflect.metadata.js","webpack:///./~/core-js/modules/es7.set.from.js","webpack:///./~/core-js/modules/es7.set.of.js","webpack:///./~/core-js/modules/es7.set.to-json.js","webpack:///./~/core-js/modules/es7.string.at.js","webpack:///./~/core-js/modules/es7.string.match-all.js","webpack:///./~/core-js/modules/es7.string.pad-end.js","webpack:///./~/core-js/modules/es7.string.pad-start.js","webpack:///./~/core-js/modules/es7.string.trim-left.js","webpack:///./~/core-js/modules/es7.string.trim-right.js","webpack:///./~/core-js/modules/es7.symbol.async-iterator.js","webpack:///./~/core-js/modules/es7.symbol.observable.js","webpack:///./~/core-js/modules/es7.system.global.js","webpack:///./~/core-js/modules/es7.weak-map.from.js","webpack:///./~/core-js/modules/es7.weak-map.of.js","webpack:///./~/core-js/modules/es7.weak-set.from.js","webpack:///./~/core-js/modules/es7.weak-set.of.js","webpack:///./~/core-js/modules/web.dom.iterable.js","webpack:///./~/core-js/modules/web.immediate.js","webpack:///./~/core-js/modules/web.timers.js","webpack:///./~/core-js/shim.js","webpack:///./~/crypto-js/aes.js","webpack:///./~/crypto-js/enc-utf16.js","webpack:///./~/crypto-js/format-hex.js","webpack:///./~/crypto-js/index.js","webpack:///./~/crypto-js/lib-typedarrays.js","webpack:///./~/crypto-js/mode-cfb.js","webpack:///./~/crypto-js/mode-ctr-gladman.js","webpack:///./~/crypto-js/mode-ctr.js","webpack:///./~/crypto-js/mode-ecb.js","webpack:///./~/crypto-js/mode-ofb.js","webpack:///./~/crypto-js/pad-ansix923.js","webpack:///./~/crypto-js/pad-iso10126.js","webpack:///./~/crypto-js/pad-iso97971.js","webpack:///./~/crypto-js/pad-nopadding.js","webpack:///./~/crypto-js/pad-zeropadding.js","webpack:///./~/crypto-js/pbkdf2.js","webpack:///./~/crypto-js/rabbit-legacy.js","webpack:///./~/crypto-js/rabbit.js","webpack:///./~/crypto-js/rc4.js","webpack:///./~/crypto-js/ripemd160.js","webpack:///./~/crypto-js/sha224.js","webpack:///./~/crypto-js/sha3.js","webpack:///./~/crypto-js/sha384.js","webpack:///./~/crypto-js/tripledes.js","webpack:///./~/d/index.js","webpack:///./~/deep-diff/index.js","webpack:///./~/es5-ext/function/noop.js","webpack:///./~/es5-ext/object/assign/index.js","webpack:///./~/es5-ext/object/assign/is-implemented.js","webpack:///./~/es5-ext/object/assign/shim.js","webpack:///./~/es5-ext/object/keys/index.js","webpack:///./~/es5-ext/object/keys/is-implemented.js","webpack:///./~/es5-ext/object/keys/shim.js","webpack:///./~/es5-ext/object/normalize-options.js","webpack:///./~/es5-ext/object/valid-callable.js","webpack:///./~/es5-ext/object/valid-value.js","webpack:///./~/es5-ext/string/#/contains/index.js","webpack:///./~/es5-ext/string/#/contains/is-implemented.js","webpack:///./~/es5-ext/string/#/contains/shim.js","webpack:///./~/event-emitter/index.js","webpack:///./app/common/components/AboutComponents/AboutComponents.scss","webpack:///./app/common/components/AccountInfo/AccountInfo.scss","webpack:///./app/common/components/AddStudent/AddStudent.scss","webpack:///./app/common/components/Alert/Alert.scss","webpack:///./app/common/components/AppBanner/AppBanner.scss","webpack:///./app/common/components/Card/Card.scss","webpack:///./app/common/components/Cart/Cart.scss","webpack:///./app/common/components/ExistingAccount/ExistingAccount.scss","webpack:///./app/common/components/ExistingPayment/ExistingPayment.scss","webpack:///./app/common/components/FeeCard/FeeCard.scss","webpack:///./app/common/components/FeeInfo/FeeInfo.scss","webpack:///./app/common/components/ForgotPassword/ForgotPassword.scss","webpack:///./app/common/components/ForgotUsername/ForgotUsername.scss","webpack:///./app/common/components/Header/Header.scss","webpack:///./app/common/components/LeftCol/LeftCol.scss","webpack:///./app/common/components/Loader/Loader.scss","webpack:///./app/common/components/MobileLogin/MobileLogin.scss","webpack:///./app/common/components/Modals/ACHValidation/ACHValidation.scss","webpack:///./app/common/components/Modals/AreYouSure/AreYouSure.scss","webpack:///./app/common/components/Modals/CheckValidation/CheckValidation.scss","webpack:///./app/common/components/Modals/Confirmation/Confirmation.scss","webpack:///./app/common/components/Modals/CoppaValidation/CoppaValidation.scss","webpack:///./app/common/components/Modals/Deposit/Deposit.scss","webpack:///./app/common/components/Modals/District/District.scss","webpack:///./app/common/components/Modals/Error/Error.scss","webpack:///./app/common/components/Modals/MasterOption/MasterOption.scss","webpack:///./app/common/components/Modals/Modal/Modal.scss","webpack:///./app/common/components/Modals/Reauth/Reauth.scss","webpack:///./app/common/components/Modals/SchPause/SchPause.scss","webpack:///./app/common/components/Modals/Warning/Warning.scss","webpack:///./app/common/components/NavLink/NavLink.scss","webpack:///./app/common/components/NewPayment/NewPayment.scss","webpack:///./app/common/components/PaymentInfo/PaymentInfo.scss","webpack:///./app/common/components/Receipt/Receipt.scss","webpack:///./app/common/components/RightCol/RightCol.scss","webpack:///./app/common/components/SinglePage/SinglePage.scss","webpack:///./app/common/components/StudentInfo/StudentInfo.scss","webpack:///./app/common/components/SubSetting/SubSetting.scss","webpack:///./app/common/components/ToggleLoader/ToggleLoader.scss","webpack:///./app/common/components/Toggle/Toggle.scss","webpack:///./app/common/components/ToolTip/ToolTip.scss","webpack:///./app/common/components/UserInfo/UserInfo.scss","webpack:///./app/common/routes/Accounts/Accounts.scss","webpack:///./app/common/routes/Forgot/Forgot.scss","webpack:///./app/common/routes/PublicAboutUs/PublicAboutUS.scss","webpack:///./app/common/routes/Receipts/Receipts.scss","webpack:///./app/common/routes/Register/Register.scss","webpack:///./app/common/routes/Reports/Reports.scss","webpack:///./app/common/routes/Settings/Settings.scss","webpack:///./app/common/routes/SignedOutSuccess/SignedOutSuccess.scss","webpack:///./app/common/routes/Support/Support.scss","webpack:///./app/common/routes/Terms/Terms.scss","webpack:///./app/common/scss/animations.scss","webpack:///./app/common/scss/index.scss","webpack:///./app/common/scss/text-scale.scss","webpack:///./app/common/scss/themes.scss","webpack:///./app/parent/components/App/App.scss","webpack:///./app/parent/components/DesktopLogin/DesktopLogin.scss","webpack:///./app/parent/components/MenuAlert/MenuAlert.scss","webpack:///./app/parent/components/Subscriptions/Subscriptions_alpha.scss","webpack:///./app/parent/routes/Dashboard/Dashboard.scss","webpack:///./app/parent/routes/Fees/Fees.scss","webpack:///./app/parent/routes/Login/Login.scss","webpack:///./app/parent/routes/ScheduleDeposit/ScheduleDeposit.scss","webpack:///./~/fbjs/lib/camelize.js","webpack:///./~/fbjs/lib/camelizeStyleName.js","webpack:///./~/fbjs/lib/containsNode.js","webpack:///./~/fbjs/lib/createArrayFromMixed.js","webpack:///./~/fbjs/lib/createNodesFromMarkup.js","webpack:///./~/fbjs/lib/getMarkupWrap.js","webpack:///./~/fbjs/lib/getUnboundedScrollPosition.js","webpack:///./~/fbjs/lib/hyphenate.js","webpack:///./~/fbjs/lib/hyphenateStyleName.js","webpack:///./~/fbjs/lib/isNode.js","webpack:///./~/fbjs/lib/isTextNode.js","webpack:///./~/fbjs/lib/memoizeStringOnly.js","webpack:///./~/focus-trap/index.js","webpack:///./~/history/lib/AsyncUtils.js","webpack:///./~/history/lib/HashProtocol.js","webpack:///./~/history/lib/RefreshProtocol.js","webpack:///./~/history/lib/index.js","webpack:///./~/history/lib/useBeforeUnload.js","webpack:///./~/is-plain-object/index.js","webpack:///./~/is-retry-allowed/index.js","webpack:///./~/isobject/index.js","webpack:///./app/common/components/Modals/CoppaValidation/months.json","webpack:///./app/common/constants/ActionableErrors.json","webpack:///./app/common/constants/ChangeNotes.json","webpack:///./app/common/constants/States.json","webpack:///./~/json-stringify-safe/stringify.js","webpack:///./~/lodash-es/_baseGetTag.js","webpack:///./~/lodash-es/_freeGlobal.js","webpack:///./~/lodash-es/_getPrototype.js","webpack:///./~/lodash-es/_getRawTag.js","webpack:///./~/lodash-es/_objectToString.js","webpack:///./~/lodash-es/_overArg.js","webpack:///./~/lodash-es/_root.js","webpack:///./~/lodash-es/isObjectLike.js","webpack:///./~/prop-types/checkPropTypes.js","webpack:///./~/prop-types/factory.js","webpack:///./~/prop-types/factoryWithThrowingShims.js","webpack:///./~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/prop-types/lib/has.js","webpack:///./~/query-string/index.js","webpack:///./~/react-animate-on-change/dist/index.js","webpack:///./~/react-autosuggest/dist/Autosuggest.js","webpack:///./~/react-autosuggest/dist/AutosuggestContainer.js","webpack:///./~/react-autosuggest/dist/index.js","webpack:///./~/react-autowhatever/dist/Autowhatever.js","webpack:///./~/react-autowhatever/dist/Item.js","webpack:///./~/react-autowhatever/dist/ItemsList.js","webpack:///./~/react-autowhatever/dist/SectionTitle.js","webpack:///./~/react-autowhatever/dist/index.js","webpack:///./~/react-dom/index.js","webpack:///./~/react-dom/lib/ARIADOMPropertyConfig.js","webpack:///./~/react-dom/lib/AutoFocusUtils.js","webpack:///./~/react-dom/lib/BeforeInputEventPlugin.js","webpack:///./~/react-dom/lib/CSSPropertyOperations.js","webpack:///./~/react-dom/lib/ChangeEventPlugin.js","webpack:///./~/react-dom/lib/Danger.js","webpack:///./~/react-dom/lib/DefaultEventPluginOrder.js","webpack:///./~/react-dom/lib/EnterLeaveEventPlugin.js","webpack:///./~/react-dom/lib/FallbackCompositionState.js","webpack:///./~/react-dom/lib/HTMLDOMPropertyConfig.js","webpack:///./~/react-dom/lib/ReactChildReconciler.js","webpack:///./~/react-dom/lib/ReactComponentBrowserEnvironment.js","webpack:///./~/react-dom/lib/ReactCompositeComponent.js","webpack:///./~/react-dom/lib/ReactDOM.js","webpack:///./~/react-dom/lib/ReactDOMComponent.js","webpack:///./~/react-dom/lib/ReactDOMContainerInfo.js","webpack:///./~/react-dom/lib/ReactDOMEmptyComponent.js","webpack:///./~/react-dom/lib/ReactDOMFeatureFlags.js","webpack:///./~/react-dom/lib/ReactDOMIDOperations.js","webpack:///./~/react-dom/lib/ReactDOMInput.js","webpack:///./~/react-dom/lib/ReactDOMOption.js","webpack:///./~/react-dom/lib/ReactDOMSelection.js","webpack:///./~/react-dom/lib/ReactDOMTextComponent.js","webpack:///./~/react-dom/lib/ReactDOMTextarea.js","webpack:///./~/react-dom/lib/ReactDOMTreeTraversal.js","webpack:///./~/react-dom/lib/ReactDefaultBatchingStrategy.js","webpack:///./~/react-dom/lib/ReactDefaultInjection.js","webpack:///./~/react-dom/lib/ReactElementSymbol.js","webpack:///./~/react-dom/lib/ReactEventEmitterMixin.js","webpack:///./~/react-dom/lib/ReactEventListener.js","webpack:///./~/react-dom/lib/ReactInjection.js","webpack:///./~/react-dom/lib/ReactMarkupChecksum.js","webpack:///./~/react-dom/lib/ReactMultiChild.js","webpack:///./~/react-dom/lib/ReactOwner.js","webpack:///./~/react-dom/lib/ReactPropTypesSecret.js","webpack:///./~/react-dom/lib/ReactReconcileTransaction.js","webpack:///./~/react-dom/lib/ReactRef.js","webpack:///./~/react-dom/lib/ReactServerRenderingTransaction.js","webpack:///./~/react-dom/lib/ReactServerUpdateQueue.js","webpack:///./~/react-dom/lib/ReactVersion.js","webpack:///./~/react-dom/lib/SVGDOMPropertyConfig.js","webpack:///./~/react-dom/lib/SelectEventPlugin.js","webpack:///./~/react-dom/lib/SimpleEventPlugin.js","webpack:///./~/react-dom/lib/SyntheticAnimationEvent.js","webpack:///./~/react-dom/lib/SyntheticClipboardEvent.js","webpack:///./~/react-dom/lib/SyntheticCompositionEvent.js","webpack:///./~/react-dom/lib/SyntheticDragEvent.js","webpack:///./~/react-dom/lib/SyntheticFocusEvent.js","webpack:///./~/react-dom/lib/SyntheticInputEvent.js","webpack:///./~/react-dom/lib/SyntheticKeyboardEvent.js","webpack:///./~/react-dom/lib/SyntheticTouchEvent.js","webpack:///./~/react-dom/lib/SyntheticTransitionEvent.js","webpack:///./~/react-dom/lib/SyntheticWheelEvent.js","webpack:///./~/react-dom/lib/adler32.js","webpack:///./~/react-dom/lib/dangerousStyleValue.js","webpack:///./~/react-dom/lib/findDOMNode.js","webpack:///./~/react-dom/lib/flattenChildren.js","webpack:///./~/react-dom/lib/getEventKey.js","webpack:///./~/react-dom/lib/getIteratorFn.js","webpack:///./~/react-dom/lib/getNodeForCharacterOffset.js","webpack:///./~/react-dom/lib/getVendorPrefixedEventName.js","webpack:///./~/react-dom/lib/quoteAttributeValueForBrowser.js","webpack:///./~/react-dom/lib/renderSubtreeIntoContainer.js","webpack:///./~/react-dom/~/prop-types/checkPropTypes.js","webpack:///./~/react-dom/~/prop-types/factory.js","webpack:///./~/react-dom/~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/react-dom/~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/react-ga4/dist/format.js","webpack:///./~/react-ga4/dist/ga4.js","webpack:///./~/react-ga4/dist/gtag.js","webpack:///./~/react-ga4/dist/index.js","webpack:///./~/react-is/cjs/react-is.production.min.js","webpack:///./~/react-pullrefresh/lib/component/index.js","webpack:///./~/react-pullrefresh/lib/index.js","webpack:///./~/react-pullrefresh/lib/spring.js","webpack:///./~/react-redux/es/components/Provider.js","webpack:///./~/react-redux/es/connect/connect.js","webpack:///./~/react-redux/es/connect/mapDispatchToProps.js","webpack:///./~/react-redux/es/connect/mapStateToProps.js","webpack:///./~/react-redux/es/connect/mergeProps.js","webpack:///./~/react-redux/es/connect/selectorFactory.js","webpack:///./~/react-redux/es/connect/verifySubselectors.js","webpack:///./~/react-redux/es/utils/Subscription.js","webpack:///./~/react-redux/es/utils/isPlainObject.js","webpack:///./~/react-redux/es/utils/shallowEqual.js","webpack:///./~/react-router/es/IndexLink.js","webpack:///./~/react-router/es/IndexRedirect.js","webpack:///./~/react-router/es/IndexRoute.js","webpack:///./~/react-router/es/Route.js","webpack:///./~/react-router/es/Router.js","webpack:///./~/react-router/es/TransitionUtils.js","webpack:///./~/react-router/es/applyRouterMiddleware.js","webpack:///./~/react-router/es/browserHistory.js","webpack:///./~/react-router/es/computeChangedRoutes.js","webpack:///./~/react-router/es/getComponents.js","webpack:///./~/react-router/es/getRouteParams.js","webpack:///./~/react-router/es/hashHistory.js","webpack:///./~/react-router/es/isActive.js","webpack:///./~/react-router/es/match.js","webpack:///./~/react-router/es/matchRoutes.js","webpack:///./~/react-router/es/withRouter.js","webpack:///./~/react-swipeable/lib/Swipeable.js","webpack:///./~/react-themeable/dist/index.js","webpack:///./~/react-themeable/~/object-assign/index.js","webpack:///./~/react/lib/KeyEscapeUtils.js","webpack:///./~/react/lib/PooledClass.js","webpack:///./~/react/lib/ReactChildren.js","webpack:///./~/react/lib/ReactDOMFactories.js","webpack:///./~/react/lib/ReactPropTypes.js","webpack:///./~/react/lib/ReactVersion.js","webpack:///./~/react/lib/createClass.js","webpack:///./~/react/lib/getIteratorFn.js","webpack:///./~/react/lib/getNextDebugID.js","webpack:///./~/react/lib/lowPriorityWarning.js","webpack:///./~/react/lib/onlyChild.js","webpack:///./~/react/lib/traverseAllChildren.js","webpack:///./~/redux-logger/lib/core.js","webpack:///./~/redux-logger/lib/defaults.js","webpack:///./~/redux-logger/lib/diff.js","webpack:///./~/redux-logger/lib/index.js","webpack:///./~/redux-persist/es/autoRehydrate.js","webpack:///./~/redux-persist/es/createTransform.js","webpack:///./~/redux-persist/es/index.js","webpack:///./~/redux-persist/es/persistStore.js","webpack:///./~/redux-persist/es/utils/isStatePlainEnough.js","webpack:///./~/redux-thunk/es/index.js","webpack:///./~/redux/es/applyMiddleware.js","webpack:///./~/redux/es/bindActionCreators.js","webpack:///./~/redux/es/combineReducers.js","webpack:///./~/section-iterator/dist/index.js","webpack:///./~/shallow-equal/arrays/index.js","webpack:///./~/strict-uri-encode/index.js","webpack:///./~/styled-components/dist/styled-components.es.js","webpack:///./~/styled-components/~/hoist-non-react-statics/index.js","webpack:///./~/stylis/stylis.js","webpack:///./~/symbol-observable/es/index.js","webpack:///./~/symbol-observable/es/ponyfill.js","webpack:///./~/tabbable/index.js","webpack:///./~/type/function/is.js","webpack:///./~/type/object/is.js","webpack:///./~/type/plain-function/is.js","webpack:///./~/type/prototype/is.js","webpack:///./~/underscore/modules/_hasObjectTag.js","webpack:///./~/underscore/modules/_isBufferLike.js","webpack:///./~/underscore/modules/_keyInObj.js","webpack:///./~/underscore/modules/_toBufferView.js","webpack:///./~/underscore/modules/_unescapeMap.js","webpack:///./~/underscore/modules/after.js","webpack:///./~/underscore/modules/bindAll.js","webpack:///./~/underscore/modules/chain.js","webpack:///./~/underscore/modules/chunk.js","webpack:///./~/underscore/modules/compact.js","webpack:///./~/underscore/modules/compose.js","webpack:///./~/underscore/modules/countBy.js","webpack:///./~/underscore/modules/create.js","webpack:///./~/underscore/modules/debounce.js","webpack:///./~/underscore/modules/defer.js","webpack:///./~/underscore/modules/escape.js","webpack:///./~/underscore/modules/every.js","webpack:///./~/underscore/modules/findWhere.js","webpack:///./~/underscore/modules/first.js","webpack:///./~/underscore/modules/flatten.js","webpack:///./~/underscore/modules/groupBy.js","webpack:///./~/underscore/modules/has.js","webpack:///./~/underscore/modules/index-default.js","webpack:///./~/underscore/modules/indexBy.js","webpack:///./~/underscore/modules/intersection.js","webpack:///./~/underscore/modules/invoke.js","webpack:///./~/underscore/modules/isDate.js","webpack:///./~/underscore/modules/isElement.js","webpack:///./~/underscore/modules/isEmpty.js","webpack:///./~/underscore/modules/isEqual.js","webpack:///./~/underscore/modules/isError.js","webpack:///./~/underscore/modules/isFinite.js","webpack:///./~/underscore/modules/isMap.js","webpack:///./~/underscore/modules/isNull.js","webpack:///./~/underscore/modules/isRegExp.js","webpack:///./~/underscore/modules/isSet.js","webpack:///./~/underscore/modules/isWeakMap.js","webpack:///./~/underscore/modules/isWeakSet.js","webpack:///./~/underscore/modules/last.js","webpack:///./~/underscore/modules/lastIndexOf.js","webpack:///./~/underscore/modules/mapObject.js","webpack:///./~/underscore/modules/memoize.js","webpack:///./~/underscore/modules/min.js","webpack:///./~/underscore/modules/mixin.js","webpack:///./~/underscore/modules/object.js","webpack:///./~/underscore/modules/omit.js","webpack:///./~/underscore/modules/once.js","webpack:///./~/underscore/modules/pairs.js","webpack:///./~/underscore/modules/partition.js","webpack:///./~/underscore/modules/propertyOf.js","webpack:///./~/underscore/modules/range.js","webpack:///./~/underscore/modules/reduce.js","webpack:///./~/underscore/modules/reduceRight.js","webpack:///./~/underscore/modules/reject.js","webpack:///./~/underscore/modules/result.js","webpack:///./~/underscore/modules/shuffle.js","webpack:///./~/underscore/modules/size.js","webpack:///./~/underscore/modules/some.js","webpack:///./~/underscore/modules/sortBy.js","webpack:///./~/underscore/modules/tap.js","webpack:///./~/underscore/modules/template.js","webpack:///./~/underscore/modules/throttle.js","webpack:///./~/underscore/modules/times.js","webpack:///./~/underscore/modules/toArray.js","webpack:///./~/underscore/modules/underscore-array-methods.js","webpack:///./~/underscore/modules/unescape.js","webpack:///./~/underscore/modules/union.js","webpack:///./~/underscore/modules/uniqueId.js","webpack:///./~/underscore/modules/where.js","webpack:///./~/underscore/modules/without.js","webpack:///./~/underscore/modules/wrap.js","webpack:///./~/underscore/modules/zip.js","webpack:///./~/uuid/lib/bytesToUuid.js","webpack:///./~/uuid/lib/rng-browser.js","webpack:///./~/uuid/v4.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1115);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap dbada6f6c3eb1457f973","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_export.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nmodule.exports = require('./lib/React');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/react.js\n// module id = 1\n// module chunks = 0","/**\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 2\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-object.js\n// module id = 3\n// module chunks = 0","import Provider, { createProvider } from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport connect from './connect/connect';\nexport { Provider, createProvider, connectAdvanced, connect };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/index.js\n// module id = 4\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/invariant.js\n// module id = 5\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_global.js\n// module id = 6\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\t /*\n\t * Local polyfil of Object.create\n\t */\n\t var create = Object.create || (function () {\n\t function F() {};\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }())\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var i = 0; i < thatSigBytes; i += 4) {\n\t thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t var r = (function (m_w) {\n\t var m_w = m_w;\n\t var m_z = 0x3ade68b1;\n\t var mask = 0xffffffff;\n\n\t return function () {\n\t m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask;\n\t m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask;\n\t var result = ((m_z << 0x10) + m_w) & mask;\n\t result /= 0x100000000;\n\t result += 0.5;\n\t return result * (Math.random() > .5 ? 1 : -1);\n\t }\n\t });\n\n\t for (var i = 0, rcache; i < nBytes; i += 4) {\n\t var _r = r((rcache || Math.random()) * 0x100000000);\n\n\t rcache = _r() * 0x3ade67b7;\n\t words.push((_r() * 0x100000000) | 0);\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t var processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/core.js\n// module id = 7\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fails.js\n// module id = 8\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-object.js\n// module id = 9\n// module chunks = 0","/**\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\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\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 warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + 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 warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/warning.js\n// module id = 10\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/reactProdInvariant.js\n// module id = 11\n// module chunks = 0","/* components */\nimport _Router from './Router';\nexport { _Router as Router };\nimport _Link from './Link';\nexport { _Link as Link };\nimport _IndexLink from './IndexLink';\nexport { _IndexLink as IndexLink };\nimport _withRouter from './withRouter';\nexport { _withRouter as withRouter };\n\n/* components (configuration) */\n\nimport _IndexRedirect from './IndexRedirect';\nexport { _IndexRedirect as IndexRedirect };\nimport _IndexRoute from './IndexRoute';\nexport { _IndexRoute as IndexRoute };\nimport _Redirect from './Redirect';\nexport { _Redirect as Redirect };\nimport _Route from './Route';\nexport { _Route as Route };\n\n/* utils */\n\nexport { createRoutes } from './RouteUtils';\nimport _RouterContext from './RouterContext';\nexport { _RouterContext as RouterContext };\n\nexport { locationShape, routerShape } from './PropTypes';\nimport _match from './match';\nexport { _match as match };\nimport _useRouterHistory from './useRouterHistory';\nexport { _useRouterHistory as useRouterHistory };\n\nexport { formatPattern } from './PatternUtils';\nimport _applyRouterMiddleware from './applyRouterMiddleware';\nexport { _applyRouterMiddleware as applyRouterMiddleware };\n\n/* histories */\n\nimport _browserHistory from './browserHistory';\nexport { _browserHistory as browserHistory };\nimport _hashHistory from './hashHistory';\nexport { _hashHistory as hashHistory };\nimport _createMemoryHistory from './createMemoryHistory';\nexport { _createMemoryHistory as createMemoryHistory };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/index.js\n// module id = 12\n// module chunks = 0","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks.js\n// module id = 13\n// module chunks = 0","import React from 'react';\r\n\r\nimport './Loader.scss';\r\n\r\nclass Loader extends React.Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Loader;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Loader/Loader.jsx","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-length.js\n// module id = 15\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/object-assign/index.js\n// module id = 16\n// module chunks = 0","// Current version.\nexport var VERSION = '1.13.1';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_setup.js\n// module id = 17\n// module chunks = 0","import * as types from '../constants/ErrorConstants.js';\r\n\r\nexport function generalError(error, dispatch) {\r\n return {\r\n type: types.GENERAL_ERROR,\r\n payload: {\r\n error: error,\r\n dispatch: dispatch\r\n }\r\n };\r\n}\r\n\r\nexport function validationError(errors) {\r\n return {\r\n type: types.VALIDATION_ERROR,\r\n payload: errors\r\n };\r\n}\r\n\r\nexport function clearValidationErrors() {\r\n return {\r\n type: types.REMOVE_VAL_ERROR\r\n };\r\n}\r\n\r\nexport function clearSpecificValidation(type) {\r\n return {\r\n type: types.CLEAR_SPECIFIC_VAL,\r\n payload: type\r\n };\r\n}\r\n\r\nexport function clearGeneralError() {\r\n return {\r\n type: types.REMOVE_GEN_ERROR\r\n };\r\n}\r\n\r\nexport function clearAllErrors() {\r\n return {\r\n type: types.CLEAR_ERRORS\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/actions/ErrorAction.js","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_descriptors.js\n// module id = 19\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dp.js\n// module id = 20\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-object.js\n// module id = 21\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Check if a given node should be cached.\n */\nfunction shouldPrecacheNode(node, nodeID) {\n return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' ';\n}\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n var rendered;\n while (rendered = component._renderedComponent) {\n component = rendered;\n }\n return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n var hostInst = getRenderedHostOrTextFromComponent(inst);\n hostInst._hostNode = node;\n node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n var node = inst._hostNode;\n if (node) {\n delete node[internalInstanceKey];\n inst._hostNode = null;\n }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n if (inst._flags & Flags.hasCachedChildNodes) {\n return;\n }\n var children = inst._renderedChildren;\n var childNode = node.firstChild;\n outer: for (var name in children) {\n if (!children.hasOwnProperty(name)) {\n continue;\n }\n var childInst = children[name];\n var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n if (childID === 0) {\n // We're currently unmounting this child in ReactMultiChild; skip it.\n continue;\n }\n // We assume the child nodes are in the same order as the child instances.\n for (; childNode !== null; childNode = childNode.nextSibling) {\n if (shouldPrecacheNode(childNode, childID)) {\n precacheNode(childInst, childNode);\n continue outer;\n }\n }\n // We reached the end of the DOM children without finding an ID match.\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n }\n inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest;\n var inst;\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n if (parents.length) {\n precacheChildNodes(inst, node);\n }\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n var inst = getClosestInstanceFromNode(node);\n if (inst != null && inst._hostNode === node) {\n return inst;\n } else {\n return null;\n }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n if (inst._hostNode) {\n return inst._hostNode;\n }\n\n // Walk up the tree until we find an ancestor whose DOM node we have cached.\n var parents = [];\n while (!inst._hostNode) {\n parents.push(inst);\n !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n inst = inst._hostParent;\n }\n\n // Now parents contains each ancestor that does *not* have a cached native\n // node, and `inst` is the deepest ancestor that does.\n for (; parents.length; inst = parents.pop()) {\n precacheChildNodes(inst, inst._hostNode);\n }\n\n return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n getClosestInstanceFromNode: getClosestInstanceFromNode,\n getInstanceFromNode: getInstanceFromNode,\n getNodeFromInstance: getNodeFromInstance,\n precacheChildNodes: precacheChildNodes,\n precacheNode: precacheNode,\n uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMComponentTree.js\n// module id = 22\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t var block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t var block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t var modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t var modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t var wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t var salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/cipher-core.js\n// module id = 23\n// module chunks = 0","module.exports = {\"version\":\"3.0.55.4\",\"buildDate\":\"10/16/2024\",\"env\":\"\"}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/version.json\n// module id = 24\n// module chunks = 0","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/keys.js\n// module id = 25\n// module chunks = 0","import axios from 'axios';\nimport axiosRetry from 'axios-retry';\nimport * as types from '../constants/CartConstants.js';\nimport {version} from '../../version.json';\n\naxiosRetry(axios, {retries: 3, retryCondition: error => {\n if (error.response.status === 500) return true;\n return false;\n}});\n\nconst currentTime = new Date();\n\nlet cartCall = axios.create({\n baseURL: APP_API + 'Deposit/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n});\n\nexport function addToCart(item) {\n GA.event({\n category: 'Cart',\n action: 'Add',\n label: item.type,\n value: item.amount\n });\n return {\n type: types.ADD_CART,\n payload: item\n };\n}\n\nexport function removeFromCart(item) {\n GA.event({\n category: 'Cart',\n action: 'Remove',\n label: item.type,\n value: item.amount\n });\n return {\n type: types.REM_CART,\n payload: item\n };\n}\n\nexport function addMemo(memo) {\n return {\n type: types.ADD_MEMO,\n payload: memo\n };\n}\n\nexport function calculateFee(cartItems) {\n return function(dispatch) {\n cartSetToken();\n dispatch({type: types.CALC_FEE});\n cartCall.post('/CalculateTotalUserFee', {\n depositDetails: _.map(cartItems, Utils.formatCartItem)\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(calculateFeeSuccess(response.data)); \n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(calculateFeeFailure());\n });\n };\n}\n\nfunction calculateFeeSuccess(fee) {\n return {\n type: types.CALC_FEE_SUCCESS,\n payload: fee\n };\n}\n\nfunction calculateFeeFailure() {\n return {\n type: types.CALC_FEE_FAILURE\n };\n}\n\nexport function validateFeeDeposit(item, appRouter, dispatch, memo) {\n return function(dispatch) {\n cartSetToken();\n dispatch({type: types.VALIDATE_DEP_ITEM});\n cartCall.post('/ValidateDuplicatePatronDeposit', {\n checkingAccountID: item.checkingAccountID,\n subAccountID: item.subAccountID,\n patronDeposits: item.patronDeposits\n })\n .then(response => {\n if (response.status === 200) {\n let existingDeps = [];\n\n for(let data of response.data) {\n if(data.depositExists) {\n existingDeps.push(data);\n } else {\n let feeItem = _.findWhere(item.cartItems, {patronID: data.patronID});\n if(feeItem) dispatch(addToCart(feeItem));\n if(!_.isEmpty(memo.body)) dispatch(addMemo(memo));\n }\n }\n\n if(!_.isEmpty(existingDeps)) {\n let msgs = _.pluck(existingDeps, 'warningMessage');\n Utils.updateModal('warning', {\n modalTitle: 'Are You Sure?',\n msg: msgs,\n conTitle: 'Yes, Pay Again',\n cancelTitle: 'No, View Receipts',\n continueHandler: () => {\n for(let dep of existingDeps) {\n let feeItem = _.findWhere(item.cartItems, {patronID: dep.patronID});\n if(feeItem) dispatch(addToCart(feeItem));\n }\n\n if (!_.isEmpty(memo.body)) dispatch(addMemo(memo));\n\n Utils.updateModal('confirm', {\n msg: 'Successfully updated your cart!',\n timeout: 2000,\n styleClass: 'level1'\n });\n },\n cancelHandler: () => {\n appRouter.push('/receipts');\n $('.gen-modal').modal('hide');\n\n document.dispatchEvent(new CustomEvent('rove-focal-point', {\n detail: {\n focalPointID: 'dummy-app-body',\n checkpoint: {id: 'nav-link-viewreceipts'}\n }\n }));\n }\n });\n } else {\n Utils.updateModal('confirm', {\n msg: 'Successfully updated your cart!',\n timeout: 2000,\n styleClass: 'level1'\n });\n }\n dispatch(validatePatronDepositSuccess());\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(validatePatronDepositFailure());\n });\n };\n}\n\nexport function validatePatronDeposit(item, appRouter, dispatch, context) {\n return function(dispatch) {\n cartSetToken();\n dispatch({type: types.VALIDATE_DEP_ITEM});\n cartCall.post('/ValidateDuplicatePatronDeposit', {\n checkingAccountID: item.checkingAccountID,\n subAccountID: item.subAccountID,\n patronDeposits: [{\n patronID: item.patronID,\n depositAmount: item.amount\n }]\n })\n .then(response => {\n if (response.status === 200) {\n for(let data of response.data) {\n if(data.depositExists) {\n Utils.updateModal('warning', {\n modalTitle: 'Are You Sure?',\n msg: [data.warningMessage],\n conTitle: 'Yes, Deposit Again',\n cancelTitle: 'No, View Receipts',\n continueHandler: () => {\n dispatch(addToCart(item));\n if(context === 'Go to Checkout') {\n Utils.updateModal('cart');\n } else {\n $('.gen-modal').modal('hide');\n }\n },\n cancelHandler: () => {\n appRouter.push('/receipts');\n $('.gen-modal').modal('hide');\n\n document.dispatchEvent(new CustomEvent('rove-focal-point', {\n detail: {\n focalPointID: 'dummy-app-body',\n checkpoint: {id: 'nav-link-viewreceipts'}\n }\n }));\n }\n });\n } else {\n dispatch(addToCart(item));\n if(context === 'Go to Checkout') {\n Utils.updateModal('cart');\n } else {\n $('.gen-modal').modal('hide');\n }\n }\n }\n dispatch(validatePatronDepositSuccess());\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(validatePatronDepositFailure());\n });\n };\n}\n\nfunction validatePatronDepositSuccess() {\n return {\n type: types.VALIDATE_DEP_ITEM_SUCCESS\n };\n}\n\nfunction validatePatronDepositFailure() {\n return {\n type: types.VALIDATE_DEP_ITEM_FAILURE\n };\n}\n\nexport function checkout(cartItems, memos, payMethod, appRouter) {\n return function(dispatch) {\n cartSetToken();\n dispatch({type: types.CHECKOUT});\n let depositBody = {\n cartKey: Utils.getCartKey(),\n stripePaymentSourceID: null,\n stripeTokenID: null,\n depositDetails: _.map(cartItems, Utils.formatCartItem),\n depositMemos: _.map(memos, memo => {\n return {\n subAccountID: memo.id,\n body: memo.body\n };\n })\n };\n\n if (payMethod.startsWith('card_')) {\n // Stored card\n depositBody.stripePaymentSourceID = payMethod;\n } else if (payMethod.startsWith('tok_')) {\n // One time use card\n depositBody.stripeTokenID = payMethod;\n } else {\n // Whoops\n return dispatch(checkoutFailure());\n }\n\n cartCall.post('/AddDeposit', depositBody)\n .then(response => {\n if (response.status === 200) {\n dispatch(checkoutSuccess(response.data));\n dispatch(resetCart());\n dispatch(getReceipts());\n dispatch(getFeesPaid());\n Utils.vibrate(250);\n\n Utils.updateModal('confirm-tran', {\n msg: \"Your student's school will receive funds as soon as they synchronize. Your student's Cafeteria Account balance in My MealTime will reflect any new changes when the school confirms receipt of your payment later today.\",\n okTitle: 'View Receipt',\n cancelTitle: 'Dismiss',\n cancelable: true,\n clickHandler: () => {\n appRouter.push('/receipts');\n $('.gen-modal').modal('hide');\n\n document.dispatchEvent(new CustomEvent('rove-focal-point', {\n detail: {\n focalPointID: 'dummy-app-body',\n checkpoint: {id: 'nav-link-viewreceipts'}\n }\n }));\n }\n });\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(checkoutFailure());\n });\n };\n}\n\nexport function checkoutSuccess(message) {\n GA.event({\n category: 'Cart',\n action: 'Checkout'\n });\n if (\"vibrate\" in navigator) {\n navigator.vibrate = navigator.vibrate ||\n navigator.webkitVibrate ||\n navigator.mozVibrate ||\n navigator.msVibrate;\n\n if (navigator.vibrate) {\n navigator.vibrate(500);\n }\n }\n return {\n type: types.CHECKOUT_SUCCESS\n };\n}\n\nexport function checkoutFailure() {\n return {\n type: types.CHECKOUT_FAILURE\n };\n}\n\nexport function updatePayment(method) {\n return {\n type: types.UPDATE_PAYMENT,\n payload: method\n };\n}\n\nexport function getReceipts(resolve) {\n return function(dispatch) {\n cartSetToken();\n dispatch({type: types.REC_FETCH});\n cartCall.post('/GetDepositsByUserToken')\n .then(response => {\n if (response.status === 200) {\n dispatch(getReceiptsSuccess(response.data));\n if (_.isFunction(resolve)) resolve();\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(getReceiptsFailure());\n });\n };\n}\n\nexport function getReceiptsSuccess(receipts) {\n return {\n type: types.REC_FETCH_SUCCESS,\n payload: receipts\n };\n}\n\nexport function getReceiptsFailure() {\n return {\n type: types.REC_FETCH_FAILURE\n };\n}\n\nexport function getFeesPaid() {\n return function(dispatch) {\n cartSetToken();\n dispatch({type: types.GET_FEES_PAID});\n cartCall.post('/GetSchoolFeeDepositDetailsByUserToken')\n .then(response => {\n if (response.status === 200) {\n dispatch(getFeesPaidSuccess(response.data));\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(getFeesPaidFailure());\n });\n };\n}\n\nfunction getFeesPaidSuccess(fees) {\n return {\n type: types.GET_FEES_PAID_SUCCESS,\n payload: fees\n };\n}\n\nfunction getFeesPaidFailure() {\n return {\n type: types.GET_FEES_PAID_FAILURE\n };\n}\n\nexport function resetCart() {\n return {\n type: types.RESET_CART\n };\n}\n\nexport function removeFee(subAccountID) {\n return {\n type: types.REMOVE_FEE,\n payload: subAccountID\n };\n}\n\nexport function cartSetToken(token = Utils.checkForToken()) {\n cartCall.defaults.headers.common['User-Token'] = token;\n return token;\n}\n\n\n\n// WEBPACK FOOTER //\n// app/common/actions/CartAction.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/invariant/browser.js\n// module id = 27\n// module chunks = 0","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_tagTester.js\n// module id = 28\n// module chunks = 0","import axios from 'axios';\r\nimport axiosRetry from 'axios-retry';\r\nimport Utils from '../js/utils.js';\r\nimport * as types from '../constants/AuthConstants.js';\r\nimport {version} from '../../version.json';\r\n\r\nimport {getPatrons, getSchoolFees, getBalanceNotifications} from './PatronsAction.js';\r\nimport {getPaymentMethods} from './TransAction.js';\r\nimport {getReceipts} from './CartAction.js';\r\nimport {getScheduledDeposits} from './SubAction.js';\r\n\r\naxiosRetry(axios, {retries: 3, retryCondition: response => {\r\n if (response.status === 500) return true;\r\n return false;\r\n}});\r\n\r\nconst currentTime = new Date();\r\n\r\nlet authCall = axios.create({\r\n baseURL: APP_API + 'auth/',\r\n headers: {\r\n 'API-Changeset': API_CHANGESET,\r\n 'Version': version,\r\n 'Content-Type': 'application/json',\r\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\r\n }\r\n});\r\n\r\nlet coppaCall = axios.create({\r\n baseURL: APP_API + 'PublicUser/',\r\n headers: {\r\n 'API-Changeset': API_CHANGESET,\r\n 'Version': version,\r\n 'Content-Type': 'application/json',\r\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\r\n }\r\n});\r\n\r\n//TODO: inProgress\r\nexport function validateCoppaDOB(dob, router) {\r\n return function(dispatch) {\r\n dispatch({type: types.COPPA_VALIDATE_DOB});\r\n coppaCall.post('/ValidateCoppaBirthdate', {\r\n coppaBirthdate: dob\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(validateCoppaDOBSuccess({\r\n origBirthdate: dob,\r\n coppaBirthdate: response.data.coppaBirthdate,\r\n isCompliant: true\r\n }, router));\r\n }\r\n })\r\n .catch(function(error) {\r\n dispatch(validateCoppaDOBFailure({\r\n origBirthdate: dob,\r\n coppaBirthdate: undefined,\r\n isCompliant: false,\r\n eventTime: new Date(),\r\n error: error.response.data,\r\n dispatch: dispatch\r\n }));\r\n Utils.dispatchError(error, dispatch);\r\n });\r\n };\r\n}\r\n\r\nfunction validateCoppaDOBSuccess(coppa, router) {\r\n router.push('/register');\r\n return {\r\n type: types.COPPA_VALIDATE_DOB_SUCCESS,\r\n payload: coppa\r\n };\r\n}\r\n\r\nfunction validateCoppaDOBFailure(coppa) {\r\n return {\r\n type: types.COPPA_VALIDATE_DOB_FAILURE,\r\n payload: coppa\r\n };\r\n}\r\n\r\nexport function clearCoppa() {\r\n return {\r\n type: types.COPPA_CLEAR\r\n };\r\n}\r\n\r\nexport function requestSignIn(username, password, birthdate, persist) {\r\n return function(dispatch) {\r\n dispatch({type: types.SIGN_IN_REQUEST});\r\n return authCall.post('/SignInPublicUser', {\r\n username: username,\r\n password: password,\r\n coppaBirthdate: birthdate,\r\n persisted: persist\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n const token = response.data.token;\r\n authSetToken(token);\r\n Utils.setToken(token, persist);\r\n dispatch(signInSuccess({\r\n token: token,\r\n tokenLength: response.data.sessionTimeoutSeconds,\r\n apiInfo: response.headers,\r\n persisted: persist\r\n }));\r\n }\r\n })\r\n .catch(function(error) {\r\n //console.log(error);\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(signInFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function signInSuccess(session) {\r\n return {\r\n type: types.SIGN_IN_SUCCESS,\r\n payload: session\r\n };\r\n}\r\n\r\nexport function signInFailure() {\r\n return {\r\n type: types.SIGN_IN_FAILURE\r\n };\r\n}\r\n\r\nexport function triggerReauthenticate() {\r\n return {\r\n type: types.TRIGGER_REAUTH\r\n };\r\n}\r\n\r\nexport function reauthenticate(username, password) {\r\n return function(dispatch) {\r\n dispatch({type: types.REAUTH});\r\n const persisted = Utils.isPersisted();\r\n return authCall.post('/SignInPublicUser', {\r\n username: username,\r\n password: password,\r\n coppaBirthdate: \"\",\r\n persisted: persisted\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n const token = response.data.token;\r\n authSetToken(token);\r\n Utils.setToken(token, persisted);\r\n dispatch(reauthenticateSuccess(token));\r\n refreshData(dispatch);\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(reauthenticateFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function reauthenticateSuccess(token) {\r\n GA.event({\r\n category: 'Reauthenticate',\r\n action: 'Persist'\r\n });\r\n return {\r\n type: types.REAUTH_SUCCESS,\r\n payload: token\r\n };\r\n}\r\n\r\nexport function reauthenticateFailure() {\r\n return {\r\n type: types.REAUTH_FAILURE\r\n };\r\n}\r\n\r\n// Fee data (and potentially other data) can get stale\r\n// if the user doesn't log out for a bit, so we can refresh\r\n// that data when they reauthenticate.\r\nfunction refreshData(dispatch) {\r\n dispatch(getSchoolFees());\r\n dispatch(getPaymentMethods());\r\n dispatch(getBalanceNotifications());\r\n dispatch(getPatrons());\r\n dispatch(getScheduledDeposits());\r\n dispatch(getReceipts());\r\n //document.dispatchEvent(new Event('refresh-data'));\r\n}\r\n\r\nexport function signOut(router) {\r\n return function(dispatch) {\r\n dispatch({\r\n type: types.SIGN_OUT\r\n });\r\n authSetToken();\r\n // Clear local storage so you can't rehydrate back in with old info\r\n // localStorage.clear();\r\n Utils.clearToken();\r\n // Utils.deleteCookie('token');\r\n router.push('/signoutsuccess');\r\n authCall.post('/SignOutPublicUser', {\r\n deleteUserToken: false\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(signOutSuccess());\r\n }\r\n })\r\n .catch(function(error) {\r\n if (error.response.status === 401) {\r\n // We don't care if the session has expired\r\n dispatch(signOutSuccess());\r\n } else {\r\n // Who cares what happened, don't show the user. Just sign them out\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(signOutFailure());\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function signOutSimple() {\r\n Utils.clearToken();\r\n return {\r\n type: types.SIGN_OUT\r\n };\r\n}\r\n\r\nexport function signOutSuccess() {\r\n return {\r\n type: types.SIGN_OUT_SUCCESS\r\n };\r\n}\r\n\r\nexport function signOutFailure() {\r\n return {\r\n type: types.SIGN_OUT_FAILURE\r\n };\r\n}\r\n\r\nexport function addPinAsync(pin, dispatch) {\r\n authSetToken();\r\n return authCall.post('/AddPin', {\r\n pin: pin\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n return response.data.token;\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(addPinFailure());\r\n });\r\n}\r\n\r\nexport function addPin(userID, username, pin, key) {\r\n return function(dispatch) {\r\n authSetToken();\r\n dispatch({type: types.ADD_PIN});\r\n authCall.post('/AddPin', {\r\n pin: pin\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n const pinToken = response.data.token;\r\n dispatch(addPinSuccess(userID, username, pinToken, key));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(addPinFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function addPinSuccess(userID, username, pinToken, key) {\r\n GA.event({\r\n category: 'Fingerprint',\r\n action: 'Add'\r\n });\r\n return {\r\n type: types.ADD_PIN_SUCCESS\r\n };\r\n}\r\n\r\nexport function addPinFailure() {\r\n return {\r\n type: types.ADD_PIN_FAILURE\r\n };\r\n}\r\n\r\nexport function removePin(pin) {\r\n return function(dispatch) {\r\n authSetToken();\r\n dispatch({type: types.REM_PIN});\r\n authCall.post('/DeletePin', {\r\n pin: pin\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n const token = response.data.token;\r\n Utils.setToken(token);\r\n dispatch(removePinSuccess(token));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(removePinFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function removePinSuccess() {\r\n GA.event({\r\n category: 'Fingerprint',\r\n action: 'Remove'\r\n });\r\n return {\r\n type: types.REM_PIN_SUCCESS\r\n };\r\n}\r\n\r\nexport function removePinFailure() {\r\n return {\r\n type: types.REM_PIN_FAILURE\r\n };\r\n}\r\n\r\nexport function pinSignIn(pin, pinToken, persist, reauth = false) {\r\n return function(dispatch) {\r\n authSetToken();\r\n authCall.defaults.headers.common['Pin-Token'] = pinToken;\r\n let actionType = types.PIN_SIGN_IN;\r\n let successFunc = pinSignInSuccess;\r\n let failureFunc = pinSignInFailure;\r\n if (reauth) {\r\n actionType = types.PIN_REAUTH;\r\n successFunc = pinReauthSuccess;\r\n failureFunc = pinReauthFailure;\r\n }\r\n dispatch({type: actionType});\r\n authCall.post('/SignInPublicUserByPin', {\r\n pin: pin\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n const token = response.data.token;\r\n let isPersisted = persist || Utils.isPersisted();\r\n authSetToken(token);\r\n Utils.setToken(token, persist);\r\n dispatch(successFunc({\r\n token: token,\r\n tokenLength: response.data.sessionTimeoutSeconds,\r\n apiInfo: response.headers,\r\n persisted: isPersisted\r\n }));\r\n if (reauth) refreshData(dispatch);\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n //ensure pin-token is removed on failure\r\n delete authCall.defaults.headers.common['Pin-Token'];\r\n dispatch(failureFunc());\r\n });\r\n };\r\n}\r\n\r\nexport function pinSignInSuccess(session) {\r\n GA.event({\r\n category: 'Fingerprint',\r\n action: 'Sign In'\r\n });\r\n return {\r\n type: types.PIN_SIGN_IN_SUCCESS,\r\n payload: session\r\n };\r\n}\r\n\r\nexport function pinSignInFailure() {\r\n return {\r\n type: types.PIN_SIGN_IN_FAILURE\r\n };\r\n}\r\n\r\nfunction pinReauthSuccess(session) {\r\n GA.event({\r\n category: 'Fingerprint',\r\n action: 'Reauth'\r\n });\r\n return {\r\n type: types.PIN_REAUTH_SUCCESS,\r\n payload: session.token\r\n };\r\n}\r\n\r\nfunction pinReauthFailure() {\r\n return {\r\n type: types.PIN_REAUTH_FAILURE\r\n };\r\n}\r\n\r\nexport function keepAlive() {\r\n return function(dispatch) {\r\n authSetToken();\r\n dispatch({type: types.KEEP_ALIVE});\r\n authCall.post('/ContinuePublicUserSession')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(keepAliveSuccess());\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(keepAliveFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction keepAliveSuccess() {\r\n return {\r\n type: types.KEEP_ALIVE_SUCCESS\r\n };\r\n}\r\n\r\nfunction keepAliveFailure() {\r\n return {\r\n type: types.KEEP_ALIVE_FAILURE\r\n };\r\n}\r\n\r\nexport function apiTest() {\r\n return function(dispatch) {\r\n authSetToken();\r\n dispatch({type: types.API_TEST});\r\n return authCall.post('/TestIntegration')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(apiTestSuccess());\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(apiTestFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction apiTestSuccess() {\r\n return {\r\n type: types.API_TEST_SUCCESS\r\n };\r\n}\r\n\r\nfunction apiTestFailure() {\r\n return {\r\n type: types.API_TEST_FAILURE\r\n };\r\n}\r\n\r\nexport function authSetToken(token = Utils.checkForToken()) {\r\n authCall.defaults.headers.common['User-Token'] = token;\r\n return token;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/actions/AuthAction.js","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_a-function.js\n// module id = 30\n// module chunks = 0","export var KEY_PREFIX = 'reduxPersist:';\nexport var REHYDRATE = 'persist/REHYDRATE';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/constants.js\n// module id = 31\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/ExecutionEnvironment.js\n// module id = 32\n// module chunks = 0","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_cb.js\n// module id = 33\n// module chunks = 0","import axios from 'axios';\nimport axiosRetry from 'axios-retry';\nimport Utils from '../js/utils.js';\nimport * as types from '../constants/UserConstants.js';\nimport {version} from '../../version.json';\nimport {initPushNotifications} from '../js/Push.js';\nimport {signOut} from './AuthAction.js';\n\naxiosRetry(axios, {retries: 3, retryCondition: (error) => {\n if (error.response.status === 500) return true;\n return false;\n}});\n\nconst currentTime = new Date();\n\nlet userCall = axios.create({\n baseURL: APP_API + 'PublicUser/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n});\n\nlet messageCall = axios.create({\n baseURL: APP_API + 'Message/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n});\n\nlet notificationCall = axios.create({\n baseURL: APP_API + 'Notification/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n});\n\nexport function cancelUser(user, router, authenticatedUsername) {\n return function(dispatch) {\n dispatch({type: types.DELETE_USER});\n userCall.post('/CancelPublicUser', {\n username: user.username,\n password: user.password,\n acknowledged: user.acknowledged\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(cancelUserSuccess(router, dispatch, (authenticatedUsername.toLowerCase() == user.username.toLowerCase())));\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(cancelUserFailure());\n });\n };\n}\n\nfunction cancelUserSuccess(router, dispatch, signoutUser) {\n GA.event({\n category: 'User',\n action: 'Deleted'\n });\n\n if(signoutUser) {\n Utils.updateModal('confirm', {\n msg: 'Account successfully canceled!',\n timeout: 2000,\n styleClass: 'level1',\n timeoutCallback: () => {\n dispatch(signOut(router));\n }\n });\n } else {\n // reset form\n try {\n let Cancelform = $('#delete-account-form')[0]\n Cancelform.loginCancelUsername.value = '';\n Cancelform.loginCancelPassword.value = '';\n Cancelform.acknowledgeCancel.checked = false;\n Cancelform.cancelAccountBtn.disabled = true;\n } catch (e) {\n\n }\n\n Utils.updateModal('confirm', {\n msg: 'Account successfully canceled!',\n timeout: 2000,\n styleClass: 'level1'\n });\n }\n\n\n return {\n type: types.DELETE_USER_SUCCESS\n };\n}\n\nfunction cancelUserFailure() {\n return {\n type: types.DELETE_USER_FAILURE\n };\n}\n\nexport function registerUser(user) {\n return function(dispatch) {\n dispatch({type: types.REGISTER_REQUEST});\n userCall.post('/AddPublicUser', {\n username: user.username,\n password: user.newPassword,\n repeatPassword: user.repeatNewPassword,\n firstName: user.firstName,\n lastName: user.lastName,\n securityQuestionID: user.securityQuestionID,\n securityAnswer: user.securityA,\n email: user.email,\n repeatEmail: user.repeatEmail,\n phoneAreaCode: user.phoneAreaCode,\n phoneNum: user.phoneNum,\n phoneExt: user.phoneExt,\n coppaBirthdate: user.coppaBirthdate\n })\n .then(response => {\n if (response.status === 200) {\n Utils.setToken(response.data.token, false);\n dispatch(registerSuccess({\n token: response.data.token,\n persisted: false,\n tokenLength: response.data.sessionTimeoutSeconds,\n apiInfo: response.headers\n }));\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(registerFailure());\n });\n };\n}\n\nfunction registerSuccess(token) {\n return {\n type: types.REGISTER_SUCCESS,\n payload: token\n };\n}\n\nfunction registerFailure() {\n return {\n type: types.REGISTER_FAILURE\n };\n}\n\nexport function resetRegistrationStatus() {\n return {\n type: types.CLEAR_REGISTRATION\n };\n}\n\nexport function updateUser(user) {\n return function(dispatch) {\n dispatch({type: types.UPDATE_USER});\n userSetToken();\n userCall.post('/UpdatePublicUser', {\n oldPassword: user.oldPassword,\n newPassword: user.newPassword,\n repeatNewPassword: user.repeatNewPassword,\n firstName: user.firstName,\n lastName: user.lastName,\n securityQuestionID: user.securityQuestionID,\n securityAnswer: user.securityA,\n email: user.email,\n repeatEmail: user.repeatEmail,\n email2: user.email2,\n email3: user.email3,\n phoneAreaCode: user.phoneAreaCode,\n phoneNum: user.phoneNum,\n phoneExt: user.phoneExt\n })\n .then(response => {\n if (response.status === 200) {\n const user = {\n userID: response.data.userID,\n userInfo: response.data\n };\n // Remove ID & stripeID so that userInfo can just be replaced\n delete user.userInfo.userID;\n delete user.userInfo.defaultStripePaymentSourceID;\n document.dispatchEvent(new Event('hide-settings'));\n if(!Utils.isMobile()) {\n document.dispatchEvent(new CustomEvent('rove-on-modals', {detail: {\n modalShown: false,\n checkpoint: document.activeElement\n }}));\n }\n dispatch(updateUserSuccess(user));\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(updateUserFailure());\n });\n };\n}\n\nfunction updateUserSuccess(user) {\n GA.event({\n category: 'User',\n action: 'Updated'\n });\n\n Utils.updateModal('confirm', {\n msg: 'Your settings have been saved',\n timeout: 2000,\n styleClass: 'level1'\n });\n\n return {\n type: types.UPDATE_USER_SUCCESS,\n payload: user\n };\n}\n\nfunction updateUserFailure() {\n return {\n type: types.UPDATE_USER_FAILURE\n };\n}\n\nexport function getUserByToken(token, router, themeSuccess) {\n return function(dispatch) {\n dispatch({type: types.GET_USER_BY_TOKEN});\n userSetToken(token);\n userCall.post('/GetPublicUserByUserToken', {})\n .then(response => {\n if (response.status === 200) {\n const userInfo = response.data;\n dispatch(getUserByTokenSuccess(userInfo));\n // Check for theme tied to user\n if (_.isFunction(themeSuccess)) getUserData(response.data.userID, 'theme', themeSuccess);\n // Refresh and Retrieve Push Setting for this device and user\n if (Utils.isApp()) {\n (async () => {\n initPushNotifications(dispatch, router);\n })();\n }\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(getUserByTokenFailure());\n });\n };\n}\n\nfunction getUserByTokenSuccess(user) {\n let userInfo = {\n username: user.username,\n firstName: user.firstName,\n lastName: user.lastName,\n email: user.email,\n email2: user.email2,\n email3: user.email3,\n phoneAreaCode: user.phoneAreaCode,\n phoneNum: user.phoneNum,\n phoneExt: user.phoneExt,\n securityQuestionID: user.securityQuestionID\n };\n return {\n type: types.GET_USER_BY_TOKEN_SUCCESS,\n payload: {\n active: user.active,\n id: user.userID,\n userInfo: userInfo,\n defaultPayment: user.defaultStripePaymentSourceID\n }\n };\n}\n\nfunction getUserByTokenFailure() {\n return {\n type: types.GET_USER_BY_TOKEN_FAILURE\n };\n}\n\nexport function forgotPassword(username) {\n return function(dispatch) {\n dispatch({type: types.FORGOT_PASS});\n userCall.post('/GetSecurityQuestionByUsername', {\n username: username\n })\n .then(response => {\n if (response.status === 200) {\n let question = response.data.securityQuestionID;\n dispatch(forgotPasswordSuccess(username, question));\n }\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(forgotPasswordFailure());\n });\n };\n}\n\nfunction forgotPasswordSuccess(username, question) {\n return {\n type: types.FORGOT_PASS_SUCCESS,\n payload: {username: username, question: question}\n };\n}\n\nfunction forgotPasswordFailure() {\n return {\n type: types.FORGOT_PASS_FAILURE\n };\n}\n\nexport function forgotUsername(email) {\n return function(dispatch) {\n dispatch({type: types.FORGOT_USERNAME});\n userCall.post('/SendForgotUsernameEmail', {\n email: email\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(forgotUsernameSuccess(response.data));\n }\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(forgotUsernameFail());\n });\n };\n}\n\nfunction forgotUsernameSuccess(question) {\n return {\n type: types.FORGOT_USERNAME_SUCCESS,\n payload: question\n };\n}\n\nfunction forgotUsernameFail() {\n return {\n type: types.FORGOT_USERNAME_FAILURE\n };\n}\n\nexport function submitSecurityAnswer(username, answer) {\n return function(dispatch) {\n dispatch({type: types.SUBMIT_SECURITY_A});\n userCall.post('/ResetPasswordBySecurityAnswer', {\n username: username,\n securityAnswer: answer\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(submitSecurityAnswerSuccess());\n }\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(submitSecurityAnswerFailure());\n });\n };\n}\n\nfunction submitSecurityAnswerSuccess() {\n return {\n type: types.SUBMIT_SECURITY_A_SUCCESS\n };\n}\n\nfunction submitSecurityAnswerFailure() {\n return {\n type: types.SUBMIT_SECURITY_A_FAILURE\n };\n}\n\nexport function checkUsernameAvailability(username) {\n return function(dispatch) {\n dispatch({type: types.CHECK_USERNAME});\n userCall.post('/CheckUsernameAvailable', {\n username: username\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(checkUsernameAvailabilitySuccess(response.data));\n }\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(checkUsernameAvailabilityFailure());\n });\n };\n}\n\nfunction checkUsernameAvailabilitySuccess(available) {\n return {\n type: types.CHECK_USERNAME_SUCCESS,\n payload: available\n };\n}\n\nfunction checkUsernameAvailabilityFailure() {\n return {\n type: types.CHECK_USERNAME_FAILURE\n };\n}\n\nexport function checkEmailAvailability(email) {\n return function(dispatch) {\n dispatch({type: types.CHECK_EMAIL});\n userCall.post('/CheckEmailAvailable', {\n email: email\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(checkEmailAvailabilitySuccess(response.data));\n }\n })\n .catch(error => {\n if (error.response.status === 500) {\n // Ignore 500 errors...?\n dispatch(checkEmailAmbiguous());\n return;\n }\n Utils.dispatchError(error, dispatch);\n dispatch(checkEmailAvailabilityFailure());\n });\n };\n}\n\nfunction checkEmailAvailabilitySuccess(available) {\n return {\n type: types.CHECK_EMAIL_SUCCESS,\n payload: available\n };\n}\n\nfunction checkEmailAvailabilityFailure() {\n return {\n type: types.CHECK_EMAIL_FAILURE\n };\n}\n\nfunction checkEmailAmbiguous() {\n return {\n type: types.CHECK_EMAIL_GHOST\n };\n}\n\nexport function resetRegistration() {\n return {\n type: types.RESET_REG\n };\n}\n\nexport function clearUserValidation() {\n return {\n type: types.CLEAR_USER_VAL\n };\n}\n\nexport function clearEmailValidation() {\n return {\n type: types.CLEAR_EMAIL_VAL\n };\n}\n\nexport function clearUpdateValidation() {\n return {\n type: types.CLEAR_UPDATE_VAL\n };\n}\n\nexport function getUserMessages() {\n return function(dispatch) {\n dispatch({type: types.GET_MESSAGES});\n messageCall.defaults.headers.common['User-Token'] = Utils.checkForToken();\n messageCall.post('/GetMessagesByUserToken')\n .then(response => {\n if (response.status === 200) {\n dispatch(getUserMessagesSuccess(response.data));\n }\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(getUserMessagesFailure());\n });\n };\n}\n\nfunction getUserMessagesSuccess(messages) {\n return {\n type: types.GET_MESSAGES_SUCCESS,\n payload: messages\n };\n}\n\nfunction getUserMessagesFailure() {\n return {\n type: types.GET_MESSAGES_FAILURE\n };\n}\n\nconst osID = {\n android: 1,\n ios: 2\n};\n\nexport function getUserNotificationSettings(deviceID) {\n return function(dispatch) {\n let prevDeviceID = Utils.getFromStorage('prevDevicePushRegID') || null;\n dispatch({type: types.GET_NOTIF_SETTINGS});\n notificationSetToken();\n const devicePlatform = window.Capacitor.getPlatform();\n notificationCall.post('/GetPushNotificationSettings', {\n deviceIDCode: deviceID,\n osID: osID[devicePlatform],\n prevDeviceIDCode: prevDeviceID\n })\n .then(response => {\n if (response.status === 200) {\n let currentDevicePushRegID = Utils.getFromStorage('devicePushRegID');\n \n if(prevDeviceID !== currentDevicePushRegID) {\n Utils.updateStorage('prevDevicePushRegID', currentDevicePushRegID);\n }\n\n Utils.updateStorage('devicePushRegID', deviceID);\n \n dispatch(getUserNotificationSettingsSuccess(response.data));\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(getUserNotificationSettingsFailure());\n });\n };\n}\n\nfunction getUserNotificationSettingsSuccess(settings) {\n return {\n type: types.GET_NOTIF_SETTINGS_SUCCESS,\n payload: settings\n };\n}\n\nfunction getUserNotificationSettingsFailure() {\n return {\n type: types.GET_NOTIF_SETTINGS_FAILURE\n };\n}\n\nexport function updateGlobalPush(deviceID, enabled) {\n return function(dispatch) {\n let prevDeviceID = Utils.getFromStorage('prevDevicePushRegID') || null;\n dispatch({type: types.UPDATE_PUSH_GLOBAL});\n notificationSetToken();\n const devicePlatform = window.Capacitor.getPlatform();\n notificationCall.post('/UpdateGlobalPushSetting', {\n deviceIDCode: deviceID,\n osID: osID[devicePlatform],\n pushEnabled: enabled,\n prevDeviceIDCode: prevDeviceID\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(updateGlobalPushSuccess(enabled));\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(updateGlobalPushFailure());\n });\n };\n}\n\nfunction updateGlobalPushSuccess(enabled) {\n return {\n type: types.UPDATE_PUSH_GLOBAL_SUCCESS,\n payload: enabled\n };\n}\n\nfunction updateGlobalPushFailure() {\n return {\n type: types.UPDATE_PUSH_GLOBAL_FAILURE\n };\n}\n\nexport function updateNotificationSetting(deviceID, notificationTypeID, enabled) {\n return function(dispatch) {\n let prevDeviceID = Utils.getFromStorage('prevDevicePushRegID') || null;\n dispatch({type: types.UPDATE_NOTIF_SETTINGS});\n notificationSetToken();\n const devicePlatform = window.Capacitor.getPlatform();\n notificationCall.post('/UpdatePushNotificationSetting', {\n deviceIDCode: deviceID,\n osID: osID[devicePlatform],\n notificationTypeID: notificationTypeID,\n pushEnabled: enabled,\n prevDeviceIDCode: prevDeviceID\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(updateNotificationSettingsSuccess(response.data));\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(updateNotificationSettingsFailure());\n });\n };\n}\n\nfunction updateNotificationSettingsSuccess(settings) {\n return {\n type: types.UPDATE_NOTIF_SETTINGS_SUCCESS,\n payload: settings\n };\n}\n\nfunction updateNotificationSettingsFailure() {\n return {\n type: types.UPDATE_NOTIF_SETTINGS_FAILURE\n };\n}\n\nfunction userSetToken(token = Utils.checkForToken()) {\n userCall.defaults.headers.common['User-Token'] = token;\n return token;\n}\n\nfunction notificationSetToken(token = Utils.checkForToken()) {\n notificationCall.defaults.headers.common['User-Token'] = token;\n return token;\n}\n\n\n\n// WEBPACK FOOTER //\n// app/common/actions/UserAction.js","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_hide.js\n// module id = 35\n// module chunks = 0","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine.js\n// module id = 36\n// module chunks = 0","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-html.js\n// module id = 37\n// module chunks = 0","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_isArrayLike.js\n// module id = 38\n// module chunks = 0","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/restArguments.js\n// module id = 39\n// module chunks = 0","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/underscore.js\n// module id = 40\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined' &&\n typeof document.createElement === 'function'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object' && !isArray(obj)) {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/utils.js\n// module id = 41\n// module chunks = 0","import axios from 'axios';\r\nimport axiosRetry from 'axios-retry';\r\nimport Utils from '../js/utils.js';\r\nimport * as types from '../constants/PatronsConstants.js';\r\nimport {REM_CART} from '../constants/CartConstants.js';\r\n\r\nimport {getUserMessages} from './UserAction.js';\r\nimport {getFeesPaid} from './CartAction.js';\r\n\r\nimport {version} from '../../version.json';\r\n\r\naxiosRetry(axios, {retries: 3, retryCondition: (error) => {\r\n if (error.response.status === 500) return true;\r\n return false;\r\n}});\r\n\r\nconst currentTime = new Date();\r\n\r\nconst defaultHeader = {\r\n 'API-Changeset': API_CHANGESET,\r\n 'Version': version,\r\n 'Content-Type': 'application/json',\r\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\r\n};\r\n\r\nlet patronCall = axios.create({\r\n baseURL: APP_API + 'Patron/',\r\n headers: defaultHeader\r\n});\r\n\r\nlet posCall = axios.create({\r\n baseURL: APP_API + 'PosTrans/',\r\n headers: defaultHeader\r\n});\r\n\r\nlet schoolCall = axios.create({\r\n baseURL: APP_API + 'School/',\r\n headers: defaultHeader\r\n});\r\n\r\nlet feeCall = axios.create({\r\n baseURL: APP_API + 'SchoolFee/',\r\n headers: defaultHeader\r\n});\r\n\r\nexport function getPatrons(resolveFunc) {\r\n return function(dispatch) {\r\n patronSetToken();\r\n\r\n dispatch({type: types.PATRON_FETCH});\r\n patronCall.post('/GetPatronAccountsByUserToken', {\r\n explicitlyInUserProfile: null,\r\n hasActivePOSCheckingAccount: null\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getPatronsSuccess(response.data));\r\n // Handles pull to refresh\r\n if (_.isFunction(resolveFunc)) resolveFunc();\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getPatronsFailure());\r\n if (_.isFunction(resolveFunc)) resolveFunc();\r\n });\r\n };\r\n}\r\n\r\nexport function getPatronsSuccess(patrons) {\r\n return {\r\n type: types.PATRON_FETCH_SUCCESS,\r\n payload: patrons\r\n };\r\n}\r\n\r\nexport function getPatronsFailure() {\r\n return {\r\n type: types.PATRON_FETCH_FAILURE\r\n };\r\n}\r\n\r\nexport function addPatron(schoolID, firstName, idCode) {\r\n return function(dispatch) {\r\n dispatch({type: types.PATRON_ADD});\r\n patronSetToken();\r\n patronCall.post('/AddPatronToPublicUser', {\r\n schoolLocationID: schoolID,\r\n firstName: firstName,\r\n idCode: idCode\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(addPatronSuccess(response.data));\r\n // If a student has been added, check to see if that new student has\r\n // any fees to go along with them!\r\n dispatch(getSchoolFees());\r\n dispatch(getUserMessages());\r\n document.dispatchEvent(new Event('update-acct-info'));\r\n\r\n //TODO: Revisit and Review. A good candidate for refactoring.\r\n if(response.data.userPatrons.length === 1 && (Utils.isApp() || Utils.isMobile())) {\r\n dispatch(getPatronAccount(response.data.userPatrons[0].patronID));\r\n dispatch(getStudentData(response.data.userPatrons[0].patronID, idCode));\r\n }\r\n\r\n let checkpoint = {id: \"existing-acct-\" + response.data.patronAccount.patronAccountNum};\r\n\r\n if(Utils.isMobile()) {\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint\r\n }}));\r\n } else {\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint,\r\n routeChange: \"accounts\"\r\n }}));\r\n }\r\n\r\n Utils.updateModal('confirm', {\r\n msg: 'Account successfully added!',\r\n timeout: 2000,\r\n styleClass: 'level1'\r\n });\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(addPatronFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function addPatronSuccess(patron) {\r\n GA.event({\r\n category: 'Patron',\r\n action: 'Added'\r\n });\r\n return {\r\n type: types.PATRON_ADD_SUCCESS,\r\n payload: patron\r\n };\r\n}\r\n\r\nexport function addPatronFailure() {\r\n return {\r\n type: types.PATRON_ADD_FAILURE\r\n };\r\n}\r\n\r\nexport function removePatron(patronID, patronAccountNum) {\r\n return function(dispatch) {\r\n dispatch({type: types.PATRON_REM});\r\n patronSetToken();\r\n patronCall.post('/RemovePatronFromPublicUser', {\r\n patronID: patronID\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(removePatronSuccess(patronAccountNum));\r\n dispatch(getFeesPaid());\r\n Utils.updateModal('confirm', {\r\n msg: 'Account successfully deleted.',\r\n timeout: 2000,\r\n styleClass: 'level1'\r\n });\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(removePatronFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function removePatronSuccess(patronAccountNum) {\r\n GA.event({\r\n category: 'Patron',\r\n action: 'Removed'\r\n });\r\n return {\r\n type: types.PATRON_REM_SUCCESS,\r\n payload: patronAccountNum\r\n };\r\n}\r\n\r\nexport function removePatronFailure() {\r\n return {\r\n type: types.PATRON_REM_FAILURE\r\n };\r\n}\r\n\r\nexport function getBalanceNotifications(patronID, patronAccountNum) {\r\n return function(dispatch) {\r\n dispatch({type: types.GET_BALANCE_NOTIF});\r\n patronSetToken();\r\n patronCall.post('/GetUserPatronsByUserToken')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getBalanceNotificationsSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getBalanceNotificationsFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function getBalanceNotificationsSuccess(lowBalance) {\r\n GA.event({\r\n category: 'Patron',\r\n action: 'Removed'\r\n });\r\n return {\r\n type: types.GET_BALANCE_NOTIF_SUCCESS,\r\n payload: lowBalance\r\n };\r\n}\r\n\r\nexport function getBalanceNotificationsFailure() {\r\n return {\r\n type: types.GET_BALANCE_NOTIF_FAILURE\r\n };\r\n}\r\n\r\nexport function updatePatron(patronInfo) {\r\n GA.event({\r\n category: 'Patron',\r\n action: 'Updated'\r\n });\r\n return function(dispatch) {\r\n dispatch({type: types.UPDATE_BALANCE_NOTIF});\r\n patronSetToken();\r\n patronCall.post('/UpdateUserPatrons', {\r\n userPatrons: patronInfo\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(updatePatronSuccess(patronInfo));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(updatePatronFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction updatePatronSuccess(patronInfo) {\r\n Utils.updateModal('confirm', {\r\n msg: 'Your settings have been saved.',\r\n timeout: 3000,\r\n styleClass: 'level1'\r\n });\r\n return {\r\n type: types.UPDATE_BALANCE_NOTIF_SUCCESS,\r\n payload: patronInfo\r\n };\r\n}\r\n\r\nfunction updatePatronFailure() {\r\n return {\r\n type: types.UPDATE_BALANCE_NOTIF_FAILURE\r\n };\r\n}\r\n\r\nexport function loadPatron(patron) {\r\n return {\r\n type: types.LOAD_PATRON,\r\n payload: patron\r\n };\r\n}\r\n\r\nexport function loadAccount(acct) {\r\n return {\r\n type: types.LOAD_ACCT,\r\n payload: acct\r\n };\r\n}\r\n\r\nexport function clearLoaded() {\r\n return {\r\n type: types.CLEAR_LOADED\r\n };\r\n}\r\n\r\nexport function fetchTransactions(patronID, count, fromDate, toDate) {\r\n return function(dispatch) {\r\n let token = posSetToken();\r\n if (_.isUndefined(token)) {\r\n dispatch(fetchTransactionsFailure('User token is undefined'));\r\n return;\r\n }\r\n dispatch({type: types.FETCH_TRANS});\r\n posCall.post('/GetPosTransSalesByPatronID', {\r\n patronID: patronID\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(fetchTransactionsSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(fetchTransactionsFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function fetchTransactionsSuccess(transactions) {\r\n return {\r\n type: types.FETCH_TRANS_SUCCESS,\r\n payload: transactions\r\n };\r\n}\r\n\r\nexport function fetchTransactionsFailure() {\r\n return {\r\n type: types.FETCH_TRANS_FAILURE\r\n };\r\n}\r\n\r\nexport function fetchDepositsByAccount(acctNum, district, count, fromDate, toDate) {\r\n return function(dispatch) {\r\n let token = posSetToken();\r\n if (_.isUndefined(token)) {\r\n dispatch(fetchDepositsByAccountFailure('User token is undefined'));\r\n return;\r\n }\r\n dispatch({type: types.FETCH_DEP_BY_ACCT});\r\n posCall.post('/GetMT5PosTransDepositsByPatronAccountNum', {\r\n patronAccountNum: acctNum,\r\n districtLocationSeed: district\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(fetchDepositsByAccountSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(fetchDepositsByAccountFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function fetchDepositsByAccountSuccess(deposits) {\r\n return {\r\n type: types.FETCH_DEP_BY_ACCT_SUCCESS,\r\n payload: deposits\r\n };\r\n}\r\n\r\nexport function fetchDepositsByAccountFailure() {\r\n return {\r\n type: types.FETCH_DEP_BY_ACCT_FAILURE\r\n };\r\n}\r\n\r\nexport function fetchDepositsByPatron(patronID, count, fromDate, toDate) {\r\n return function(dispatch) {\r\n let token = posSetToken();\r\n if (_.isUndefined(token)) {\r\n dispatch(fetchDepositsByPatronFailure('User token is undefined'));\r\n return;\r\n }\r\n dispatch({type: types.FETCH_DEP_BY_PATRON});\r\n posCall.post('/GetMT2PosTransDepositsByPatronID', {\r\n patronID: patronID\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(fetchDepositsByPatronSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(fetchDepositsByPatronFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function fetchDepositsByPatronSuccess(deposits) {\r\n return {\r\n type: types.FETCH_DEP_BY_PATRON_SUCCESS,\r\n payload: deposits\r\n };\r\n}\r\n\r\nexport function fetchDepositsByPatronFailure() {\r\n return {\r\n type: types.FETCH_DEP_BY_PATRON_FAILURE\r\n };\r\n}\r\n\r\nexport function getStateSchools(stateID) {\r\n return function(dispatch) {\r\n schoolSetToken();\r\n dispatch({type: types.SCHOOL_FETCH});\r\n schoolCall.post('/GetSchoolsByStateID', {\r\n stateID: stateID\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getStateSchoolsSuccess(response.data, stateID));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getStateSchoolsFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function getStateSchoolsSuccess(schools, stateID) {\r\n GA.event({\r\n category: 'Schools',\r\n action: 'Fetched',\r\n label: stateID\r\n });\r\n return {\r\n type: types.SCHOOL_FETCH_SUCCESS,\r\n payload: schools\r\n };\r\n}\r\n\r\nexport function getStateSchoolsFailure() {\r\n return {\r\n type: types.SCHOOL_FETCH_FAILURE\r\n };\r\n}\r\n\r\nexport function clearSchools() {\r\n return {\r\n type: types.CLEAR_SCHOOLS\r\n };\r\n}\r\n\r\n// You know, I COULD make this its own action/reducer/constant, but it's only one call\r\nexport function getSchoolFees() {\r\n return function(dispatch) {\r\n feeSetToken();\r\n dispatch({type: types.GET_SCHOOL_FEES});\r\n feeCall.post('/GetSchoolFeesByUserToken')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getSchoolFeesSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getSchoolFeesFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction getSchoolFeesSuccess(fees) {\r\n return {\r\n type: types.GET_SCHOOL_FEES_SUCCESS,\r\n payload: fees\r\n };\r\n}\r\n\r\nfunction getSchoolFeesFailure() {\r\n return {\r\n type: types.GET_SCHOOL_FEES_FAILURE\r\n };\r\n}\r\n\r\n/*\r\n * I feel like there should be a better way to do this, but the calls\r\n * don't have the token stored after refresh. You could set them with\r\n * the default header, but there's no guarantee you'll have it when\r\n * the app launches either.\r\n */\r\nfunction patronSetToken(token = Utils.checkForToken()) {\r\n patronCall.defaults.headers.common['User-Token'] = token;\r\n return token;\r\n}\r\n\r\nfunction posSetToken(token = Utils.checkForToken()) {\r\n posCall.defaults.headers.common['User-Token'] = token;\r\n return token;\r\n}\r\n\r\nfunction schoolSetToken(token = Utils.checkForToken()) {\r\n schoolCall.defaults.headers.common['User-Token'] = token;\r\n return token;\r\n}\r\n\r\nfunction feeSetToken(token = Utils.checkForToken()) {\r\n feeCall.defaults.headers.common['User-Token'] = token;\r\n return token;\r\n}\r\n\r\n/*\r\nTODO: Revisit and Review. From student src that is supposed to be student specific but had to move it here because of the shared component and babel\r\n*/\r\nexport function getPatronAccount(patronID) {\r\n return function(dispatch) {\r\n patronSetToken();\r\n dispatch({type: types.GET_PATRON_ACCOUNT});\r\n patronCall.post('/GetPatronAccountByPatronID', {\r\n patronID: patronID\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getPatronAccountSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getPatronAccountFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction getPatronAccountSuccess(patron) {\r\n return {\r\n type: types.GET_PATRON_ACCOUNT_SUCCESS,\r\n payload: patron\r\n };\r\n}\r\n\r\nfunction getPatronAccountFailure() {\r\n return {\r\n type: types.GET_PATRON_ACCOUNT_FAILURE\r\n };\r\n}\r\n\r\nexport function getStudentData(patronID, userID) {\r\n return function(dispatch) {\r\n dispatch({type: types.GET_PATRON_DATA});\r\n patronSetToken();\r\n patronCall.post('/GetPatronStudentAppData', {\r\n patronID: patronID\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n const studentInfo = {\r\n patronID: Number(patronID),\r\n studentData: response.data\r\n };\r\n setUserData(userID, 'student', studentInfo);\r\n dispatch(getStudentDataSuccess(studentInfo));\r\n }\r\n })\r\n .catch(function(error) {\r\n\r\n if(error.response.data.errors[0].error.errorCode === \"MT5CallForMT2Patron\") {\r\n dispatch(getStudentDataFailure());\r\n } else {\r\n Utils.dispatchError(error, dispatch);\r\n }\r\n\r\n });\r\n };\r\n}\r\n\r\nexport function getStudentDataSuccess(student) {\r\n return {\r\n type: types.GET_PATRON_DATA_SUCCESS,\r\n payload: student\r\n };\r\n}\r\n\r\nfunction getStudentDataFailure() {\r\n return {\r\n type: types.GET_PATRON_DATA_FAILURE\r\n };\r\n}\n\n\n// WEBPACK FOOTER //\n// app/common/actions/PatronsAction.js","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_has.js\n// module id = 43\n// module chunks = 0","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopd.js\n// module id = 44\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gpo.js\n// module id = 45\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-iobject.js\n// module id = 46\n// module chunks = 0","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_getLength.js\n// module id = 47\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isFunction.js\n// module id = 48\n// module chunks = 0","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/index.js\n// module id = 49\n// module chunks = 0","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport './ToolTip.scss';\r\n\r\nclass ToopTip extends React.Component {\r\n static propTypes = {\r\n toolTipClassName: PropTypes.string,\r\n direction: PropTypes.string,\r\n customClass: PropTypes.string,\r\n title: PropTypes.string\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.toolTipClassName = props.toolTipClassName || 'fa fa-question-circle-o tooltip-generic';\r\n this.direction = props.direction || 'top';\r\n this.title = props.title || '';\r\n this.customClass = props.customClass || null;\r\n }\r\n\r\n componentDidMount() {\r\n $(this.refs.tooltip).tooltip();\r\n\r\n if (!_.isUndefined(window.orientation)) {\r\n $(window).on('orientationchange', this.hideTooltip);\r\n } else {\r\n $(window).on('resize', this.hideTooltip);\r\n }\r\n\r\n $(this.refs.tooltip).on('inserted.bs.tooltip', this.setupTooltip);\r\n $(this.refs.tooltip).on('hide.bs.tooltip', this.destroyTooltip);\r\n }\r\n\r\n componentWillUnmount() {\r\n $(this.refs.tooltip).tooltip('dispose');\r\n\r\n if (!_.isUndefined(window.orientation)) {\r\n $(window).off('orientationchange', this.hideTooltip);\r\n } else {\r\n $(window).off('resize', this.hideTooltip);\r\n }\r\n\r\n $(this.refs.tooltip).off('inserted.bs.tooltip', this.setupTooltip);\r\n $(this.refs.tooltip).off('hide.bs.tooltip', this.destroyTooltip);\r\n }\r\n\r\n hideTooltip = () => {\r\n $(this.refs.tooltip).tooltip('hide');\r\n $(this.refs.tooltip).one('click', this.showTooltip);\r\n }\r\n\r\n showTooltip = () => {\r\n $(this.refs.tooltip).tooltip('show');\r\n }\r\n\r\n setupTooltip = () => {\r\n if (this.customClass) {\r\n $('#' + $(this.refs.tooltip)[0].getAttribute('aria-describedby')).addClass(this.customClass);\r\n }\r\n\r\n $('#app-body').attr('tabindex', '-1');\r\n }\r\n\r\n destroyTooltip = () => {\r\n $('#app-body').attr('tabindex', '');\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ToopTip;\n\n\n// WEBPACK FOOTER //\n// app/common/components/ToolTip/ToolTip.jsx","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_cof.js\n// module id = 51\n// module chunks = 0","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_core.js\n// module id = 52\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ctx.js\n// module id = 53\n// module chunks = 0","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_strict-method.js\n// module id = 54\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-integer.js\n// module id = 55\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyFunction.js\n// module id = 56\n// module chunks = 0","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n// Trust the developer to only use ReactInstrumentation with a __DEV__ check\n\nvar debugTool = null;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactDebugTool = require('./ReactDebugTool');\n debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactInstrumentation.js\n// module id = 57\n// module chunks = 0","/* global StatusBar */\r\nimport CryptoJS from 'crypto-js';\r\nimport actionableError from '../js/ActionableError.js';\r\n\r\nimport ErrorIDs from '../constants/ValidationErrorIDs.json';\r\nimport Actionable from '../constants/ActionableErrors.json';\r\nconst ActionableErrors = Actionable.actionableErrors;\r\n\r\nimport {\r\n generalError,\r\n validationError\r\n} from '../actions/ErrorAction.js';\r\nimport {pinSignIn} from '../actions/AuthAction.js';\r\nimport { verifyBiometric } from '../js/Biometry.js';\r\n\r\nlet reauthDialog = {status: 0, timestamp: null, timeout: 300000};\r\n//TODO: this is uber long. Can be organize for better maintainability\r\nclass Utils {\r\n /**\r\n * Validation function for password input.\r\n * @param {String} password Password string\r\n *\r\n * @return {Object} Password state\r\n */\r\n acceptablePassword(password) {\r\n let passwordState = {\r\n upper: false,\r\n lower: false,\r\n num: false,\r\n special: false,\r\n length: false,\r\n invalid: false,\r\n acceptable: false\r\n };\r\n const acceptedSpecials = ['@', '%', '+', '\\\\', '/', '\\'', '!', '#', '$',\r\n '^', '?', '*', ':', ',', '(', ')', '{', '}', '[', ']', '~', '-', '_'];\r\n\r\n if (/[A-Z]/.test(password)) {\r\n passwordState.upper = true;\r\n }\r\n if (/[a-z]/.test(password)) {\r\n passwordState.lower = true;\r\n }\r\n if (/[0-9]/.test(password)) {\r\n passwordState.num = true;\r\n }\r\n\r\n let parsedPassword = password.replace(/[a-zA-Z0-9]/g, '');\r\n\r\n for (let c of parsedPassword) {\r\n if (acceptedSpecials.includes(c)) {\r\n passwordState.special = true;\r\n } else {\r\n passwordState.invalid = true;\r\n }\r\n }\r\n\r\n if (password.length >= 8 && password.length <= 20) {\r\n passwordState.length = true;\r\n }\r\n\r\n if (passwordState.upper === true &&\r\n passwordState.lower === true &&\r\n passwordState.num === true &&\r\n passwordState.special === true &&\r\n passwordState.length === true &&\r\n passwordState.invalid === false) {\r\n passwordState.acceptable = true;\r\n }\r\n\r\n return passwordState;\r\n }\r\n\r\n /**\r\n * Checks for the token in both local and session storage\r\n *\r\n * @return {String} Returns the token as a string, or undefined if token can't be found\r\n */\r\n checkForToken() {\r\n let token;\r\n\r\n // Get token from localstorage\r\n token = this.getFromStorage('token');\r\n if (!_.isUndefined(token)) {\r\n return token;\r\n }\r\n\r\n token = this.getFromSession('token');\r\n\r\n // If not in localstorage, get from cookie\r\n // token = document.cookie.replace(/(?:(?:^|.*;\\s*)token\\s*\\=\\s*([^;]*).*$)|^.*$/, \"$1\");\r\n // if (_.isEmpty(token)) {\r\n // // Regex returns an empty string if not found\r\n // // so let's try to keep everything uniform\r\n // token = undefined;\r\n // }\r\n return token;\r\n }\r\n\r\n /**\r\n * Converts datetime string to a JS Date object\r\n * @param {String} dt Datetime string\r\n *\r\n * @return {Date} Converted Date object\r\n */\r\n convertFromDatetime(dt) {\r\n let dateString = dt + 'Z';\r\n const convertedDate = new Date(Date.parse(dateString));\r\n convertedDate.setTime(convertedDate.getTime() + convertedDate.getTimezoneOffset() * 60 * 1000);\r\n\r\n if (this.isApp()) {\r\n // https://stackoverflow.com/questions/13363673/javascript-date-is-invalid-on-ios\r\n convertedDate.setTime(convertedDate.getTime() + convertedDate.getTimezoneOffset() * 60 * 1000);\r\n } else {\r\n convertedDate.setTime(convertedDate.getTime());\r\n }\r\n\r\n return convertedDate;\r\n }\r\n\r\n /**\r\n * Converts Date object to datetime string\r\n * @param {Date} date Date object to be converted\r\n *\r\n * @return {String} Datetime string\r\n */\r\n convertToDatetime(date) {\r\n var day = date.getDay();\r\n var month = date.getMonth();\r\n var year = date.getFullYear();\r\n var hour = date.getHours();\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n\r\n var time = day + \"/\" + month + \"/\" + year + \" \" + hour + ':' + minute + ':' + second;\r\n return time;\r\n }\r\n\r\n /**\r\n * Clears the token from both local and session storage\r\n */\r\n clearToken() {\r\n localStorage.removeItem('token');\r\n sessionStorage.removeItem('token');\r\n }\r\n\r\n /**\r\n * Converts a Date object to a readable string\r\n * @param {Date} d Date object to the printed\r\n * @param {Boolean} english Whether or not to print the date in english or as a series of numbers\r\n *\r\n * @return {String} Date string\r\n */\r\n dateFormat(d, english = true) {\r\n let monthNames = [\r\n \"January\", \"February\", \"March\",\r\n \"April\", \"May\", \"June\", \"July\",\r\n \"August\", \"September\", \"October\",\r\n \"November\", \"December\"\r\n ];\r\n let days = ['Sunday', 'Monday', 'Tuesday',\r\n 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n\r\n //if for whatever reason d obj is undefined return empty string to avoid the app from crashing\r\n if(_.isUndefined(d)) return '';\r\n\r\n let day = d.getDate();\r\n if (day < 10) day = '0' + day;\r\n let monthIndex = d.getMonth();\r\n let year = d.getFullYear();\r\n let weekDay = d.getDay();\r\n\r\n let dateStr = '';\r\n if (english) {\r\n dateStr = days[weekDay] + ', ' + monthNames[monthIndex] + ' ' + day + ' ' + year;\r\n } else {\r\n monthIndex += 1;\r\n dateStr = monthIndex + '/' + day + '/' + year;\r\n }\r\n\r\n return dateStr;\r\n }\r\n\r\n /**\r\n * Turns 1 into 1st, 3 into 3rd, etc\r\n * @param {Number} i Day (1, 4, 17, etc) to be suffix-ed\r\n *\r\n * @return {String} 1st, 2nd, 3rd, etc\r\n */\r\n daySuffix(i) {\r\n let j = i % 10;\r\n let k = i % 100;\r\n if (j === 1 && k !== 11) {\r\n return i + \"st\";\r\n }\r\n if (j === 2 && k !== 12) {\r\n return i + \"nd\";\r\n }\r\n if (j === 3 && k !== 13) {\r\n return i + \"rd\";\r\n }\r\n return i + \"th\";\r\n }\r\n\r\n // deleteCookie(name) {\r\n // document.cookie = name + '=; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n // }\r\n\r\n /**\r\n * Friendlier localstorage key deletion\r\n * @param {String} key Key of the item to delete\r\n */\r\n deleteFromStorage(key) {\r\n if (('localStorage' in window) && window.localStorage !== null) {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n\r\n /**\r\n * Handles multiple errors and sorts them into their appropriate category\r\n * (i.e. Actionable, Validation, & General)\r\n * @param {Object} error Error object\r\n * @param {Function} dispatch Dispatch function\r\n */\r\n dispatchError(error, dispatch) {\r\n let general = {};\r\n let validation = [];\r\n if (error.response &&\r\n error.response.data &&\r\n _.isArray(error.response.data.errors)) {\r\n // Place errors correctly\r\n for (let err of error.response.data.errors) {\r\n if (ActionableErrors.includes(err.error.errorCode)) {\r\n // Actionable error\r\n actionableError(err, dispatch, error.response);\r\n } else if (!_.isUndefined(ErrorIDs[err.error.errorCode])) {\r\n // Validation error\r\n validation.push(err.error);\r\n } else {\r\n // General error\r\n general = err;\r\n }\r\n }\r\n } else if (error.response) { // Error responses not from API\r\n if (error.response.status === 503) {\r\n general = {\r\n error: {\r\n errorCode: \"ApiUnavailable\",\r\n errorMessage: \"The server is temporarily unavailable.\"\r\n }\r\n };\r\n }\r\n } else if (error.stripeError) { // Error responses from Stripe Validation errors.\r\n if (error.stripeError.code === 'card_declined') {\r\n if (!_.isUndefined(ErrorIDs[error.stripeError.decline_code])) {\r\n validation.push({\r\n errorCode: error.stripeError.decline_code,\r\n errorMessage: error.stripeError.message\r\n });\r\n }\r\n }\r\n } else if (error.message === 'Network Error') {\r\n general = {\r\n error: {\r\n errorCode: \"NetworkError\",\r\n errorMessage: \"(Network Error) A connection to the service could not be made. Please try again later.\"\r\n }\r\n };\r\n } else { // Error sending request likely no network connection\r\n console.warn({\r\n context: \"utils dispatchError general handler\",\r\n error: error\r\n });\r\n general = {\r\n error: {\r\n errorCode: \"RequestNotSent\",\r\n errorMessage: \"(RequestNotSent) A connection to the service could not be made. Please try again later.\"\r\n }\r\n };\r\n }\r\n\r\n if (!_.isEmpty(general)) dispatch(generalError(general, dispatch));\r\n if (!_.isEmpty(validation)) dispatch(validationError(validation));\r\n\r\n return;\r\n }\r\n\r\n emailValidityCheck(email, errorCode) {\r\n let error = [];\r\n if (email.length > 128) {\r\n // Email is over 128 characters. This person is a monster\r\n error.push({\r\n errorCode: errorCode,\r\n errorMessage: 'Email must be 128 characters or less.'\r\n });\r\n } else if (!this.validateEmail(email)) {\r\n // Invalid email\r\n error.push({\r\n errorCode: errorCode,\r\n errorMessage: 'Email address is invalid.'\r\n });\r\n }\r\n return error;\r\n }\r\n\r\n /**\r\n * Returns a patron found by patron ID\r\n * @param {Number} patronID Patron ID we want found\r\n * @param {Array} accounts Patron accounts tied to user account\r\n *\r\n * @return {Object} Returns a patron if found, undefined otherwise\r\n */\r\n findPatronInAccounts(patronID, accounts) {\r\n for (let patronAcct of accounts) {\r\n // Go through each patron account looking for matching patron\r\n let matchingPatron = _.findWhere(patronAcct.patrons, {patronID: patronID});\r\n // If a matching patron is found, return that patron\r\n if (_.isObject(matchingPatron)) return matchingPatron;\r\n }\r\n\r\n // Otherwise return undefined\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Returns a patron's account found by patron ID\r\n * @param {Number} patronID Patron ID we want found\r\n * @param {Array} accounts Patron accounts tied to user account\r\n *\r\n * @return {Object} Returns a patron if found, undefined otherwise\r\n */\r\n findAccountOfPatron(patronID, accounts) {\r\n for (let patronAcct of accounts) {\r\n // Go through each patron account looking for matching patron\r\n let matchingPatron = _.findWhere(patronAcct.patrons, {patronID: patronID});\r\n // If a matching patron is found, return that patron\r\n if (_.isObject(matchingPatron)) return patronAcct;\r\n }\r\n\r\n // Otherwise return undefined\r\n return;\r\n }\r\n\r\n /**\r\n * Returns a patron that is in a blocked account\r\n * @param {Number} patronID Patron ID we want found\r\n * @param {Array} accounts Patron accounts tied to user account\r\n *\r\n * @return {Object} Returns a blocked patron if found, undefined otherwise\r\n */\r\n patronInBlockedAccount(patronID, accounts) {\r\n for (let patronAcct of accounts) {\r\n if (patronAcct.paymentsProhibited === true) {\r\n let blockedPatron = _.findWhere(patronAcct.patrons, {patronID: patronID});\r\n if (!_.isUndefined(blockedPatron)) {\r\n return blockedPatron;\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n\r\n /**\r\n * Formats cart items (deposits, fees, etc) to fit the needs of the API.\r\n * Items in the front-end cart have additional info used in the UI.\r\n * @param {Object} item Cart item object\r\n *\r\n * @return {Object} API formatted cart object (depositDetails)\r\n */\r\n formatCartItem(item) {\r\n // Co-opted this to help with both the cart and scheduled deposits\r\n let amount = item.amount || item.depositAmount;\r\n return {\r\n patronID: item.patronID,\r\n checkingAccountID: item.checkingAccountID,\r\n depositAmount: amount,\r\n subAccountID: item.subAccountID,\r\n priceEach: item.priceEach,\r\n quantity: item.quantity\r\n };\r\n }\r\n\r\n /**\r\n * Picks validation errors that are tied to specific ids (i.e. 'username', 'email', etc)\r\n * @param {Array} validationErrors All current validation errors\r\n * @param {Array} ids Array of ids to pluck from all validation errors\r\n *\r\n * @return {Object} Error object with the ids as keys\r\n */\r\n getErrorsByID(validationErrors, ...ids) {\r\n let errors = {};\r\n // Can handle any number of arguments\r\n for (let arg of ids) {\r\n // If the ID matches an ID passed via argument\r\n // let matches = _.where(validationErrors, {domID: arg});\r\n let matches = _.filter(validationErrors, err => {\r\n return err.id.includes(arg);\r\n });\r\n\r\n if (!_.isEmpty(matches)) {\r\n let errorMsg = '';\r\n // Rare, but a single ID COULD have multiple errors\r\n for (let err of matches) {\r\n errorMsg += err.message;\r\n }\r\n errors[arg] = errorMsg;\r\n }\r\n }\r\n return errors;\r\n }\r\n\r\n /**\r\n * Gets patron account by patronAccountNum\r\n * @param {Array} patrons Array of all patron accounts\r\n * @param {Number} acctNum Patron account number of account to be plucked\r\n *\r\n * @return {Object} Patron account with matching account number, or undefined if none found\r\n */\r\n getPatronsByID(patrons, acctNum) {\r\n return _.findWhere(patrons, {patronAccountNum: acctNum});\r\n }\r\n\r\n /**\r\n * Gets a payment method based on\r\n *\r\n * Note - if the payment method array only contains a temp payment method\r\n * this will throw an exeption because the Cart component expects that a default_payment was set by the user.\r\n * Since the user never sets a default, we will return the first or only payment method\r\n *\r\n *\r\n *\r\n * @param {Array} methods Array of payment methods tied to user account\r\n * @param {String} id Stripe ID of payment we wish to get\r\n *\r\n * @return {Object} Payment method we wanted to find, or undefined if not found\r\n */\r\n getPaymentByStripeID(methods, id) {\r\n if (id === \"\" || _.isNull(id) || _.isUndefined(id)) {\r\n return _.first(methods);\r\n } else {\r\n return _.findWhere(methods, {stripeCardID: id});\r\n }\r\n }\r\n\r\n /**\r\n * Friendlier way to get item from session storage\r\n * @param {String} key Key of the item we want to get from session storage\r\n *\r\n * @return {Object} Object we wanted to get, undefined if not found\r\n */\r\n getFromSession(key) {\r\n let item;\r\n\r\n try {\r\n if (('sessionStorage' in window) && window.sessionStorage !== null) {\r\n item = sessionStorage.getItem(key);\r\n }\r\n if (item === null || item === 'undefined') return undefined;\r\n return JSON.parse(item);\r\n } catch (error) {\r\n return item;\r\n }\r\n }\r\n\r\n /**\r\n * Friendlier way to get item from local storage\r\n * @param {String} key Key of the item we want to get from local storage\r\n *\r\n * @return {Object} Object we wanted to get, undefined if not found\r\n */\r\n getFromStorage(key) {\r\n let item;\r\n\r\n try {\r\n if (('localStorage' in window) && window.localStorage !== null) {\r\n item = localStorage.getItem(key);\r\n }\r\n if (item === null || item === 'undefined') return undefined;\r\n return JSON.parse(item);\r\n } catch (error) {\r\n return item;\r\n }\r\n }\r\n\r\n /**\r\n * Filter the dismissed district messages\r\n * @param {Number} userID User ID to filter messages with\r\n * @param {Array} messages Array of all messages\r\n *\r\n * @return {Array} The difference between all messages and dismissed messages\r\n */\r\n getRelevantMessages(userID, messages) {\r\n let dismissedMessages = this.getFromStorage(String(userID) + ':dismissed-messages');\r\n if (_.isUndefined(dismissedMessages)) dismissedMessages = [];\r\n let relevantMessages = [];\r\n _.map(messages, message => {\r\n if (dismissedMessages.includes(message.messageID)) return;\r\n relevantMessages.push(message);\r\n });\r\n\r\n return relevantMessages;\r\n }\r\n\r\n /**\r\n * Checks to see if fees are stored in local storage. Redux-persist takes too long to load on refresh.\r\n *\r\n * @return {Bool} Whether or not fees are in local storage\r\n */\r\n hasFees() {\r\n let patronPersist = this.getFromStorage('reduxPersist:patrons');\r\n if (_.isUndefined(patronPersist)) return false;\r\n return !_.isEmpty(patronPersist.fees);\r\n }\r\n\r\n hasMessages() {\r\n let userPersist = this.getFromStorage('reduxPersist:user');\r\n if (_.isUndefined(userPersist)) return false;\r\n return !_.isUndefined(userPersist.messages);\r\n }\r\n\r\n hasmPowerStudents(patrons) {\r\n let mt5Students = false;\r\n if (_.isEmpty(patrons)) return mt5Students;\r\n for (let patronAcct of patrons) {\r\n for (let patron of patronAcct.patrons) {\r\n if (patron.schoolMT5) mt5Students = true;\r\n }\r\n }\r\n\r\n return mt5Students;\r\n }\r\n\r\n hasPatrons() {\r\n let patronPersist = this.getFromStorage('reduxPersist:patrons');\r\n if (_.isUndefined(patronPersist)) return false;\r\n return !_.isEmpty(patronPersist.patrons);\r\n }\r\n\r\n hasPaymentExpired(method) {\r\n if(_.isUndefined(method)) return false;\r\n\r\n let today = new Date();\r\n if (method.expYear > today.getFullYear()) {\r\n return false;\r\n } else if (method.expYear === today.getFullYear()) {\r\n if (method.expMonth >= today.getMonth() + 1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n willMethodExpire(method) {\r\n if(_.isUndefined(method)) return false;\r\n\r\n let today = new Date();\r\n if (method.expYear === today.getFullYear() && method.expMonth === today.getMonth() + 1) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n hasPaymentMethods() {\r\n let transPersist = this.getFromStorage('reduxPersist:trans');\r\n if (_.isUndefined(transPersist)) return false;\r\n return !_.isUndefined(transPersist.methods);\r\n }\r\n\r\n hasReceipts() {\r\n let cartPersist = this.getFromStorage('reduxPersist:cart');\r\n if (_.isUndefined(cartPersist)) return false;\r\n return !_.isEmpty(cartPersist.receipts);\r\n }\r\n\r\n hasScheduledDeposits() {\r\n let subPersist = this.getFromStorage('reduxPersist:sub');\r\n if (_.isUndefined(subPersist)) return false;\r\n return !_.isUndefined(subPersist.subscriptions);\r\n }\r\n\r\n hasTokenExpired(lastActivity, tokenLength) {\r\n const SESSION_TIMEOUT = tokenLength / 60;\r\n return this.minutesSince(lastActivity) >= SESSION_TIMEOUT;\r\n }\r\n\r\n hasUser() {\r\n let userPersist = this.getFromStorage('reduxPersist:user');\r\n if (_.isUndefined(userPersist)) return false;\r\n return (!_.isUndefined(userPersist.id) && !_.isUndefined(userPersist.userInfo.email));\r\n }\r\n\r\n /**\r\n * Returns whether or not the environment is mobile app\r\n */\r\n isApp() {\r\n return !_.isUndefined(window.Capacitor);\r\n }\r\n\r\n /**\r\n * Checks if the site falls under the mobile width\r\n * @return {Bool} True if site width is less than 992px\r\n */\r\n isMobile() {\r\n const MOBILE = 992;\r\n return window.innerWidth < MOBILE;\r\n }\r\n\r\n /**\r\n * Checks if there is limited screen width for element rendering\r\n * @return {Bool}\r\n */\r\n isSmallFormFactor() {\r\n const SMALLFORM = 400;\r\n return window.innerWidth < SMALLFORM;\r\n }\r\n\r\n /**\r\n * Checks whether or not a modal is currently open\r\n *\r\n * @return {Bool} True if modal is open, false...if it's not\r\n */\r\n isModalOpen() {\r\n let modal = document.querySelector('.modal.show');\r\n return modal !== null;\r\n }\r\n\r\n /**\r\n * Checks if n is a number or not.\r\n * Since _.isNumber returns true on NaN\r\n * @param {Number} n The thing we want to see if it's a number or not\r\n *\r\n * @return {Bool} True if it's a number\r\n */\r\n isNumber(n) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n\r\n /**\r\n * Checks if \"remember me\" was checked. If remember me is checked, the token is stored in\r\n * local storage. If it's not, it's stored in session storage.\r\n *\r\n * @return {Bool} True if token is in local storage\r\n */\r\n isPersisted() {\r\n // let cookie = document.cookie.match(/^(.*;)?\\s*token\\s*=\\s*[^;]+(.*)?$/);\r\n let token = this.getFromStorage('token');\r\n return !_.isUndefined(token);\r\n }\r\n\r\n /**\r\n * Check how many minutes it's been since the date passed\r\n * @param {Date} since Date to compare against\r\n *\r\n * @return {Bool} Number of minutes since the date passed\r\n */\r\n minutesSince(since) {\r\n const current = new Date();\r\n let diff = Math.abs(current - since);\r\n return Math.floor((diff / 1000) / 60);\r\n }\r\n\r\n /**\r\n * Turns an array of names into a string of \"a, b, & c\"\r\n * @param {Array} names Array of names. Doesn't have to be names I guess.\r\n *\r\n * @return {String} String of names joined together\r\n */\r\n multiNameString(names) {\r\n return [names.slice(0, -1).join(', '), names.slice(-1)[0]].join(names.length < 2 ? '' : ' & ');\r\n }\r\n\r\n /**\r\n * Returns a string created by an array of student names\r\n * @param {Array} students Array of student full names\r\n * @param {Boolean} first Whether or not to print just the first names\r\n *\r\n * @return {String} String of names joined together\r\n */\r\n nameFormat(students, first = false) {\r\n let names = _.map(students, name => {\r\n // Only return the first name\r\n if (first) {\r\n name = name.substr(0, name.indexOf(' '));\r\n }\r\n return name;\r\n });\r\n return this.multiNameString(names);\r\n }\r\n\r\n /**\r\n * Plucks first names from patron objects, returns as string\r\n * @param {Array} students Array of patron objects\r\n *\r\n * @return {String} String of first names\r\n */\r\n namesOnAccount(students) {\r\n let names = _.pluck(students, 'firstName');\r\n\r\n return this.multiNameString(names);\r\n }\r\n\r\n /**\r\n * Turns 1 into 1.00\r\n * @param {Event} e Event to normalize\r\n */\r\n normalizeInput(e) {\r\n if (_.isEmpty(e.target.value)) return;\r\n e.target.value = Number(e.target.value).toFixed(2);\r\n }\r\n\r\n /**\r\n * onInput validation to make sure only numbers are inputted. If the user\r\n * enters a non-number, the character is removed.\r\n * @param {Event} e Event to check against\r\n */\r\n numbersOnly(e) {\r\n const value = e.currentTarget.value;\r\n let validValue = '';\r\n _.map(value, char => {\r\n if (this.isNumber(char)) validValue += char;\r\n });\r\n // No need to set it every time. Would constantly be moving the cursor\r\n if (value !== validValue) e.currentTarget.value = validValue;\r\n }\r\n\r\n /**\r\n * onInput validation to make sure only numbers are inputted. If the user\r\n * enters a non-number, the character is removed. Adds decimals to the values atumatically\r\n * @param {Event} e Event to check against\r\n */\r\n moneyOnly(e) {\r\n const value = e.currentTarget.value;\r\n let validValue = '';\r\n\r\n _.map(value, char => {\r\n if (this.isNumber(char)) validValue += char;\r\n });\r\n\r\n let valueDisplay = (validValue/100).toFixed(2);\r\n e.currentTarget.value = valueDisplay === '0.00' ? '' : valueDisplay;\r\n }\r\n\r\n /**\r\n * Returns Utils information about the reauth\r\n * fingerprint dialog and modal\r\n * @return {Object} Reauth details\r\n */\r\n getReauthDialog() {\r\n return reauthDialog;\r\n }\r\n\r\n /**\r\n * Reauthenticates correctly based on environment\r\n * @param {Number} userID User ID to reauthenticate\r\n * @param {Function} dispatch Dispatch function\r\n */\r\n reauthenticate(userID, dispatch) {\r\n this.clearToken();\r\n reauthDialog.timestamp = Date.now();\r\n\r\n $('#reauth').modal({\r\n backdrop: 'static',\r\n keyboard: false\r\n });\r\n\r\n if(this.isApp()) {\r\n (async () => {\r\n reauthDialog.status = 1;\r\n const verified = await verifyBiometric('Sign in for \"My MealTime\"', 'Your session has expired. Please sign in with your finger to continue.', userID);\r\n\r\n if(verified) {\r\n reauthDialog.status = 0;\r\n let reauth = Date.now() - reauthDialog.timestamp < reauthDialog.timeout ? true : false\r\n\r\n const biometryData = JSON.parse(verified.password);\r\n const authHash = this.createHmacSHA1(String(biometryData.persistedUserID), biometryData.key);\r\n dispatch(pinSignIn(authHash.toString(), biometryData.pinToken, undefined, reauth));\r\n } else {\r\n reauthDialog.status = 0;\r\n return;\r\n }\r\n })();\r\n }\r\n }\r\n\r\n /**\r\n * Refreshes the site, and clears the cache to load new version of site.\r\n */\r\n reloadSiteAndCache() {\r\n // Refresh the page and clear the cache to get the new version\r\n location.reload(true);\r\n }\r\n\r\n /**\r\n * Converts rgb color string into a hex string\r\n * @param {String} rgb RGB color string\r\n *\r\n * @return {String} Color as a hex\r\n */\r\n rgb2hex(rgb) {\r\n rgb = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\r\n function hex(x) {\r\n return (\"0\" + parseInt(x).toString(16)).slice(-2);\r\n }\r\n return \"#\" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);\r\n }\r\n\r\n /**\r\n * remove white spaces and generate string id\r\n * @param {String} string meaningful element name\r\n * @return {String} string with no white spaces\r\n */\r\n setElementId(string) {\r\n return (string.replace(/\\s/g, \"\"));\r\n }\r\n\r\n /**\r\n * Sets the color of the app status bar based on the color of the header\r\n */\r\n setStatusBarColor() {\r\n const headerRGB = $('header').css('background-color');\r\n if (!_.isEmpty(headerRGB) && window.StatusBar) {\r\n StatusBar.backgroundColorByHexString(this.rgb2hex(headerRGB));\r\n }\r\n }\r\n\r\n /**\r\n * Stores the token based on login\r\n * @param {String} token Token to store\r\n * @param {Bool} persist Whether or not \"Remember me\" was checked\r\n */\r\n setToken(token, persist) {\r\n if (persist) {\r\n this.updateStorage('token', token);\r\n } else {\r\n this.updateSession('token', token);\r\n }\r\n // if (persist) document.cookie = 'token=' + token;\r\n }\r\n\r\n /**\r\n * Creates a temporary account ID for when patronAccountNum is null\r\n *\r\n * @return {Number} Negative number for temporary patronAccountNUm\r\n */\r\n tempAccountID() {\r\n const min = 100;\r\n const max = 999;\r\n return -1 * (Math.floor(Math.random() * (max - min)) + min);\r\n }\r\n\r\n /**\r\n * Prints time as a string\r\n * @param {Date} date Date with time to print\r\n *\r\n * @return {String} Time as hh:mm\r\n */\r\n timeFormat(date) {\r\n return date.toLocaleTimeString('en-US', {\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n hour12: true\r\n });\r\n }\r\n\r\n /**\r\n * Converts \"A string that looks like this\" to\r\n * \"A String That Looks Like This\"\r\n * @param {String} str String to convert\r\n *\r\n * @return {String} Title case string\r\n */\r\n toTitleCase(str) {\r\n return str.replace(/\\w\\S*/g, function(txt) {\r\n // There are more words that fit this,\r\n // but these are the only ones we will be using.\r\n const nonPrincipal = ['of', 'the'];\r\n if (nonPrincipal.includes(txt)) return txt;\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n });\r\n }\r\n\r\n /**\r\n * Removes any patron data for accounts that may have been removed\r\n * @param {Object} sub Scheduled deposit to \"trim\"\r\n */\r\n trimSubscription(sub, patrons) {\r\n let newSub = {...sub};\r\n let activePatrons = [];\r\n for (let dep of newSub.details) {\r\n let patronFound = this.findPatronInAccounts(dep.patron.patronID, patrons);\r\n let patronBlocked = this.patronInBlockedAccount(dep.patron.patronID, patrons);\r\n\r\n if (_.isUndefined(patronFound) || !_.isUndefined(patronBlocked)) {\r\n // If the patron is missing or blocked, don't add to array\r\n continue;\r\n }\r\n\r\n activePatrons.push(dep);\r\n }\r\n\r\n newSub.details = activePatrons;\r\n\r\n return newSub;\r\n }\r\n\r\n /**\r\n * Handles the changing and opening of the general use modal\r\n * @param {String} type Modal we want opened\r\n * @param {Object} props Props to pass to that modal\r\n */\r\n updateModal(type, props) {\r\n const detail = {\r\n type: type,\r\n props: props\r\n };\r\n document.dispatchEvent(new CustomEvent('update-modal', {detail: detail}));\r\n if (!this.isModalOpen()) {\r\n $('.gen-modal').modal({\r\n backdrop: 'static'\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Friendlier session setting function\r\n * @param {String} key Key of item to store\r\n * @param {Object} value Item to store\r\n */\r\n updateSession(key, value) {\r\n if (('sessionStorage' in window) && window.sessionStorage !== null) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n }\r\n\r\n /**\r\n * Friendlier local storage setting function\r\n * @param {String} key Key of item to store\r\n * @param {Object} value Item to store\r\n */\r\n updateStorage(key, value) {\r\n if (('localStorage' in window) && window.localStorage !== null) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n }\r\n\r\n /**\r\n * Email validation function\r\n * @param {String} email Email address to validate\r\n *\r\n * @return {Bool} Whether the email is valid\r\n */\r\n validateEmail(email) {\r\n let japRe = /[\\u3000-\\u303F]|[\\u3040-\\u309F]|[\\u30A0-\\u30FF]|[\\uFF00-\\uFFEF]|[\\u4E00-\\u9FAF]|[\\u2605-\\u2606]|[\\u2190-\\u2195]|\\u203B/g;\r\n if (japRe.test(email)) {\r\n return false;\r\n }\r\n //Mimicing API's email.\r\n //For this to work, there were changes that had to be made to translate\r\n //the lookaheads and lookbehinds used on the API as they are not supported by javascript.\r\n //For a description of regex logic go to link below.\r\n //https://github.com/dotnet/docs/blob/master/docs/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format.md\r\n const emailRe = /^(?:(?=\")(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"@)|(?!\")(([0-9a-z]((\\.(?!\\.))|[-!#$%&'*+\\/=?^`{}|~\\w])*)?[a-z0-9]@))((\\[(\\d{1,3}\\.){3}\\d{1,3}\\])|(([0-9a-z][-\\w]*[0-9a-z]*\\.)+[a-z0-9][-a-z0-9]{0,22}[a-z0-9]))$/i;\r\n return emailRe.test(email);\r\n }\r\n\r\n /**\r\n * Vibrate function\r\n * @param {Number} time Milliseconds to vibrate device\r\n */\r\n vibrate(time) {\r\n if (navigator && navigator.vibrate) {\r\n navigator.vibrate(time);\r\n }\r\n }\r\n\r\n /**\r\n * String to array\r\n * @param {Object} stringObject string object to parse\r\n * @param {String} delimiter regex delimiter\r\n * @return {Array} Splitted string array\r\n */\r\n stringToArray(stringObject, delimiter) {\r\n\r\n let splitted = [];\r\n\r\n if(stringObject.match(delimiter)) {\r\n stringObject.split(delimiter).map(function (val) {\r\n splitted.push(val);\r\n })\r\n } else {\r\n splitted.push(stringObject);\r\n }\r\n\r\n return splitted;\r\n }\r\n\r\n /**\r\n * Checks if amount is invalid or not\r\n * @param {String} inputString\r\n * @return {Bool} if dollar value valid\r\n */\r\n isInValidAmount(inputString) {\r\n let amount = Number(inputString);\r\n let isInvalid = false;\r\n\r\n if(amount > 0 && amount < 1) isInvalid = true;\r\n\r\n if(amount > 50000) isInvalid = true;\r\n\r\n return isInvalid;\r\n }\r\n\r\n //TODO Refactor\r\n /**\r\n * Check if account can make deposit\r\n *\r\n * @param {Object} patron\r\n * @return {Object} validations result\r\n */\r\n canDeposit(patron) {\r\n let result = {\r\n canDeposit: true,\r\n reason: '',\r\n showBalance: true,\r\n msg: ''\r\n };\r\n\r\n let defaultSchoolActiveStatus;\r\n let inActiveClassicStudent;\r\n let noCheckingAccount;\r\n let inActiveMPowerStudent;\r\n let studentSchoolName;\r\n\r\n //if patron obj does not have patrons. This obj was deleted from user profile\r\n if(_.isUndefined(patron.patrons)) {\r\n result = {\r\n canDeposit: false,\r\n reason: 'DeletedFromAccount',\r\n showBalance: false,\r\n msg: \"This student/s are no longer associated with your MyMealTime.com account.\"\r\n }\r\n return result;\r\n }\r\n\r\n //get the default student's school active status\r\n for(let stu of patron.patrons) {\r\n if(stu.patronID === patron.defaultPatronID) {\r\n defaultSchoolActiveStatus = stu.schoolActive;\r\n inActiveClassicStudent = (!stu.patronActive && !stu.schoolMT5);\r\n inActiveMPowerStudent = (!stu.patronActive && stu.schoolMT5);\r\n studentSchoolName = stu.schoolName;\r\n noCheckingAccount = (_.isNull(stu.posCheckingAccountActive) || _.isNull(stu.posCheckingAccountID)) ? true : false;\r\n }\r\n }\r\n\r\n //Inactive school or district\r\n if(!defaultSchoolActiveStatus || !patron.districtActive ) {\r\n result = {\r\n canDeposit: false,\r\n reason: 'InactiveSchoolOrDistrict',\r\n showBalance: false,\r\n msg: \"Your school is no longer accepting deposits or sharing information with you via this service. For more information, please contact the food service officials at your school or school district.\"\r\n }\r\n return result;\r\n }\r\n\r\n //Inactive Classic student\r\n if(inActiveClassicStudent) {\r\n result = {\r\n canDeposit: false,\r\n reason: 'InactiveClassicStudent',\r\n showBalance: false,\r\n msg: \"You may not make online deposits for this Cafeteria Account at this time. Please contact your school or school district for further assistance.\"\r\n }\r\n return result;\r\n }\r\n\r\n //blocked/prohibited patron account\r\n if(patron.paymentsProhibited) {\r\n result = {\r\n canDeposit: false,\r\n reason: 'Blocked/ProhibitedAccount',\r\n showBalance: true,\r\n msg: \"You may not make online deposits for this Cafeteria Account at this time. Please contact your school or school district for further assistance.\"\r\n }\r\n return result;\r\n }\r\n\r\n // Missing or inactive checking account (if a shared account, all students must meet this condition, otherwise the deposit is allowed)\r\n if (noCheckingAccount) {\r\n result = {\r\n canDeposit: false,\r\n reason: 'InactiveCheckingAccount',\r\n showBalance: true,\r\n msg: \"The school is not accepting deposits right now. Please try again later, or contact the food service officials at your school or school district for immediate assistance.\"\r\n }\r\n return result;\r\n }\r\n\r\n //mPowerUnavailable\r\n if(patron.lastPosDepositDateTimeUnavailable || _.isNull(patron.balance)) {\r\n result = {\r\n canDeposit: true,\r\n reason: 'mPowerUnavailable',\r\n showBalance: false,\r\n msg: \"The requested information from your school is temporarily unavailable, but should return shortly. For immediate assistance, please contact the food service officials at your school or school district.\"\r\n }\r\n return result;\r\n }\r\n\r\n //inactive and an mPower student\r\n if(inActiveMPowerStudent) {\r\n result = {\r\n canDeposit: true,\r\n reason: 'inActiveMPowerStudent',\r\n showBalance: true,\r\n msg: \"This student's enrollment status has been set to 'Inactive' by \" + studentSchoolName + \". Are you sure you want to add funds to their \" + studentSchoolName + \" Cafeteria Account?\"\r\n }\r\n return result;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Get Subscription that matches id\r\n *\r\n * @param {Object} id\r\n * @return {Object} subscription that matches id\r\n */\r\n getSubcriptionByID(scheduledDepositID) {\r\n let subPersist = this.getFromStorage('reduxPersist:sub');\r\n return _.findWhere(subPersist.subscriptions, {scheduledDepositID});\r\n }\r\n\r\n /**\r\n * Formats receipt items labels appropriately\r\n *\r\n * @param {Object} item\r\n * @param {String} context\r\n */\r\n formatSchoolFeeLabels(context, item) {\r\n let qty = '';\r\n let plural = '';\r\n\r\n if(item.quantity > 0) {\r\n qty = item.quantity;\r\n }\r\n\r\n if(context === 'receipt') {\r\n return item.patronNames + ' - ' + qty + ' ' + item.schoolFeeName + plural\r\n } else { //fee page\r\n return qty + ' ' + item.schoolFeeName + plural\r\n }\r\n\r\n }\r\n\r\n getPaymentByStripeIDFromStorage(id) {\r\n let transPersist = this.getFromStorage('reduxPersist:trans');\r\n if(_.isUndefined(transPersist)) {\r\n return {};\r\n } else {\r\n if(_.isUndefined(transPersist.methods)) {\r\n return {};\r\n } else {\r\n return _.findWhere(transPersist.methods, {stripeCardID: id});\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get CartKey from storage\r\n * @return {uuid} unique key of cart\r\n */\r\n getCartKey() {\r\n let cartPersist = this.getFromStorage('reduxPersist:cart');\r\n if (_.isUndefined(cartPersist)) return ''; //let the api give as an error\r\n return cartPersist.cartKey;\r\n }\r\n\r\n /**\r\n * Return a string containing the first normalChars characters\r\n * of string combined with maskedChars of the mask character\r\n *\r\n * @param {string} string String to mask\r\n * @param {number} normalChars Number of character to leave unmasked\r\n * @param {number} maskedChars Number of masked characters to append\r\n * @param {string} mask Character mask\r\n *\r\n * @return {string} maskedString\r\n */\r\n maskString(string, normalChars, maskedChars, mask) {\r\n let maskedString = '';\r\n\r\n for (let i = 0; i < normalChars; i++) {\r\n maskedString = maskedString + string.charAt(i);\r\n }\r\n\r\n for (let i = 0; i < maskedChars; i++) {\r\n maskedString = maskedString + mask;\r\n }\r\n\r\n return maskedString;\r\n }\r\n\r\n\r\n /**\r\n * Shallow check for iOS Safari\r\n */\r\n isMobileSafari() {\r\n //shallow check\r\n const ua = window.navigator.userAgent;\r\n const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);\r\n const webKit = !!ua.match(/WebKit/i);\r\n const chrmiOS = !ua.match(/CriOS/i);\r\n return (iOS && webKit && chrmiOS);\r\n }\r\n\r\n /**\r\n * Check for android device\r\n * @return {bool} User agent contains android\r\n */\r\n isAndroid() {\r\n return /(Android)/i.test(navigator.userAgent);\r\n }\r\n\r\n /**\r\n * Check if enter key was pressed and clicks target.\r\n * Should be used for adding accessibility access to\r\n * certain elements.\r\n *\r\n * @param {event} e Standard event\r\n */\r\n accessibleEnterKey(e) {\r\n if (e.key === \"Enter\") {\r\n e.currentTarget.click();\r\n }\r\n }\r\n\r\n /**\r\n * get current school year\r\n * @return {obj} school year obj\r\n */\r\n getSchoolYear() {\r\n let t = new Date();\r\n let month = t.getMonth();\r\n let year = t.getFullYear();\r\n\r\n let startYear = '';\r\n let endYear = '';\r\n let fromDate = '-07-01';\r\n let toDate = '-06-30';\r\n let adStart = (new Date(year + '/07/01'));\r\n let adEnd = (new Date(year + '/10/01'));\r\n let showAds = (t > adStart && t < adEnd);\r\n\r\n if (month >= 6) { // Between July - December\r\n startYear = year;\r\n endYear = (year + 1);\r\n fromDate = year + fromDate;\r\n toDate = (year + 1) + toDate;\r\n } else { // Into next year\r\n startYear = (year - 1);\r\n endYear = year;\r\n fromDate = (year - 1) + fromDate;\r\n toDate = year + toDate;\r\n }\r\n\r\n return {\r\n schoolStartDate: fromDate,\r\n schoolEndDate: toDate,\r\n schoolStartYear: startYear,\r\n schoolEndYear: endYear,\r\n showAds: showAds\r\n };\r\n }\r\n\r\n /**\r\n * generate a readable error message for screen readers\r\n * @param {errors} errors array {id, message}\r\n * @return {string} screen reader message\r\n */\r\n generateSROnlyErrorMsg(errors) {\r\n let msg = '';\r\n let customErrMsg = {\r\n pauseEndDate: {\r\n apiMessage: \"Not able to parse method input.\",\r\n custom: \"Invalid Date\"\r\n }\r\n };\r\n\r\n if (errors.length > 1) {\r\n msg = \"There are \" + errors.length + \" errors in the form.\";\r\n } else if (errors.length === 1) {\r\n msg = \"There is an error in the form.\";\r\n } else {\r\n msg = \"\";\r\n }\r\n let i = 1;\r\n for(let err of errors) {\r\n msg += \" \" + i++ + \" of \" + errors.length + \", \" + ((customErrMsg[err.id] && customErrMsg[err.id].apiMessage === err.message) ? customErrMsg[err.id].custom : err.message);\r\n }\r\n return msg;\r\n }\r\n\r\n /**\r\n * handle openning of links for web and mobile\r\n */\r\n openLink(url, target) {\r\n if (window.Capacitor) {\r\n (window.Capacitor.Plugins.Browser).open({ url: url})\r\n } else {\r\n window.open(url, target);\r\n }\r\n }\r\n\r\n /**\r\n * createHashKey\r\n * Creates secret key used in hashing function\r\n *\r\n * @return {string} Secret key\r\n */\r\n createHashKey() {\r\n return CryptoJS.lib.WordArray.random(64).toString();\r\n }\r\n\r\n /**\r\n * createHmacSHA1\r\n * Creates HmacSHA1 hash\r\n * @param {string} message Message to be hashed\r\n * @param {string} key Secret key used to create hash\r\n *\r\n * @return {object} Hashed object\r\n */\r\n createHmacSHA1(message, key) {\r\n return CryptoJS.HmacSHA1(message, key);\r\n }\r\n}\r\n\r\nconst UT = new Utils();\r\n\r\nexport default UT;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/js/utils.js","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-methods.js\n// module id = 59\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_defined.js\n// module id = 60\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-sap.js\n// module id = 61\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-primitive.js\n// module id = 62\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0;\n}\n\nvar NESTED_UPDATES = {\n initialize: function () {\n this.dirtyComponentsLength = dirtyComponents.length;\n },\n close: function () {\n if (this.dirtyComponentsLength !== dirtyComponents.length) {\n // Additional updates were enqueued by componentDidUpdate handlers or\n // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n // these new updates so that if A's componentDidUpdate calls setState on\n // B, B will update before the callback A's updater provided when calling\n // setState.\n dirtyComponents.splice(0, this.dirtyComponentsLength);\n flushBatchedUpdates();\n } else {\n dirtyComponents.length = 0;\n }\n }\n};\n\nvar UPDATE_QUEUEING = {\n initialize: function () {\n this.callbackQueue.reset();\n },\n close: function () {\n this.callbackQueue.notifyAll();\n }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n this.reinitializeTransaction();\n this.dirtyComponentsLength = null;\n this.callbackQueue = CallbackQueue.getPooled();\n this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction, {\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n destructor: function () {\n this.dirtyComponentsLength = null;\n CallbackQueue.release(this.callbackQueue);\n this.callbackQueue = null;\n ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n this.reconcileTransaction = null;\n },\n\n perform: function (method, scope, a) {\n // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n // with this transaction's wrappers around it.\n return Transaction.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n ensureInjected();\n return batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n var len = transaction.dirtyComponentsLength;\n !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0;\n\n // Since reconciling a component higher in the owner hierarchy usually (not\n // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n // them before their children by sorting the array.\n dirtyComponents.sort(mountOrderComparator);\n\n // Any updates enqueued while reconciling must be performed after this entire\n // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n // C, B could update twice in a single batch if C's render enqueues an update\n // to B (since B would have already updated, we should skip it, and the only\n // way we can know to do so is by checking the batch counter).\n updateBatchNumber++;\n\n for (var i = 0; i < len; i++) {\n // If a component is unmounted before pending changes apply, it will still\n // be here, but we assume that it has cleared its _pendingCallbacks and\n // that performUpdateIfNecessary is a noop.\n var component = dirtyComponents[i];\n\n // If performUpdateIfNecessary happens to enqueue any new updates, we\n // shouldn't execute the callbacks until the next render happens, so\n // stash the callbacks first\n var callbacks = component._pendingCallbacks;\n component._pendingCallbacks = null;\n\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var namedComponent = component;\n // Duck type TopLevelWrapper. This is probably always true.\n if (component._currentElement.type.isReactTopLevelWrapper) {\n namedComponent = component._renderedComponent;\n }\n markerName = 'React update: ' + namedComponent.getName();\n console.time(markerName);\n }\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n if (callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n }\n }\n }\n}\n\nvar flushBatchedUpdates = function () {\n // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n // array and perform any updates enqueued by mount-ready handlers (i.e.,\n // componentDidUpdate) but we need to check here too in order to catch\n // updates enqueued by setState callbacks and asap calls.\n while (dirtyComponents.length || asapEnqueued) {\n if (dirtyComponents.length) {\n var transaction = ReactUpdatesFlushTransaction.getPooled();\n transaction.perform(runBatchedUpdates, null, transaction);\n ReactUpdatesFlushTransaction.release(transaction);\n }\n\n if (asapEnqueued) {\n asapEnqueued = false;\n var queue = asapCallbackQueue;\n asapCallbackQueue = CallbackQueue.getPooled();\n queue.notifyAll();\n CallbackQueue.release(queue);\n }\n }\n};\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n ensureInjected();\n\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (This is called by each top-level update\n // function, like setState, forceUpdate, etc.; creation and\n // destruction of top-level components is guarded in ReactMount.)\n\n if (!batchingStrategy.isBatchingUpdates) {\n batchingStrategy.batchedUpdates(enqueueUpdate, component);\n return;\n }\n\n dirtyComponents.push(component);\n if (component._updateBatchNumber == null) {\n component._updateBatchNumber = updateBatchNumber + 1;\n }\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0;\n asapCallbackQueue.enqueue(callback, context);\n asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n injectReconcileTransaction: function (ReconcileTransaction) {\n !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0;\n ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n },\n\n injectBatchingStrategy: function (_batchingStrategy) {\n !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\n batchingStrategy = _batchingStrategy;\n }\n};\n\nvar ReactUpdates = {\n /**\n * React references `ReactReconcileTransaction` using this property in order\n * to allow dependency injection.\n *\n * @internal\n */\n ReactReconcileTransaction: null,\n\n batchedUpdates: batchedUpdates,\n enqueueUpdate: enqueueUpdate,\n flushBatchedUpdates: flushBatchedUpdates,\n injection: ReactUpdatesInjection,\n asap: asap\n};\n\nmodule.exports = ReactUpdates;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactUpdates.js\n// module id = 63\n// module chunks = 0","import axios from 'axios';\nimport axiosRetry from 'axios-retry';\nimport Utils from '../../common/js/utils.js';\nimport * as types from '../constants/SubConstants.js';\n\nimport {version} from '../../version.json';\n\nimport {removeRememberAlert} from './RememberAction.js'\n\naxiosRetry(axios, {retries: 3, retryCondition: (error) => {\n if (error.response.status === 500) return true;\n return false;\n}});\n\nconst currentTime = new Date();\n\nlet subCall = axios.create({\n baseURL: APP_API + 'ScheduledDeposit/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n});\n\nlet cartCall = axios.create({\n baseURL: APP_API + 'Deposit/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n});\n\nlet testCall = axios.create({\n baseURL: APP_API + 'Test/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n});\n\nexport function updateSubscriptionPaused(sub) {\n return function(dispatch) {\n subSetToken();\n dispatch({type: types.UPDATE_SUB});\n\n let apiBody = {\n scheduledDepositID: sub.id,\n paused: sub.isPaused,\n pauseEndDate: sub.pauseEndDate\n }\n subCall.post('/UpdateScheduledDepositPaused', apiBody)\n .then(response => {\n dispatch(updateSubscriptionSuccess(response.data));\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(updateSubscriptionFailure());\n });\n };\n}\n\nexport function getScheduledDeposits() {\n return function(dispatch) {\n subSetToken();\n dispatch({type: types.GET_SUBS});\n subCall.post('/GetScheduledDepositsByUserToken')\n .then(response => {\n dispatch(getScheduledDepositsSuccess(response.data));\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(getScheduledDepositsFailure());\n });\n };\n}\n\nfunction getScheduledDepositsSuccess(subs) {\n return {\n type: types.GET_SUBS_SUCCESS,\n payload: subs\n };\n}\n\nfunction getScheduledDepositsFailure() {\n return {\n type: types.GET_SUBS_FAILURE\n };\n}\n\nexport function loadSubscriptionForm(sub) {\n return {\n type: types.LOAD_SUB_FORM,\n payload: sub\n };\n}\n\nexport function updateSubscriptionForm(sub) {\n return {\n type: types.UPDATE_SUB_FORM,\n payload: sub\n };\n}\n\nexport function saveSubscriptionForm(sub, dispatch) {\n return function(dispatch){\n dispatch({type: types.SAVE_SUB_FORM});\n //calculate fee\n cartCall.defaults.headers.common['User-Token'] = Utils.checkForToken();\n\n cartCall.post('/CalculateTotalUserFee', {\n depositDetails: _.map(sub.getDeposits(), Utils.formatCartItem)\n })\n .then(response => {\n if (response.status === 200) {\n sub.setFee(response.data.totalUserFeeAmount);\n sub.setMinDepositAmount(response.data.minDepositAmount); \n dispatch(updateSubscriptionForm(sub));\n\n if(sub.getSubTotal() >= response.data.minDepositAmount ) {\n subCall.post('/CalculateNextScheduledDate', {\n scheduleTypeID: sub.interval,\n intervalID: sub.getIntervalID(),\n dayOfWeek: sub.dayOfWeek,\n pauseEndDate: sub.pauseEndDate\n })\n .then(response => {\n sub.nextScheduledDate = response.data.nextScheduledDate;\n dispatch(saveSubscriptionFormSuccess(sub, dispatch));\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(saveSubscriptionFormFailure());\n });\n }\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(saveSubscriptionFormFailure());\n });\n }\n}\n\nfunction saveSubscriptionFormSuccess(sub, dispatch) {\n Utils.updateModal('subscription-confirmation', {\n loadedSud: sub,\n dispatch: dispatch\n });\n return {\n type: types.SAVE_SUB_FORM_SUCCESS\n };\n}\n\nfunction saveSubscriptionFormFailure(sub) {\n return {\n type: types.SAVE_SUB_FORM_FAILURE\n };\n}\n\nexport function deleteSubscriptionForm() {\n return {\n type: types.DELETE_SUB_FORM\n };\n}\n\nexport function newSubscription(sub) {\n return {\n type: types.NEW_SUB,\n payload: sub // Only the default payment is sent\n };\n}\n\nexport function loadSubscription(sub) {\n return {\n type: types.LOAD_SUB,\n payload: sub\n };\n}\n\nexport function addNewSubscription(sub) {\n return function(dispatch) {\n subSetToken();\n dispatch({type: types.CREATE_SUB});\n\n subCall.post('/AddScheduledDeposit', sub.getApiBody())\n .then(response => {\n if (response.status === 200) {\n dispatch(addNewSubscriptionSuccess(response.data));\n }\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(addNewSubscriptionFailure());\n });\n };\n}\n\nfunction addNewSubscriptionSuccess(sub) {\n Utils.updateModal('confirm', {\n msg: 'You have successfully created a new scheduled deposit.',\n timeout: 3000,\n styleClass: 'level1'\n });\n\n return {\n type: types.CREATE_SUB_SUCCESS,\n payload: sub\n };\n}\n\nfunction addNewSubscriptionFailure() {\n return {\n type: types.CREATE_SUB_FAILURE\n };\n}\n\nexport function updateSubscription(sub) {\n return function(dispatch) {\n subSetToken();\n dispatch({type: types.UPDATE_SUB});\n\n let apiBody = sub.getApiBody();\n apiBody.scheduledDepositID = sub.id;\n\n subCall.post('/UpdateScheduledDeposit', apiBody)\n .then(response => {\n dispatch(updateSubscriptionSuccess(response.data));\n dispatch(\n removeRememberAlert({alert: \"scheduledDeposit\", scheduledDepositID: response.data.scheduledDepositID})\n );\n dispatch(\n removeRememberAlert({alert: \"scheduledDepositError\", scheduledDepositID: response.data.scheduledDepositID})\n );\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(updateSubscriptionFailure());\n });\n };\n}\n\nfunction updateSubscriptionSuccess(sub) {\n Utils.updateModal('confirm', {\n msg: 'Your settings have been saved.',\n timeout: 3000,\n styleClass: 'level1'\n });\n\n return {\n type: types.UPDATE_SUB_SUCCESS,\n payload: sub\n };\n}\n\nfunction updateSubscriptionFailure() {\n return {\n type: types.UPDATE_SUB_FAILURE\n };\n}\n\nexport function deleteSubscription(scheduledDepositID) {\n return function(dispatch) {\n subSetToken();\n dispatch({type: types.DELETE_SUB});\n\n subCall.post('/DeleteScheduledDeposit', {\n scheduledDepositID: scheduledDepositID\n })\n .then(response => {\n dispatch(deleteSubscriptionSuccess(scheduledDepositID));\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(deleteSubscriptionFailure());\n });\n };\n}\n\nfunction deleteSubscriptionSuccess(sub) {\n Utils.updateModal('confirm', {\n msg: 'You have successfully deleted a scheduled deposit.',\n timeout: 3000,\n styleClass: 'level1'\n });\n return {\n type: types.DELETE_SUB_SUCCESS,\n payload: sub\n };\n}\n\nfunction deleteSubscriptionFailure() {\n return {\n type: types.DELETE_SUB_FAILURE\n };\n}\n\nexport function getSubscriptionFee(deposits) {\n return function(dispatch) {\n cartCall.defaults.headers.common['User-Token'] = Utils.checkForToken();\n dispatch({type: types.CALC_SUB_FEE});\n if (_.isEmpty(deposits)) {\n dispatch(getSubscriptionFeeSuccess(0));\n return;\n }\n cartCall.post('/CalculateTotalUserFee', {\n depositDetails: _.map(deposits, Utils.formatCartItem)\n })\n .then(response => {\n if (response.status === 200) {\n dispatch(getSubscriptionFeeSuccess(response.data.totalUserFeeAmount));\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n dispatch(getSubscriptionFeeFailure());\n });\n };\n}\n\nexport function getSubscriptionFeeSuccess(fee) {\n return {\n type: types.CALC_SUB_FEE_SUCCESS,\n payload: fee\n };\n}\n\nfunction getSubscriptionFeeFailure() {\n return {\n type: types.CALC_SUB_FEE_FAILURE\n };\n}\n\nexport function validateScheduledDeposit(depositID) {\n return function(dispatch) {\n subSetToken();\n dispatch({type: types.VALIDATE_SUB});\n\n testCall.post('/ValidateScheduledDeposit', {\n scheduledDepositID: depositID\n })\n .then(response => {\n dispatch(validateScheduledDepositSuccess(depositID));\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(validateScheduledDepositFailure());\n });\n };\n}\n\nfunction validateScheduledDepositSuccess(response) {\n return {\n type: types.VALIDATE_SUB_SUCCESS\n };\n}\n\nfunction validateScheduledDepositFailure() {\n return {\n type: types.VALIDATE_SUB_FAILURE\n };\n}\n\nexport function runScheduledDeposit(depositID) {\n return function(dispatch) {\n subSetToken();\n dispatch({type: types.RUN_SUB});\n\n testCall.post('/ExecuteScheduledDeposit', {\n scheduledDepositID: depositID\n })\n .then(response => {\n dispatch(runScheduledDepositSuccess(depositID));\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(runScheduledDepositFailure());\n });\n };\n}\n\nfunction runScheduledDepositSuccess(response) {\n return {\n type: types.RUN_SUB_SUCCESS\n };\n}\n\nfunction runScheduledDepositFailure(response) {\n return {\n type: types.RUN_SUB_FAILURE\n };\n}\n\nexport function getResumeDate(sub) {\n return function(dispatch) {\n subSetToken();\n dispatch({type: types.GET_RESUME_DATE});\n\n subCall.post('/CalculateNextScheduledDate', {\n scheduleTypeID: sub.scheduleTypeId,\n intervalID: sub.intervalId,\n dayOfWeek: sub.dayOfWeek,\n pauseEndDate: null\n })\n .then(response => {\n dispatch(getResumeDateSuccess(response.data.nextScheduledDate, sub))\n })\n .catch(error => {\n Utils.dispatchError(error, dispatch);\n dispatch(getResumeDateFailure());\n });\n };\n}\n\nfunction getResumeDateSuccess(nextScheduledDate, sub) {\n let nextDate = Utils.dateFormat(Utils.convertFromDatetime(nextScheduledDate));\n let msg = \"Do you want to resume? The next scheduled deposit will take place on \" + nextDate + \".\"\n\n Utils.updateModal('confirm', {\n header: \"Resume this Scheduled Deposit\",\n msg: msg,\n okTitle: \"OK\",\n cancelable: true,\n clickHandler: () => {\n let updatedSub = {\n id: sub.scheduledDepositId,\n isPaused: false,\n pauseEndDate: null\n }\n sub.dispatch(updateSubscriptionPaused(updatedSub));\n }\n });\n return {\n type: types.GET_RESUME_DATE_SUCCESS\n }\n}\n\nfunction getResumeDateFailure() {\n return {\n type: types.GET_RESUME_DATE_FAILURE\n };\n}\n\nexport function subSetToken(token = Utils.checkForToken()) {\n subCall.defaults.headers.common['User-Token'] = token;\n return token;\n}\n\n\n// WEBPACK FOOTER //\n// app/common/actions/SubAction.js","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_metadata.js\n// module id = 65\n// module chunks = 0","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_typed-array.js\n// module id = 66\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/create-react-class/index.js\n// module id = 67\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: null,\n // currentTarget is set when dispatching; no use in copying it here\n currentTarget: emptyFunction.thatReturnsNull,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n if (process.env.NODE_ENV !== 'production') {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n if (defaultPrevented) {\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n } else {\n this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n }\n this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else if (typeof event.returnValue !== 'unknown') {\n // eslint-disable-line valid-typeof\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function () {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (typeof event.cancelBubble !== 'unknown') {\n // eslint-disable-line valid-typeof\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {\n this.isPersistent = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: emptyFunction.thatReturnsFalse,\n\n /**\n * `PooledClass` looks for `destructor` on each instance it releases.\n */\n destructor: function () {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n } else {\n this[propName] = null;\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n }\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\nif (process.env.NODE_ENV !== 'production') {\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function (target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function (constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function (target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\n}\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n var Super = this;\n\n var E = function () {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\n _assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n\n Class.Interface = _assign({}, Super.Interface, Interface);\n Class.augmentClass = Super.augmentClass;\n\n PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;\n\n/**\n * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {object} SyntheticEvent\n * @param {String} propName\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n process.env.NODE_ENV !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\\'re seeing this, ' + 'you\\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticEvent.js\n// module id = 68\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nmodule.exports = ReactCurrentOwner;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactCurrentOwner.js\n// module id = 69\n// module chunks = 0","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport isRetryAllowed from 'is-retry-allowed';\nvar namespace = 'axios-retry';\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\nexport function isNetworkError(error) {\n return !error.response && Boolean(error.code) && // Prevents retrying cancelled requests\n error.code !== 'ECONNABORTED' && // Prevents retrying timed out requests\n isRetryAllowed(error); // Prevents retrying unsafe errors\n}\nvar SAFE_HTTP_METHODS = ['get', 'head', 'options'];\nvar IDEMPOTENT_HTTP_METHODS = SAFE_HTTP_METHODS.concat(['put', 'delete']);\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\nexport function isRetryableError(error) {\n return error.code !== 'ECONNABORTED' && (!error.response || error.response.status >= 500 && error.response.status <= 599);\n}\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\nexport function isSafeRequestError(error) {\n if (!error.config) {\n // Cannot determine if the request can be retried\n return false;\n }\n\n return isRetryableError(error) && SAFE_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\n/**\n * @param {Error} error\n * @return {boolean}\n */\n\nexport function isIdempotentRequestError(error) {\n if (!error.config) {\n // Cannot determine if the request can be retried\n return false;\n }\n\n return isRetryableError(error) && IDEMPOTENT_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\n/**\n * @param {Error} error\n * @return {boolean | Promise}\n */\n\nexport function isNetworkOrIdempotentRequestError(error) {\n return isNetworkError(error) || isIdempotentRequestError(error);\n}\n/**\n * @return {number} - delay in milliseconds, always 0\n */\n\nfunction noDelay() {\n return 0;\n}\n/**\n * @param {number} [retryNumber=0]\n * @return {number} - delay in milliseconds\n */\n\n\nexport function exponentialDelay() {\n var retryNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var delay = Math.pow(2, retryNumber) * 100;\n var randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay\n\n return delay + randomSum;\n}\n/**\n * Initializes and returns the retry state for the given request/config\n * @param {AxiosRequestConfig} config\n * @return {Object}\n */\n\nfunction getCurrentState(config) {\n var currentState = config[namespace] || {};\n currentState.retryCount = currentState.retryCount || 0;\n config[namespace] = currentState;\n return currentState;\n}\n/**\n * Returns the axios-retry options for the current request\n * @param {AxiosRequestConfig} config\n * @param {AxiosRetryConfig} defaultOptions\n * @return {AxiosRetryConfig}\n */\n\n\nfunction getRequestOptions(config, defaultOptions) {\n return _objectSpread(_objectSpread({}, defaultOptions), config[namespace]);\n}\n/**\n * @param {Axios} axios\n * @param {AxiosRequestConfig} config\n */\n\n\nfunction fixConfig(axios, config) {\n if (axios.defaults.agent === config.agent) {\n delete config.agent;\n }\n\n if (axios.defaults.httpAgent === config.httpAgent) {\n delete config.httpAgent;\n }\n\n if (axios.defaults.httpsAgent === config.httpsAgent) {\n delete config.httpsAgent;\n }\n}\n/**\n * Checks retryCondition if request can be retried. Handles it's retruning value or Promise.\n * @param {number} retries\n * @param {Function} retryCondition\n * @param {Object} currentState\n * @param {Error} error\n * @return {boolean}\n */\n\n\nfunction shouldRetry(_x, _x2, _x3, _x4) {\n return _shouldRetry.apply(this, arguments);\n}\n/**\n * Adds response interceptors to an axios instance to retry requests failed due to network issues\n *\n * @example\n *\n * import axios from 'axios';\n *\n * axiosRetry(axios, { retries: 3 });\n *\n * axios.get('http://example.com/test') // The first request fails and the second returns 'ok'\n * .then(result => {\n * result.data; // 'ok'\n * });\n *\n * // Exponential back-off retry delay between requests\n * axiosRetry(axios, { retryDelay : axiosRetry.exponentialDelay});\n *\n * // Custom retry delay\n * axiosRetry(axios, { retryDelay : (retryCount) => {\n * return retryCount * 1000;\n * }});\n *\n * // Also works with custom axios instances\n * const client = axios.create({ baseURL: 'http://example.com' });\n * axiosRetry(client, { retries: 3 });\n *\n * client.get('/test') // The first request fails and the second returns 'ok'\n * .then(result => {\n * result.data; // 'ok'\n * });\n *\n * // Allows request-specific configuration\n * client\n * .get('/test', {\n * 'axios-retry': {\n * retries: 0\n * }\n * })\n * .catch(error => { // The first request fails\n * error !== undefined\n * });\n *\n * @param {Axios} axios An axios instance (the axios object or one created from axios.create)\n * @param {Object} [defaultOptions]\n * @param {number} [defaultOptions.retries=3] Number of retries\n * @param {boolean} [defaultOptions.shouldResetTimeout=false]\n * Defines if the timeout should be reset between retries\n * @param {Function} [defaultOptions.retryCondition=isNetworkOrIdempotentRequestError]\n * A function to determine if the error can be retried\n * @param {Function} [defaultOptions.retryDelay=noDelay]\n * A function to determine the delay between retry requests\n */\n\n\nfunction _shouldRetry() {\n _shouldRetry = _asyncToGenerator(function* (retries, retryCondition, currentState, error) {\n var shouldRetryOrPromise = currentState.retryCount < retries && retryCondition(error); // This could be a promise\n\n if (typeof shouldRetryOrPromise === 'object') {\n try {\n yield shouldRetryOrPromise;\n return true;\n } catch (_err) {\n return false;\n }\n }\n\n return shouldRetryOrPromise;\n });\n return _shouldRetry.apply(this, arguments);\n}\n\nexport default function axiosRetry(axios, defaultOptions) {\n axios.interceptors.request.use(config => {\n var currentState = getCurrentState(config);\n currentState.lastRequestTime = Date.now();\n return config;\n });\n axios.interceptors.response.use(null, /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (error) {\n var {\n config\n } = error; // If we have no information to retry the request\n\n if (!config) {\n return Promise.reject(error);\n }\n\n var {\n retries = 3,\n retryCondition = isNetworkOrIdempotentRequestError,\n retryDelay = noDelay,\n shouldResetTimeout = false\n } = getRequestOptions(config, defaultOptions);\n var currentState = getCurrentState(config);\n\n if (yield shouldRetry(retries, retryCondition, currentState, error)) {\n currentState.retryCount += 1;\n var delay = retryDelay(currentState.retryCount, error); // Axios fails merging this configuration to the default configuration because it has an issue\n // with circular structures: https://github.com/mzabriskie/axios/issues/370\n\n fixConfig(axios, config);\n\n if (!shouldResetTimeout && config.timeout && currentState.lastRequestTime) {\n var lastRequestDuration = Date.now() - currentState.lastRequestTime; // Minimum 1ms timeout (passing 0 or less to XHR means no timeout)\n\n config.timeout = Math.max(config.timeout - lastRequestDuration - delay, 1);\n }\n\n config.transformRequest = [data => data];\n return new Promise(resolve => setTimeout(() => resolve(axios(config)), delay));\n }\n\n return Promise.reject(error);\n });\n\n return function (_x5) {\n return _ref.apply(this, arguments);\n };\n }());\n} // Compatibility with CommonJS\n\naxiosRetry.isNetworkError = isNetworkError;\naxiosRetry.isSafeRequestError = isSafeRequestError;\naxiosRetry.isIdempotentRequestError = isIdempotentRequestError;\naxiosRetry.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError;\naxiosRetry.exponentialDelay = exponentialDelay;\naxiosRetry.isRetryableError = isRetryableError;\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios-retry/lib/esm/index.js\n// module id = 70\n// module chunks = 0","// See what I did there?! 👀\r\n// https://stripe.com/docs/elements/reference\r\nimport axios from 'axios';\r\nimport axiosRetry from 'axios-retry';\r\nimport Utils from '../js/utils.js';\r\nimport * as types from '../constants/TransConstants.js';\r\nimport {version} from '../../version.json';\r\n\r\nimport {updatePayment} from './CartAction.js';\r\nimport {removeRememberAlert} from './RememberAction.js';\r\n\r\n// If we get a 5XX error, lets retry the call\r\naxiosRetry(axios, {retries: 3, retryCondition: error => {\r\n if (error.response.status === 500) return true;\r\n return false;\r\n}});\r\n\r\nconst currentTime = new Date();\r\n\r\nlet transCall = axios.create({\r\n baseURL: APP_API + 'PaymentCard/',\r\n headers: {\r\n 'API-Changeset': API_CHANGESET,\r\n 'Version': version,\r\n 'Content-Type': 'application/json',\r\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\r\n }\r\n});\r\n\r\nexport function getPaymentMethods() {\r\n return function(dispatch) {\r\n dispatch({type: types.GET_PAYMENT_METHODS});\r\n transSetToken();\r\n return transCall.post('/GetPaymentCardsByUserToken')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getPaymentMethodsSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getPaymentMethodsFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function getPaymentMethodsSuccess(methods) {\r\n return {\r\n type: types.GET_PAYMENT_METHODS_SUCCESS,\r\n payload: methods\r\n };\r\n}\r\n\r\nexport function getPaymentMethodsFailure() {\r\n return {\r\n type: types.GET_PAYMENT_METHODS_FAILURE\r\n };\r\n}\r\n\r\nexport function addNewCard(card, isDefault, save, name) {\r\n return function(dispatch) {\r\n dispatch({type: types.ADD_CARD});\r\n stripe.createToken(card, {\r\n name: name\r\n })\r\n .then(response => {\r\n const supported = [\r\n 'Visa',\r\n 'MasterCard',\r\n 'Discover'\r\n ];\r\n if (response.error) {\r\n const stripeError = {\r\n stripeError: response.error\r\n };\r\n throw stripeError;\r\n }\r\n if (!supported.includes(response.token.card.type)) {\r\n return Promise.reject({\r\n response: {\r\n data: {\r\n errors: [\r\n {\r\n error: {\r\n errorCode: 'PaymentTypeInvalid',\r\n errorMessage: 'MealTime Online does not support ' + response.token.card.brand + ' cards.'\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n });\r\n }\r\n if (response.token.card.country !== \"US\") {\r\n return Promise.reject({\r\n response: {\r\n data: {\r\n errors: [\r\n {\r\n error: {\r\n errorCode: 'CardCountryNotSupported',\r\n errorMessage: 'My MealTime only accepts cards issued in the US.'\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n });\r\n }\r\n if (save) { // Save card for future use\r\n transSetToken();\r\n return transCall.post('/AddPaymentCard', {\r\n stripeTokenID: response.token.id,\r\n defaultPaymentMethod: isDefault\r\n });\r\n }\r\n\r\n // Don't save transaction\r\n dispatch(updatePayment(response.token.id));\r\n isDefault = false;\r\n const stripeCard = response.token.card;\r\n const fauxCard = {\r\n stripeCardID: response.token.id,\r\n brand: stripeCard.brand,\r\n expMonth: stripeCard.exp_month,\r\n expYear: stripeCard.exp_year,\r\n zipCode: stripeCard.address_zip,\r\n cardholderName: stripeCard.name,\r\n last4: stripeCard.last4 + \" (Temp)\"\r\n };\r\n return Promise.resolve({\r\n data: fauxCard\r\n });\r\n })\r\n .then(response => {\r\n dispatch(addNewCardSuccess(response.data, isDefault));\r\n if (isDefault) {\r\n dispatch(setDefaultPayment(response.data.stripeCardID));\r\n dispatch(updatePayment(response.data.stripeCardID));\r\n }\r\n //TODO: sets newly added payment method as cart's current payment. this will avoid to ask users for a new payment everytime they try to checkout using cart\r\n //dispatch(updatePayment(response.data.stripeCardID));\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(addNewCardFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function addNewCardSuccess(method, isDefault) {\r\n GA.event({\r\n category: 'Payment',\r\n action: 'Add New',\r\n value: method.brand\r\n });\r\n\r\n return {\r\n type: types.ADD_CARD_SUCCESS,\r\n payload: {\r\n method: method,\r\n isDefault: isDefault\r\n }\r\n };\r\n}\r\n\r\nexport function addNewCardFailure() {\r\n return {\r\n type: types.ADD_CARD_FAILURE\r\n };\r\n}\r\n\r\nexport function removeCard(cardID, defaultCardID) {\r\n return function(dispatch) {\r\n dispatch({type: types.DELETE_CARD});\r\n\r\n if(_.isNull(defaultCardID)) {\r\n defaultCardID = \"\";\r\n }\r\n\r\n //don't use temp card for defaultCard replacement\r\n if(!_.isNull(defaultCardID)) {\r\n if (defaultCardID.startsWith('tok_')) {\r\n defaultCardID = \"\";\r\n }\r\n }\r\n\r\n if (cardID.startsWith('tok_')) {\r\n // One time use card, skip the API call\r\n dispatch(removeCardSuccess(cardID, defaultCardID));\r\n return;\r\n }\r\n\r\n //todo: hack for echeck. replace when echeck implementation is finalized\r\n if(cardID.startsWith('eCheckAuth')) {\r\n Utils.sleep(5000);\r\n dispatch(removeCardSuccess(cardID, defaultCardID));\r\n return;\r\n }\r\n\r\n transSetToken();\r\n return transCall.post('/DeletePaymentCard', {\r\n stripePaymentCardID: cardID,\r\n defaultStripePaymentCardID: defaultCardID // New default card\r\n })\r\n .then(response => {\r\n dispatch(removeCardSuccess(cardID, defaultCardID));\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(removeCardFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function removeCardSuccess(cardID, defaultCardID) {\r\n GA.event({\r\n category: 'Payment',\r\n action: 'Remove'\r\n });\r\n return {\r\n type: types.DELETE_CARD_SUCCESS,\r\n payload: {\r\n cardID: cardID,\r\n defaultCardID: defaultCardID\r\n }\r\n };\r\n}\r\n\r\nexport function removeCardFailure() {\r\n return {\r\n type: types.DELETE_CARD_FAILURE\r\n };\r\n}\r\n\r\nexport function updateCard(stripeID,\r\n expMonth,\r\n expYear,\r\n zipCode,\r\n cardholderName,\r\n defaultPaymentMethod) {\r\n return function(dispatch) {\r\n dispatch({type: types.UPDATE_CARD});\r\n transSetToken();\r\n return transCall.post('/UpdatePaymentCard', {\r\n stripePaymentCardID: stripeID,\r\n expMonth: expMonth,\r\n expYear: expYear,\r\n zipCode: zipCode,\r\n cardholderName: cardholderName,\r\n defaultPaymentMethod: defaultPaymentMethod\r\n })\r\n .then(response => {\r\n dispatch(updateCardSuccess({\r\n card: response.data,\r\n isDefault: defaultPaymentMethod\r\n }));\r\n if(defaultPaymentMethod) {\r\n dispatch(updatePayment(response.data.stripeCardID));\r\n }\r\n\r\n dispatch(removeRememberAlert({alert: \"expiredMethod\", stripeCardID: response.data.stripeCardID}));\r\n dispatch(removeRememberAlert({alert: \"expiringMethod\", stripeCardID: response.data.stripeCardID}));\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(updateCardFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function updateCardSuccess(card) {\r\n GA.event({\r\n category: 'Payment',\r\n action: 'Add New',\r\n value: card.brand\r\n });\r\n return {\r\n type: types.UPDATE_CARD_SUCCESS,\r\n payload: card\r\n };\r\n}\r\n\r\nexport function updateCardFailure() {\r\n return {\r\n type: types.UPDATE_CARD_FAILURE\r\n };\r\n}\r\n\r\nexport function setDefaultPayment(stripeCardID) {\r\n return {\r\n type: types.NEW_DEFAULT,\r\n payload: stripeCardID\r\n };\r\n}\r\n\r\n//todo: hack for echeck. replace when echeck implementation is finalized\r\nexport function dummyECHECKAPI(eCheckInfo, isNew, inAuth) {\r\n let fauxECheck = null;\r\n\r\n if(isNew) {\r\n fauxECheck = {\r\n stripeCardID: 'eCheckPendingAuth',\r\n brand: 'eCheck',\r\n expMonth: 'NA',\r\n expYear: 'NA',\r\n zipCode: 'NA',\r\n cardholderName: eCheckInfo.echeckHolderName,\r\n last4: eCheckInfo.echeckAccountNumber\r\n };\r\n } else if(inAuth) {\r\n fauxECheck = {\r\n stripeCardID: 'eCheckAuth',\r\n brand: 'eCheck',\r\n expMonth: 'NA',\r\n expYear: 'NA',\r\n zipCode: 'NA',\r\n cardholderName: eCheckInfo.stripeECheck.cardholderName,\r\n last4: eCheckInfo.stripeECheck.last4\r\n };\r\n }\r\n\r\n return new Promise(function(resolve, reject) {\r\n setTimeout(function() {\r\n resolve({data: fauxECheck});\r\n }, 5000);\r\n });\r\n}\r\n\r\n//todo: hack for echeck. replace when echeck implementation is finalized\r\nexport function addNewECheck(eCheckInfo) {\r\n return function(dispatch) {\r\n dispatch({type: types.ADD_ECHECK});\r\n dummyECHECKAPI(eCheckInfo, true, false)\r\n .then(response => {\r\n dispatch(addNewECheckSuccess(response.data));\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(addNewECheckFailure());\r\n });\r\n };\r\n}\r\n\r\n//todo: hack for echeck. replace when echeck implementation is finalized\r\nexport function addNewECheckSuccess(method) {\r\n\r\n Utils.updateModal('confirm', {\r\n msg: 'Successfully added a new Echeck. Verification needed.',\r\n timeout: 3000,\r\n styleClass: 'level1'\r\n });\r\n\r\n //GA.event({\r\n // category: 'Payment',\r\n // action: 'Add New',\r\n // value: method.brand\r\n //});\r\n\r\n return {\r\n type: types.ADD_ECHECK_SUCCESS,\r\n payload: {\r\n method: method\r\n }\r\n };\r\n}\r\n\r\n//todo: hack for echeck. replace when echeck implementation is finalized\r\nexport function addNewECheckFailure() {\r\n return {\r\n type: types.ADD_ECHECK_FAILURE\r\n };\r\n}\r\n\r\n//todo: hack for echeck. replace when echeck implementation is finalized\r\nexport function authorizeeCheck(eCheckInfo) {\r\n // submit to API\\\r\n return function(dispatch) {\r\n dispatch({type: types.AUTH_ECHECK});\r\n dummyECHECKAPI(eCheckInfo, false, true)\r\n .then(response => {\r\n dispatch(authorizeeCheckSuccess(response.data));\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(authorizeeCheckFailure());\r\n });\r\n };\r\n}\r\n\r\n//todo: hack for echeck. replace when echeck implementation is finalized\r\nfunction authorizeeCheckSuccess(method) {\r\n // success\r\n Utils.updateModal('confirm', {\r\n msg: 'ECheck is ready for use.',\r\n timeout: 3000,\r\n styleClass: 'level1'\r\n });\r\n return {\r\n type: types.AUTH_ECHECK_SUCCESS,\r\n payload: {\r\n method: method\r\n }\r\n };\r\n}\r\n\r\n//todo: hack for echeck. replace when echeck implementation is finalized\r\nfunction authorizeeCheckFailure() {\r\n return {\r\n type: types.AUTH_ECHECK_FAILURE\r\n };\r\n}\r\n\r\nexport function resetPayment() {\r\n return {\r\n type: types.RESET_PAYMENT\r\n };\r\n}\r\n\r\nexport function transSetToken(token = Utils.checkForToken()) {\r\n transCall.defaults.headers.common['User-Token'] = token;\r\n return token;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/actions/TransAction.js","export const SIGN_IN_REQUEST = \"SIGN_IN_REQUEST\";\r\nexport const SIGN_IN_SUCCESS = \"SIGN_IN_SUCCESS\";\r\nexport const SIGN_IN_FAILURE = \"SIGN_IN_FAILURE\";\r\n\r\nexport const SIGN_OUT = \"SIGN_OUT\";\r\nexport const SIGN_OUT_SUCCESS = \"SIGN_OUT_SUCCESS\";\r\nexport const SIGN_OUT_FAILURE = \"SIGN_OUT_FAILURE\";\r\n\r\nexport const TRIGGER_REAUTH = \"TRIGGER_REAUTHENTICATE\";\r\nexport const REAUTH = \"REAUTHENTICATE\";\r\nexport const REAUTH_SUCCESS = \"REAUTHENTICATE_SUCCESS\";\r\nexport const REAUTH_FAILURE = \"REAUTHENTICATE_FAILURE\";\r\n\r\nexport const PIN_SIGN_IN = \"PIN_SIGN_IN\";\r\nexport const PIN_SIGN_IN_SUCCESS = \"PIN_SIGN_IN_SUCCESS\";\r\nexport const PIN_SIGN_IN_FAILURE = \"PIN_SIGN_IN_FAILURE\";\r\n\r\nexport const PIN_REAUTH = \"PIN_REAUTH\";\r\nexport const PIN_REAUTH_SUCCESS = \"PIN_REAUTH_SUCCESS\";\r\nexport const PIN_REAUTH_FAILURE = \"PIN_REAUTH_FAILURE\";\r\n\r\nexport const ADD_PIN = \"ADD_PIN\";\r\nexport const ADD_PIN_SUCCESS = \"ADD_PIN_SUCCESS\";\r\nexport const ADD_PIN_FAILURE = \"ADD_PIN_FAILURE\";\r\n\r\nexport const REM_PIN = \"REM_PIN\";\r\nexport const REM_PIN_SUCCESS = \"REM_PIN_SUCCESS\";\r\nexport const REM_PIN_FAILURE = \"REM_PIN_FAILURE\";\r\n\r\nexport const KEEP_ALIVE = \"KEEP_ALIVE\";\r\nexport const KEEP_ALIVE_SUCCESS = \"KEEP_ALIVE_SUCCESS\";\r\nexport const KEEP_ALIVE_FAILURE = \"KEEP_ALIVE_FAILURE\";\r\n\r\nexport const API_TEST = \"API_TEST\";\r\nexport const API_TEST_SUCCESS = \"API_TEST_SUCCESS\";\r\nexport const API_TEST_FAILURE = \"API_TEST_FAILURE\";\r\n\r\nexport const TRIGGER_COPPA = \"TRIGGER_COPPA\";\r\nexport const COPPA_VALIDATE_DOB = \"COPPA_VALIDATE_DOB\";\r\nexport const COPPA_VALIDATE_DOB_FAILURE = \"COPPA_VALIDATE_DOB_FAILURE\";\r\nexport const COPPA_VALIDATE_DOB_SUCCESS = \"COPPA_VALIDATE_DOB_SUCCESS\";\r\nexport const COPPA_CLEAR = \"COPPA_CLEAR\";\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/constants/AuthConstants.js","export const DELETE_USER = \"DELETE_USER\";\r\nexport const DELETE_USER_SUCCESS = \"DELETE_USER_SUCCESS\";\r\nexport const DELETE_USER_FAILURE = \"DELETE_USER_FAILURE\";\r\n\r\nexport const REGISTER_REQUEST = \"REGISTER_REQUEST\";\r\nexport const REGISTER_SUCCESS = \"REGISTER_SUCCESS\";\r\nexport const REGISTER_FAILURE = \"REGISTER_FAILURE\";\r\n\r\nexport const CLEAR_REGISTRATION = \"CLEAR_REGISTRATION_STATUS\";\r\n\r\nexport const UPDATE_USER = \"UPDATE_USER\";\r\nexport const UPDATE_USER_SUCCESS = \"UPDATE_USER_SUCCESS\";\r\nexport const UPDATE_USER_FAILURE = \"UPDATE_USER_FAILURE\";\r\n\r\nexport const GET_USER_BY_TOKEN = \"GET_USER_BY_TOKEN\";\r\nexport const GET_USER_BY_TOKEN_SUCCESS = \"GET_USER_BY_TOKEN_SUCCESS\";\r\nexport const GET_USER_BY_TOKEN_FAILURE = \"GET_USER_BY_TOKEN_FAILURE\";\r\n\r\nexport const GET_SECURITY_Q = \"GET_SECURITY_QUESTION\";\r\nexport const GET_SECURITY_Q_SUCCESS = \"GET_SECURITY_QUESTION_SUCCESS\";\r\nexport const GET_SECURITY_Q_FAILURE = \"GET_SECURITY_QUESTION_FAILURE\";\r\n\r\nexport const FORGOT_PASS = \"FORGOT_PASSWORD\";\r\nexport const FORGOT_PASS_SUCCESS = \"FORGOT_PASSWORD_SUCCESS\";\r\nexport const FORGOT_PASS_FAILURE = \"FORGOT_PASSWORD_FAILURE\";\r\n\r\nexport const FORGOT_USERNAME = \"FORGOT_USERNAME\";\r\nexport const FORGOT_USERNAME_SUCCESS = \"FORGOT_USERNAME_SUCCESS\";\r\nexport const FORGOT_USERNAME_FAILURE = \"FORGOT_USERNAME_FAILURE\";\r\n\r\nexport const SUBMIT_SECURITY_A = \"SUBMIT_SECURITY_ANSWER\";\r\nexport const SUBMIT_SECURITY_A_SUCCESS = \"SUBMIT_SECURITY_ANSWER_SUCCESS\";\r\nexport const SUBMIT_SECURITY_A_FAILURE = \"SUBMIT_SECURITY_ANSWER_FAILURE\";\r\n\r\nexport const CHECK_USERNAME = \"CHECK_USERNAME_AVAILABILITY\";\r\nexport const CHECK_USERNAME_SUCCESS = \"CHECK_USERNAME_AVAILABILITY_SUCCESS\";\r\nexport const CHECK_USERNAME_FAILURE = \"CHECK_USERNAME_AVAILABILITY_FAILURE\";\r\n\r\nexport const CHECK_EMAIL = \"CHECK_EMAIL_AVAILABILITY\";\r\nexport const CHECK_EMAIL_SUCCESS = \"CHECK_EMAIL_AVAILABILITY_SUCCESS\";\r\nexport const CHECK_EMAIL_FAILURE = \"CHECK_EMAIL_AVAILABILITY_FAILURE\";\r\nexport const CHECK_EMAIL_GHOST = \"CHECK_EMAIL_AVAILABILITY_GHOST\";\r\n\r\nexport const MAKE_DEPOSIT = \"MAKE_DEPOSIT\";\r\nexport const MAKE_DEPOSIT_SUCCESS = \"MAKE_DEPOSIT_SUCCESS\";\r\nexport const MAKE_DEPOSIT_FAILURE = \"MAKE_DEPOSIT_FAILURE\";\r\n\r\nexport const ADD_PAY_METHOD = \"ADD_PAYMENT_METHOD\";\r\nexport const ADD_PAY_METHOD_SUCCESS = \"ADD_PAYMENT_METHOD_SUCCESS\";\r\nexport const ADD_PAY_METHOD_FAILURE = \"ADD_PAYMENT_METHOD_FAILURE\";\r\n\r\nexport const RESET_REG = \"RESET_REGISTRATION\";\r\nexport const CLEAR_USER_VAL = \"CLEAR_USER_VALIDATION\";\r\nexport const CLEAR_EMAIL_VAL = \"CLEAR_EMAIL_VALIDATION\";\r\nexport const CLEAR_UPDATE_VAL = \"CLEAR_UPDATE_VALIDATION\";\r\n\r\nexport const GET_MESSAGES = \"GET_MESSAGES\";\r\nexport const GET_MESSAGES_SUCCESS = \"GET_MESSAGES_SUCCESS\";\r\nexport const GET_MESSAGES_FAILURE = \"GET_MESSAGES_FAILURE\";\r\n\r\nexport const GET_NOTIF_SETTINGS = \"GET_NOTIFICATION_SETTINGS\";\r\nexport const GET_NOTIF_SETTINGS_SUCCESS = \"GET_NOTIFICATION_SETTINGS_SUCCESS\";\r\nexport const GET_NOTIF_SETTINGS_FAILURE = \"GET_NOTIFICATION_SETTINGS_FAILURE\";\r\n\r\nexport const UPDATE_PUSH_GLOBAL = \"UPDATE_PUSH_GLOBAL\";\r\nexport const UPDATE_PUSH_GLOBAL_SUCCESS = \"UPDATE_PUSH_GLOBAL_SUCCESS\";\r\nexport const UPDATE_PUSH_GLOBAL_FAILURE = \"UPDATE_PUSH_GLOBAL_FAILURE\";\r\n\r\nexport const UPDATE_NOTIF_SETTINGS = \"UPDATE_NOTIFICATION_SETTINGS\";\r\nexport const UPDATE_NOTIF_SETTINGS_SUCCESS = \"UPDATE_NOTIFICATION_SETTINGS_SUCCESS\";\r\nexport const UPDATE_NOTIF_SETTINGS_FAILURE = \"UPDATE_NOTIFICATION_SETTINGS_FAILURE\";\r\n\r\nexport const NEW_USER_TOUR = \"NEW_USER_TOUR\";\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/constants/UserConstants.js","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_add-to-unscopables.js\n// module id = 74\n// module chunks = 0","module.exports = false;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_library.js\n// module id = 75\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_meta.js\n// module id = 76\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path),\n pathname = _parsePath.pathname,\n search = _parsePath.search,\n hash = _parsePath.hash;\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path),\n pathname = _parsePath2.pathname,\n search = _parsePath2.search,\n hash = _parsePath2.hash;\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path),\n search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename,\n pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/PathUtils.js\n// module id = 77\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\n\nfunction isValidChild(object) {\n return object == null || React.isValidElement(object);\n}\n\nexport function isReactChildren(object) {\n return isValidChild(object) || Array.isArray(object) && object.every(isValidChild);\n}\n\nfunction createRoute(defaultProps, props) {\n return _extends({}, defaultProps, props);\n}\n\nexport function createRouteFromReactElement(element) {\n var type = element.type;\n var route = createRoute(type.defaultProps, element.props);\n\n if (route.children) {\n var childRoutes = createRoutesFromReactChildren(route.children, route);\n\n if (childRoutes.length) route.childRoutes = childRoutes;\n\n delete route.children;\n }\n\n return route;\n}\n\n/**\n * Creates and returns a routes object from the given ReactChildren. JSX\n * provides a convenient way to visualize how routes in the hierarchy are\n * nested.\n *\n * import { Route, createRoutesFromReactChildren } from 'react-router'\n *\n * const routes = createRoutesFromReactChildren(\n * \n * \n * \n * \n * )\n *\n * Note: This method is automatically used when you provide children\n * to a component.\n */\nexport function createRoutesFromReactChildren(children, parentRoute) {\n var routes = [];\n\n React.Children.forEach(children, function (element) {\n if (React.isValidElement(element)) {\n // Component classes may have a static create* method.\n if (element.type.createRouteFromReactElement) {\n var route = element.type.createRouteFromReactElement(element, parentRoute);\n\n if (route) routes.push(route);\n } else {\n routes.push(createRouteFromReactElement(element));\n }\n }\n });\n\n return routes;\n}\n\n/**\n * Creates and returns an array of routes from the given object which\n * may be a JSX route, a plain object route, or an array of either.\n */\nexport function createRoutes(routes) {\n if (isReactChildren(routes)) {\n routes = createRoutesFromReactChildren(routes);\n } else if (routes && !Array.isArray(routes)) {\n routes = [routes];\n }\n\n return routes;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/RouteUtils.js\n// module id = 78\n// module chunks = 0","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_has.js\n// module id = 79\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\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 warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\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\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\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 // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/warning/browser.js\n// module id = 80\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 81\n// module chunks = 0","import * as types from '../constants/RememberConstants.js';\r\n\r\nexport function updateRemember(username) {\r\n return {\r\n type: types.UPDATE_REMEMBER_ME,\r\n payload: {\r\n username: username\r\n }\r\n };\r\n}\r\n\r\nexport function addRememberAlert(alert) {\r\n return {\r\n type: types.ADD_REMEMBER_ALERT,\r\n payload: {\r\n alert: alert\r\n }\r\n };\r\n}\r\n\r\nexport function removeRememberAlert(alert) {\r\n return {\r\n type: types.REMOVE_REMEMBER_ALERT,\r\n payload: {\r\n alert: alert\r\n }\r\n };\r\n}\n\n\n// WEBPACK FOOTER //\n// app/common/actions/RememberAction.js","import React from 'react';\r\n\r\nimport './LeftCol.scss';\r\n\r\n/**\r\n * Left Col\r\n * Left column content. Exported parent component.\r\n * Becomes 100% of page content on screen < tablet\r\n * For use if page has a left and right col content.\r\n * Only in use on the dashboard at the moment.\r\n */\r\nclass LeftCol extends React.Component {\r\n render() {\r\n return (\r\n
\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeftCol;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/LeftCol/LeftCol.jsx","import React from 'react';\r\n\r\nimport './RightCol.scss';\r\n\r\n/**\r\n * Right Col\r\n * Right column content. Exported parent component.\r\n * Hidden on screen < tablet\r\n * For use if page has a left and right col content.\r\n * Only in use on the dashboard at the moment.\r\n */\r\nclass RightCol extends React.Component {\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default RightCol;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/RightCol/RightCol.jsx","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-instance.js\n// module id = 85\n// module chunks = 0","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_for-of.js\n// module id = 86\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-create.js\n// module id = 87\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopn.js\n// module id = 88\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys.js\n// module id = 89\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_property-desc.js\n// module id = 90\n// module chunks = 0","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine-all.js\n// module id = 91\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-species.js\n// module id = 92\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-absolute-index.js\n// module id = 93\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_uid.js\n// module id = 94\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_validate-collection.js\n// module id = 95\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t var block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/evpkdf.js\n// module id = 96\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '/';\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Actions.POP;\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!object.path, 'Location descriptor objects should have a `pathname`, not a `path`.') : void 0;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) {\n var keysofA = Object.keys(a);\n var keysofB = Object.keys(b);\n return keysofA.length === keysofB.length && keysofA.every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n }\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/LocationUtils.js\n// module id = 97\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\nvar standardReleaser = function (instance) {\n var Klass = this;\n !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fourArgumentPooler: fourArgumentPooler\n};\n\nmodule.exports = PooledClass;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/PooledClass.js\n// module id = 98\n// module chunks = 0","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/each.js\n// module id = 99\n// module chunks = 0","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isArray.js\n// module id = 100\n// module chunks = 0","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isObject.js\n// module id = 101\n// module chunks = 0","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FocusTrap from 'focus-trap-react';\r\n\r\nimport Deposit from '../Deposit/Deposit.jsx';\r\nimport SignOut from '../SignOut/SignOut.jsx';\r\nimport Confirmation from '../Confirmation/Confirmation.jsx';\r\nimport District from '../District/District.jsx';\r\nimport CheckValidation from '../CheckValidation/CheckValidation.jsx';\r\nimport MasterOption from '../MasterOption/MasterOption.jsx';\r\nimport ACHValidation from '../ACHValidation/ACHValidation.jsx';\r\nimport AreYouSure from '../AreYouSure/AreYouSure.jsx';\r\nimport AccountInfo from '../../AccountInfo/AccountInfo.jsx';\r\nimport ExistingPayment from '../../ExistingPayment/ExistingPayment.jsx';\r\nimport NewPayment from '../../NewPayment/NewPayment.jsx';\r\nimport Receipt from '../../Receipt/Receipt.jsx';\r\nimport SubSetting from '../../SubSetting/SubSetting.jsx';\r\nimport Cart from '../../Cart/Cart.jsx';\r\nimport StudentInfo from '../../StudentInfo/StudentInfo.jsx';\r\nimport CoppaValidation from '../CoppaValidation/CoppaValidation.jsx';\r\nimport CartConfirmation from '../CartConfirmation/CartConfirmation.jsx';\r\nimport Warning from '../Warning/Warning.jsx';\r\nimport SchPause from '../SchPause/SchPause.jsx';\r\nimport ToolTip from '../../ToolTip/ToolTip.jsx';\r\nimport PaymentMethodConfirmation from '../PaymentMethodConfirmation/PaymentMethodConfirmation.jsx';\r\n\r\n// http://xabikos.com/2015/10/03/Webpack-aliases-and-relative-paths/\r\n// import SubInfo from 'SubInfo';\r\nimport SubscriptionConfirmation from 'SubscriptionConfirmation';\r\nimport SubscriptionForm from 'SubscriptionForm';\r\nimport {clearValidationErrors} from '../../../actions/ErrorAction.js';\r\nimport './Modal.scss';\r\n\r\n/**\r\n * Since we use modals a lot, and are switching between content\r\n * inside of them, I figured it would be best to just have ONE modal\r\n * with a state that changes based on the current need.\r\n *\r\n * No need to update specific modal titles or content using jQuery\r\n * or use a lot of confusing calls. Just set the modal type and this\r\n * component will take care of the rest.\r\n */\r\nclass Modal extends React.Component {\r\n constructor() {\r\n super();\r\n this._isMounted = false;\r\n this.state = {\r\n trapActive: false,\r\n body:
Uh oh!
,\r\n header: 'Modal'\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const self = this;\r\n this._isMounted = true;\r\n const enableTrap = this.enableTrap.bind(this);\r\n document.addEventListener('update-modal', this.switchModalContent.bind(this));\r\n\r\n $(this.modal).on('hidden.bs.modal', function(e) {\r\n document.removeEventListener('keydown', enableTrap);\r\n const context = this.innerText;\r\n // When closing the modal, make sure the user can't go back to a stale state\r\n self.setState({\r\n trapActive: false,\r\n id: undefined,\r\n bodyComponent: undefined,\r\n prevState: undefined,\r\n body: undefined\r\n });\r\n\r\n document.dispatchEvent(new CustomEvent('rove-on-modals', {detail: {\r\n modalShown: false,\r\n checkpoint: document.activeElement,\r\n context: context\r\n }}));\r\n });\r\n\r\n $(this.modal).on('shown.bs.modal', function(e) {\r\n document.addEventListener('keydown', enableTrap);\r\n });\r\n\r\n $(this.modal).on('show.bs.modal', function(e) {\r\n const context = this.innerText;\r\n document.dispatchEvent(new CustomEvent('rove-on-modals', {detail: {\r\n // When closing the modal, make sure the user can't go back to a stale state\r\n modalShown: true,\r\n checkpoint: document.activeElement,\r\n context: context\r\n }}));\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n switchModalContent(e) {\r\n let bodyComponent =
Uh oh!
;\r\n let headerText = 'Broken!';\r\n let id = 'modal';\r\n let prevState;\r\n let headerNames = '';\r\n let headerSchoolDistrict = '';\r\n let closeHandler = null;\r\n\r\n switch (e.detail.type) {\r\n case 'deposit':\r\n // Modal content needs a key, otherwise it won't rerender on prop change\r\n bodyComponent = ;\r\n headerText = 'Make a deposit for ';\r\n id = 'deposit-modal';\r\n headerNames = e.detail.props.name;\r\n headerSchoolDistrict = e.detail.props.districtName;\r\n break;\r\n case 'cart':\r\n bodyComponent = ;\r\n headerText = 'Secure Checkout';\r\n id = 'cart-modal';\r\n break;\r\n case 'cart-confirm':\r\n bodyComponent = ;\r\n headerText = 'Confirm Transaction Amount';\r\n id = 'cart-confirm';\r\n break;\r\n case 'confirm':\r\n bodyComponent = ;\r\n headerText = e.detail.props.header;\r\n id = 'confirm-modal';\r\n if (!e.detail.props.cancelable) {\r\n closeHandler = e.detail.props.clickHandler;\r\n }\r\n break;\r\n case 'confirm-tran':\r\n bodyComponent = ;\r\n headerText = 'Transaction Successful!';\r\n id = 'confirm-modal';\r\n break;\r\n case 'payment-select':\r\n bodyComponent = ;\r\n headerText = e.detail.props.header || 'Select a payment method';\r\n id = 'payment-modal';\r\n if (this.state.id &&\r\n this.state.id !== 'new-payment-modal' &&\r\n this.state.id !== 'confirm-modal') prevState = this.state;\r\n if (e.detail.props.replacingDefault) prevState = this.state;\r\n break;\r\n case 'new-payment':\r\n // cart prop is whether or not the card is being edited from the cart\r\n bodyComponent = ;\r\n if (_.isObject(e.detail.props.payment)) {\r\n headerText = 'Edit payment method';\r\n } else {\r\n headerText = 'Add a payment method';\r\n }\r\n id = 'new-payment-modal';\r\n if (this.state.id &&\r\n this.state.id !== 'confirm-modal') prevState = this.state;\r\n break;\r\n case 'delete-payment':\r\n bodyComponent = ;\r\n headerText = '';\r\n id = 'delete-payment';\r\n prevState = this.state;\r\n break;\r\n case 'edit-echeck':\r\n // cart prop is whether or not the card is being edited from the cart\r\n bodyComponent = ;\r\n if (_.isObject(e.detail.props.payInfo)) {\r\n headerText = 'Edit payment method';\r\n } else {\r\n headerText = 'Unsupported payment method';\r\n }\r\n id = 'new-payment-modal';\r\n if (this.state.id &&\r\n this.state.id !== 'confirm-modal') prevState = this.state;\r\n break;\r\n case 'receipt':\r\n bodyComponent = ;\r\n headerText = 'Receipt';\r\n id = 'receipt-modal';\r\n break;\r\n case 'student':\r\n // Pass the info the the component, let it figure out what to display\r\n bodyComponent = ;\r\n headerText = '';\r\n id = 'student-modal';\r\n break;\r\n case 'account':\r\n bodyComponent = ;\r\n headerText = '';\r\n id = 'account-modal';\r\n break;\r\n case 'add-student':\r\n bodyComponent = ;\r\n headerText = 'Add a new student';\r\n id = 'account-modal';\r\n break;\r\n case 'district':\r\n bodyComponent = ;\r\n headerText = 'Message from school district';\r\n id = 'district-modal';\r\n break;\r\n case 'subscription-form':\r\n bodyComponent = ;\r\n headerText = '';\r\n id = 'sub-modal';\r\n break;\r\n case 'subscription-confirmation':\r\n bodyComponent = ;\r\n headerText = 'Scheduled Deposit: ' + e.detail.props.loadedSud.generateSentence(true);\r\n id = 'sub-modal';\r\n break;\r\n\r\n case 'settings':\r\n bodyComponent = ;\r\n headerText = '';\r\n switch (e.detail.props.load) {\r\n case 'payment':\r\n headerText = 'Payment Settings';\r\n break;\r\n case 'account':\r\n headerText = 'Account Settings';\r\n break;\r\n case 'notification':\r\n headerText = 'Notification Settings';\r\n break;\r\n default:\r\n headerText = ' ';\r\n }\r\n id = 'setting-modal';\r\n break;\r\n case 'sign-out':\r\n bodyComponent = ;\r\n headerText = 'Sign Out';\r\n id = 'sign-out-modal';\r\n break;\r\n case 'master':\r\n bodyComponent = ;\r\n headerText = e.detail.props.headerTxt;\r\n id = 'option-modal';\r\n break;\r\n case 'echeck':\r\n bodyComponent = ;\r\n headerText = 'Validate eCheck';\r\n id = 'echeck-modal';\r\n break;\r\n case 'ach':\r\n bodyComponent = ;\r\n headerText = ' ACH Authorization';\r\n id = 'ach-modal';\r\n break;\r\n case 'areYouSure':\r\n bodyComponent = ;\r\n headerText = '';\r\n id = 'sure-modal';\r\n break;\r\n case 'coppa':\r\n bodyComponent = ;\r\n headerText = '';\r\n id = 'coppa-validation';\r\n break;\r\n case 'warning':\r\n bodyComponent = ;\r\n headerText = e.detail.props.modalTitle || 'Warning';\r\n id = 'warning';\r\n break;\r\n case 'pause-sch':\r\n bodyComponent = ;\r\n headerText = 'Pause this Scheduled Deposit';\r\n id = 'sch-pause';\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n body: bodyComponent,\r\n header: headerText,\r\n id: id,\r\n prevState: prevState,\r\n headerNames: headerNames,\r\n headerSchoolDistrict: headerSchoolDistrict,\r\n styleClass: _.isUndefined(e.detail.props) ?\r\n undefined :\r\n e.detail.props.styleClass,\r\n closeHandler: closeHandler\r\n });\r\n }\r\n }\r\n\r\n getModalBodyClass(id) {\r\n let customClass = \"\";\r\n\r\n switch (id) {\r\n case 'coppa-validation':\r\n customClass = \" coppa\";\r\n break;\r\n case 'sch-pause':\r\n if(!Utils.isMobile()) {\r\n customClass = \" coppa\";\r\n } else {\r\n customClass = '';\r\n }\r\n break;\r\n default:\r\n customClass = '';\r\n break;\r\n }\r\n return customClass;\r\n }\r\n\r\n getModalContentClass() {\r\n return Utils.isMobileSafari() && !Utils.isApp() ?\r\n \"modal-content is-m-safari \" : \"modal-content \";\r\n }\r\n\r\n goBack(e) {\r\n if (this._isMounted && this.state.prevState) {\r\n //clear validation errors coming back to the previos state\r\n this.props.dispatch(clearValidationErrors());\r\n this.setState(this.state.prevState);\r\n }\r\n }\r\n\r\n resetModal() {\r\n this.props.dispatch(clearValidationErrors());\r\n $('.gen-modal').modal('hide');\r\n if (this._isMounted) {\r\n this.setState({\r\n trapActive: false,\r\n body: undefined,\r\n id: undefined,\r\n prevState: undefined\r\n });\r\n }\r\n }\r\n\r\n enableTrap(e) {\r\n if((e.shiftKey && e.keyCode === 9) || e.keyCode === 9) {\r\n if(this.state.trapActive) return;\r\n this.setState({\r\n trapActive: true\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n let trapActive = this.state.trapActive;\r\n if(trapActive) {\r\n if(this.state.styleClass === \"level1\") trapActive = false;\r\n if(!_.isUndefined(this.modal)) {\r\n if(this.modal.classList.contains('ghost')) trapActive = false;\r\n }\r\n }\r\n\r\n return (\r\n this.modal = node}\r\n aria-labelledby=\"gen-modal-label\"\r\n >\r\n
\r\n \r\n
\r\n {\r\n _.isEmpty(this.state.header) ?\r\n null :\r\n
\r\n \r\n {this.state.header}\r\n {this.state.headerNames}\r\n {this.state.headerSchoolDistrict === '' ?\r\n null :\r\n \" at \"\r\n }\r\n {this.state.headerSchoolDistrict === '' ?\r\n null :\r\n {this.state.headerSchoolDistrict}\r\n }\r\n \r\n {\r\n this.state.id === 'cart-modal' ?\r\n \"NortonSecured\" :\r\n null\r\n }\r\n {\r\n this.state.id === 'warning' ?\r\n :\r\n null\r\n }\r\n \r\n ×\r\n \r\n
\r\n }\r\n
\r\n {\r\n _.isEmpty(this.state.header) ?\r\n \r\n ×\r\n :\r\n null\r\n }\r\n {this.state.body}\r\n {\r\n (this.state.id === 'new-payment-modal' && _.isUndefined(this.state.prevState)) ?\r\n \r\n Cancel\r\n :\r\n null\r\n }\r\n {\r\n _.isUndefined(this.state.prevState) || this.state.id === \"delete-payment\" ?\r\n null :\r\n \r\n Back\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nModal.propTypes = {\r\n dispatch: PropTypes.func.isRequired\r\n};\r\n\r\nexport default Modal;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/Modal/Modal.jsx","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_classof.js\n// module id = 103\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iterators.js\n// module id = 104\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-to-string-tag.js\n// module id = 105\n// module chunks = 0","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-trim.js\n// module id = 106\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/enc-base64.js\n// module id = 107\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/md5.js\n// module id = 108\n// module chunks = 0","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMNamespaces = require('./DOMNamespaces');\nvar setInnerHTML = require('./setInnerHTML');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setTextContent = require('./setTextContent');\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some plugins (like Flash Player) will read\n // nodes immediately upon insertion into the DOM, so \n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/DOMLazyTree.js\n// module id = 109\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nfunction checkMask(value, bitmask) {\n return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n /**\n * Mapping from normalized, camelcased property names to a configuration that\n * specifies how the associated DOM property should be accessed or rendered.\n */\n MUST_USE_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\n\n /**\n * Inject some specialized knowledge about the DOM. This takes a config object\n * with the following properties:\n *\n * isCustomAttribute: function that given an attribute name will return true\n * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n * attributes where it's impossible to enumerate all of the possible\n * attribute names,\n *\n * Properties: object mapping DOM property name to one of the\n * DOMPropertyInjection constants or null. If your attribute isn't in here,\n * it won't get written to the DOM.\n *\n * DOMAttributeNames: object mapping React attribute name to the DOM\n * attribute name. Attribute names not specified use the **lowercase**\n * normalized name.\n *\n * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n * attribute namespace URL. (Attribute names not specified use no namespace.)\n *\n * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n * Property names not specified use the normalized name.\n *\n * DOMMutationMethods: Properties that require special mutation methods. If\n * `value` is undefined, the mutation method should unset the property.\n *\n * @param {object} domPropertyConfig the config as described above.\n */\n injectDOMPropertyConfig: function (domPropertyConfig) {\n var Injection = DOMPropertyInjection;\n var Properties = domPropertyConfig.Properties || {};\n var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n if (domPropertyConfig.isCustomAttribute) {\n DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n }\n\n for (var propName in Properties) {\n !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\\'re trying to inject DOM property \\'%s\\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0;\n\n var lowerCased = propName.toLowerCase();\n var propConfig = Properties[propName];\n\n var propertyInfo = {\n attributeName: lowerCased,\n attributeNamespace: null,\n propertyName: propName,\n mutationMethod: null,\n\n mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n };\n !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[lowerCased] = propName;\n }\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n propertyInfo.attributeName = attributeName;\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[attributeName] = propName;\n }\n }\n\n if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n }\n\n if (DOMPropertyNames.hasOwnProperty(propName)) {\n propertyInfo.propertyName = DOMPropertyNames[propName];\n }\n\n if (DOMMutationMethods.hasOwnProperty(propName)) {\n propertyInfo.mutationMethod = DOMMutationMethods[propName];\n }\n\n DOMProperty.properties[propName] = propertyInfo;\n }\n }\n};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n * > DOMProperty.isValid['id']\n * true\n * > DOMProperty.isValid['foobar']\n * undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n ID_ATTRIBUTE_NAME: 'data-reactid',\n ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\n\n /**\n * Map from property \"standard name\" to an object with info about how to set\n * the property in the DOM. Each object contains:\n *\n * attributeName:\n * Used when rendering markup or with `*Attribute()`.\n * attributeNamespace\n * propertyName:\n * Used on DOM node instances. (This includes properties that mutate due to\n * external factors.)\n * mutationMethod:\n * If non-null, used instead of the property or `setAttribute()` after\n * initial render.\n * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\n * hasBooleanValue:\n * Whether the property should be removed when set to a falsey value.\n * hasNumericValue:\n * Whether the property must be numeric or parse as a numeric and should be\n * removed when set to a falsey value.\n * hasPositiveNumericValue:\n * Whether the property must be positive numeric or parse as a positive\n * numeric and should be removed when set to a falsey value.\n * hasOverloadedBooleanValue:\n * Whether the property can be used as a flag as well as with a value.\n * Removed when strictly equal to false; present without a value when\n * strictly equal to true; present with a value otherwise.\n */\n properties: {},\n\n /**\n * Mapping from lowercase property names to the properly cased version, used\n * to warn in the case of missing properties. Available only in __DEV__.\n *\n * autofocus is predefined, because adding it to the property whitelist\n * causes unintended side effects.\n *\n * @type {Object}\n */\n getPossibleStandardName: process.env.NODE_ENV !== 'production' ? { autofocus: 'autoFocus' } : null,\n\n /**\n * All of the isCustomAttribute() functions that have been injected.\n */\n _isCustomAttributeFunctions: [],\n\n /**\n * Checks whether a property name is a custom attribute.\n * @method\n */\n isCustomAttribute: function (attributeName) {\n for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n if (isCustomAttributeFn(attributeName)) {\n return true;\n }\n }\n return false;\n },\n\n injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/DOMProperty.js\n// module id = 110\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactRef = require('./ReactRef');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} the containing host component instance\n * @param {?object} info about the host container\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots\n ) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);\n }\n }\n var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n }\n }\n return markup;\n },\n\n /**\n * Returns a value that can be passed to\n * ReactComponentEnvironment.replaceNodeWithMarkup.\n */\n getHostNode: function (internalInstance) {\n return internalInstance.getHostNode();\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (internalInstance, safely) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);\n }\n }\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent(safely);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n }\n }\n },\n\n /**\n * Update a component using a new element.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @internal\n */\n receiveComponent: function (internalInstance, nextElement, transaction, context) {\n var prevElement = internalInstance._currentElement;\n\n if (nextElement === prevElement && context === internalInstance._context) {\n // Since elements are immutable after the owner is rendered,\n // we can do a cheap identity compare here to determine if this is a\n // superfluous reconcile. It's possible for state to be mutable but such\n // change should trigger an update of the owner which would recreate\n // the element. We explicitly check for the existence of an owner since\n // it's possible for an element created outside a composite to be\n // deeply mutated and reused.\n\n // TODO: Bailing out early is just a perf optimization right?\n // TODO: Removing the return statement should affect correctness?\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n }\n }\n\n var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n if (refsChanged) {\n ReactRef.detachRefs(internalInstance, prevElement);\n }\n\n internalInstance.receiveComponent(nextElement, transaction, context);\n\n if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n },\n\n /**\n * Flush any dirty changes in a component.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) {\n if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n // The component's enqueued batch number should always be the current\n // batch or the following one.\n process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n }\n }\n internalInstance.performUpdateIfNecessary(transaction);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n }\n\n};\n\nmodule.exports = ReactReconciler;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactReconciler.js\n// module id = 111\n// module chunks = 0","import invariant from 'invariant';\n\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction _compilePattern(pattern) {\n var regexpSource = '';\n var paramNames = [];\n var tokens = [];\n\n var match = void 0,\n lastIndex = 0,\n matcher = /:([a-zA-Z_$][a-zA-Z0-9_$]*)|\\*\\*|\\*|\\(|\\)|\\\\\\(|\\\\\\)/g;\n while (match = matcher.exec(pattern)) {\n if (match.index !== lastIndex) {\n tokens.push(pattern.slice(lastIndex, match.index));\n regexpSource += escapeRegExp(pattern.slice(lastIndex, match.index));\n }\n\n if (match[1]) {\n regexpSource += '([^/]+)';\n paramNames.push(match[1]);\n } else if (match[0] === '**') {\n regexpSource += '(.*)';\n paramNames.push('splat');\n } else if (match[0] === '*') {\n regexpSource += '(.*?)';\n paramNames.push('splat');\n } else if (match[0] === '(') {\n regexpSource += '(?:';\n } else if (match[0] === ')') {\n regexpSource += ')?';\n } else if (match[0] === '\\\\(') {\n regexpSource += '\\\\(';\n } else if (match[0] === '\\\\)') {\n regexpSource += '\\\\)';\n }\n\n tokens.push(match[0]);\n\n lastIndex = matcher.lastIndex;\n }\n\n if (lastIndex !== pattern.length) {\n tokens.push(pattern.slice(lastIndex, pattern.length));\n regexpSource += escapeRegExp(pattern.slice(lastIndex, pattern.length));\n }\n\n return {\n pattern: pattern,\n regexpSource: regexpSource,\n paramNames: paramNames,\n tokens: tokens\n };\n}\n\nvar CompiledPatternsCache = Object.create(null);\n\nexport function compilePattern(pattern) {\n if (!CompiledPatternsCache[pattern]) CompiledPatternsCache[pattern] = _compilePattern(pattern);\n\n return CompiledPatternsCache[pattern];\n}\n\n/**\n * Attempts to match a pattern on the given pathname. Patterns may use\n * the following special characters:\n *\n * - :paramName Matches a URL segment up to the next /, ?, or #. The\n * captured string is considered a \"param\"\n * - () Wraps a segment of the URL that is optional\n * - * Consumes (non-greedy) all characters up to the next\n * character in the pattern, or to the end of the URL if\n * there is none\n * - ** Consumes (greedy) all characters up to the next character\n * in the pattern, or to the end of the URL if there is none\n *\n * The function calls callback(error, matched) when finished.\n * The return value is an object with the following properties:\n *\n * - remainingPathname\n * - paramNames\n * - paramValues\n */\nexport function matchPattern(pattern, pathname) {\n // Ensure pattern starts with leading slash for consistency with pathname.\n if (pattern.charAt(0) !== '/') {\n pattern = '/' + pattern;\n }\n\n var _compilePattern2 = compilePattern(pattern),\n regexpSource = _compilePattern2.regexpSource,\n paramNames = _compilePattern2.paramNames,\n tokens = _compilePattern2.tokens;\n\n if (pattern.charAt(pattern.length - 1) !== '/') {\n regexpSource += '/?'; // Allow optional path separator at end.\n }\n\n // Special-case patterns like '*' for catch-all routes.\n if (tokens[tokens.length - 1] === '*') {\n regexpSource += '$';\n }\n\n var match = pathname.match(new RegExp('^' + regexpSource, 'i'));\n if (match == null) {\n return null;\n }\n\n var matchedPath = match[0];\n var remainingPathname = pathname.substr(matchedPath.length);\n\n if (remainingPathname) {\n // Require that the match ends at a path separator, if we didn't match\n // the full path, so any remaining pathname is a new path segment.\n if (matchedPath.charAt(matchedPath.length - 1) !== '/') {\n return null;\n }\n\n // If there is a remaining pathname, treat the path separator as part of\n // the remaining pathname for properly continuing the match.\n remainingPathname = '/' + remainingPathname;\n }\n\n return {\n remainingPathname: remainingPathname,\n paramNames: paramNames,\n paramValues: match.slice(1).map(function (v) {\n return v && decodeURIComponent(v);\n })\n };\n}\n\nexport function getParamNames(pattern) {\n return compilePattern(pattern).paramNames;\n}\n\nexport function getParams(pattern, pathname) {\n var match = matchPattern(pattern, pathname);\n if (!match) {\n return null;\n }\n\n var paramNames = match.paramNames,\n paramValues = match.paramValues;\n\n var params = {};\n\n paramNames.forEach(function (paramName, index) {\n params[paramName] = paramValues[index];\n });\n\n return params;\n}\n\n/**\n * Returns a version of the given pattern with params interpolated. Throws\n * if there is a dynamic segment of the pattern for which there is no param.\n */\nexport function formatPattern(pattern, params) {\n params = params || {};\n\n var _compilePattern3 = compilePattern(pattern),\n tokens = _compilePattern3.tokens;\n\n var parenCount = 0,\n pathname = '',\n splatIndex = 0,\n parenHistory = [];\n\n var token = void 0,\n paramName = void 0,\n paramValue = void 0;\n for (var i = 0, len = tokens.length; i < len; ++i) {\n token = tokens[i];\n\n if (token === '*' || token === '**') {\n paramValue = Array.isArray(params.splat) ? params.splat[splatIndex++] : params.splat;\n\n !(paramValue != null || parenCount > 0) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing splat #%s for path \"%s\"', splatIndex, pattern) : invariant(false) : void 0;\n\n if (paramValue != null) pathname += encodeURI(paramValue);\n } else if (token === '(') {\n parenHistory[parenCount] = '';\n parenCount += 1;\n } else if (token === ')') {\n var parenText = parenHistory.pop();\n parenCount -= 1;\n\n if (parenCount) parenHistory[parenCount - 1] += parenText;else pathname += parenText;\n } else if (token === '\\\\(') {\n pathname += '(';\n } else if (token === '\\\\)') {\n pathname += ')';\n } else if (token.charAt(0) === ':') {\n paramName = token.substring(1);\n paramValue = params[paramName];\n\n !(paramValue != null || parenCount > 0) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing \"%s\" parameter for path \"%s\"', paramName, pattern) : invariant(false) : void 0;\n\n if (paramValue == null) {\n if (parenCount) {\n parenHistory[parenCount - 1] = '';\n\n var curTokenIdx = tokens.indexOf(token);\n var tokensSubset = tokens.slice(curTokenIdx, tokens.length);\n var nextParenIdx = -1;\n\n for (var _i = 0; _i < tokensSubset.length; _i++) {\n if (tokensSubset[_i] == ')') {\n nextParenIdx = _i;\n break;\n }\n }\n\n !(nextParenIdx > 0) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Path \"%s\" is missing end paren at segment \"%s\"', pattern, tokensSubset.join('')) : invariant(false) : void 0;\n\n // jump to ending paren\n i = curTokenIdx + nextParenIdx - 1;\n }\n } else if (parenCount) parenHistory[parenCount - 1] += encodeURIComponent(paramValue);else pathname += encodeURIComponent(paramValue);\n } else {\n if (parenCount) parenHistory[parenCount - 1] += token;else pathname += token;\n }\n }\n\n !(parenCount <= 0) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Path \"%s\" is missing end paren', pattern) : invariant(false) : void 0;\n\n return pathname.replace(/\\/+/g, '/');\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/PatternUtils.js\n// module id = 112\n// module chunks = 0","import warning from 'warning';\n\nvar warned = {};\n\nexport default function routerWarning(falseToWarn, message) {\n // Only issue deprecation warnings once.\n if (message.indexOf('deprecated') !== -1) {\n if (warned[message]) {\n return;\n }\n\n warned[message] = true;\n }\n\n message = '[react-router] ' + message;\n\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n warning.apply(undefined, [falseToWarn, message].concat(args));\n}\n\nexport function _resetWarned() {\n warned = {};\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/routerWarning.js\n// module id = 113\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactBaseClasses = require('./ReactBaseClasses');\nvar ReactChildren = require('./ReactChildren');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar createReactClass = require('./createClass');\nvar onlyChild = require('./onlyChild');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var lowPriorityWarning = require('./lowPriorityWarning');\n var canDefineProperty = require('./canDefineProperty');\n var ReactElementValidator = require('./ReactElementValidator');\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\nvar createMixin = function (mixin) {\n return mixin;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForSpread = false;\n var warnedForCreateMixin = false;\n __spread = function () {\n lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');\n warnedForSpread = true;\n return _assign.apply(null, arguments);\n };\n\n createMixin = function (mixin) {\n lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');\n warnedForCreateMixin = true;\n return mixin;\n };\n}\n\nvar React = {\n // Modern\n\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n toArray: ReactChildren.toArray,\n only: onlyChild\n },\n\n Component: ReactBaseClasses.Component,\n PureComponent: ReactBaseClasses.PureComponent,\n\n createElement: createElement,\n cloneElement: cloneElement,\n isValidElement: ReactElement.isValidElement,\n\n // Classic\n\n PropTypes: ReactPropTypes,\n createClass: createReactClass,\n createFactory: createFactory,\n createMixin: createMixin,\n\n // This looks DOM specific but these are actually isomorphic helpers\n // since they are just generating DOM strings.\n DOM: ReactDOMFactories,\n\n version: ReactVersion,\n\n // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForCreateClass = false;\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function () {\n lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n\n Object.defineProperty(React, 'createClass', {\n get: function () {\n lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + \" Use a plain JavaScript class instead. If you're not yet \" + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');\n warnedForCreateClass = true;\n return createReactClass;\n }\n });\n }\n\n // React.DOM factories are deprecated. Wrap these methods so that\n // invocations of the React.DOM namespace and alert users to switch\n // to the `react-dom-factories` package.\n React.DOM = {};\n var warnedForFactories = false;\n Object.keys(ReactDOMFactories).forEach(function (factory) {\n React.DOM[factory] = function () {\n if (!warnedForFactories) {\n lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);\n warnedForFactories = true;\n }\n return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);\n };\n });\n}\n\nmodule.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/React.js\n// module id = 114\n// module chunks = 0","/**\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\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar warning = require('fbjs/lib/warning');\nvar canDefineProperty = require('./canDefineProperty');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allow us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {};\n\n // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n if (canDefineProperty) {\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n });\n // self and source are DEV only properties.\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n });\n // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n } else {\n element._store.validated = false;\n element._self = self;\n element._source = source;\n }\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\n */\nReactElement.createElement = function (type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n if (process.env.NODE_ENV !== 'production') {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (key || ref) {\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\n */\nReactElement.createFactory = function (type) {\n var factory = ReactElement.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. `.type === Foo`.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n // Legacy hook TODO: Warn if this is accessed\n factory.type = type;\n return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n return newElement;\n};\n\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\n */\nReactElement.cloneElement = function (element, config, children) {\n var propName;\n\n // Original props are copied\n var props = _assign({}, element.props);\n\n // Reserved names are extracted\n var key = element.key;\n var ref = element.ref;\n // Self is preserved since the owner is preserved.\n var self = element._self;\n // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source;\n\n // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nmodule.exports = ReactElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactElement.js\n// module id = 115\n// module chunks = 0","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_flatten.js\n// module id = 116\n// module chunks = 0","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/map.js\n// module id = 117\n// module chunks = 0","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/values.js\n// module id = 118\n// module chunks = 0","import React from 'react';\r\nimport {Link} from 'react-router';\r\n\r\nimport './AddStudent.scss';\r\n\r\n/**\r\n * Card that will show if no students are linked to account.\r\n * Prompts user to add student to account.\r\n */\r\nclass AddStudent extends React.Component {\r\n captureNewStudent(e) {\r\n let checkpoint = e.target;\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-app-body',\r\n checkpoint: checkpoint,\r\n routeChange: \"accounts\"\r\n }}));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n Welcome to My MealTime! You will need to add a student to your account before you can perform any other actions.\r\n
\r\n
\r\n \r\n Add Student\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AddStudent;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/AddStudent/AddStudent.jsx","import 'regenerator-runtime/runtime'\r\n//everything about biometry plugin\r\n//https://github.com/Cap-go/capacitor-native-biometric#setcredentialoptions\r\nimport {addPinAsync, addPinSuccess} from '../actions/AuthAction.js';\r\n\r\nconst biometryTypes = {\r\n 0 : {\r\n member: 'NONE',\r\n name: 'None'\r\n },\r\n 1: {\r\n member: 'TOUCH_ID',\r\n name: 'Touch Id'\r\n },\r\n 2: {\r\n member: 'FACE_ID',\r\n name: 'Face Id'\r\n },\r\n 3: {\r\n member: 'FINGERPRINT',\r\n name: 'Fingerprint'\r\n },\r\n 4: {\r\n member: 'FACE_AUTHENTICATION',\r\n name: 'Face Authentication'\r\n },\r\n 5: {\r\n member: 'IRIS_AUTHENTICATION',\r\n name: 'Iris Authentication'\r\n },\r\n 6: {\r\n member: 'MULTIPLE',\r\n name: 'Multiple'\r\n }\r\n}\r\n\r\nexport async function getBiometryState() {\r\n const nativeBiometric = await window.Capacitor.Plugins.NativeBiometric.isAvailable();\r\n const appInfo = await window.Capacitor.Plugins.App.getInfo();\r\n let credentials = await window.Capacitor.Plugins.NativeBiometric.getCredentials({ server: appInfo.id })\r\n .then((res) => {\r\n return res;\r\n })\r\n .catch((err) => {\r\n return false;\r\n });\r\n\r\n return {\r\n isAvailable: nativeBiometric.isAvailable,\r\n biometryType: _.get(biometryTypes, nativeBiometric.biometryType),\r\n credentials: credentials,\r\n };\r\n}\r\n\r\nexport async function setBiometry(userId, username, dispatch) {\r\n const nativeBiometric = await window.Capacitor.Plugins.NativeBiometric.isAvailable();\r\n const key = Utils.createHashKey();\r\n const hash = Utils.createHmacSHA1(String(userId), key);\r\n\r\n if(!nativeBiometric.isAvailable) return;\r\n\r\n const verified = await window.Capacitor.Plugins.NativeBiometric.verifyIdentity({\r\n reason: \"For easy log in\",\r\n title: `${(_.get(biometryTypes, nativeBiometric.biometryType)).name} Authorization`,\r\n subtitle: \"\",\r\n description: \"\",\r\n })\r\n .then(() => true)\r\n .catch(() => false);\r\n\r\n if(!verified) return verified;\r\n\r\n //let the backend set up pin token\r\n //use dispatch so that stores are updated\r\n dispatch({type: 'ADD_PIN'});\r\n const pinToken = await addPinAsync(hash.toString(), dispatch);\r\n const credentials = await secureBiometryData(userId, username, key, pinToken)\r\n dispatch(addPinSuccess(userId, username, pinToken, key));\r\n\r\n return credentials;\r\n}\r\n\r\nexport async function disableBiometry() {\r\n const appInfo = await window.Capacitor.Plugins.App.getInfo();\r\n\r\n // Delete user's credentials\r\n await window.Capacitor.Plugins.NativeBiometric.deleteCredentials({\r\n server: appInfo.id,\r\n });\r\n\r\n let credentials = await window.Capacitor.Plugins.NativeBiometric.getCredentials({ server: appInfo.id })\r\n .then((res) => {\r\n return res;\r\n })\r\n .catch((err) => {\r\n return false;\r\n });\r\n\r\n return credentials;\r\n}\r\n\r\nexport async function biometryIsAvailable() {\r\n const nativeBiometric = await window.Capacitor.Plugins.NativeBiometric.isAvailable();\r\n return {\r\n isAvailable: nativeBiometric.isAvailable,\r\n biometryType: _.get(biometryTypes, nativeBiometric.biometryType),\r\n }\r\n}\r\n\r\nexport async function secureBiometryData(userID, username, key, pinToken) {\r\n // Save user's credentials\r\n const appInfo = await window.Capacitor.Plugins.App.getInfo();\r\n await window.Capacitor.Plugins.NativeBiometric.setCredentials({\r\n username: userID.toString(),\r\n password: JSON.stringify({\r\n persistedUserID: userID,\r\n username: username,\r\n key: key,\r\n pinToken: pinToken\r\n }),\r\n server: appInfo.id,\r\n });\r\n\r\n return await window.Capacitor.Plugins.NativeBiometric.getCredentials({server: appInfo.id});\r\n}\r\n\r\nexport async function verifyBiometric(title, description, userId) {\r\n const nativeBiometric = await window.Capacitor.Plugins.NativeBiometric.isAvailable();\r\n if(!nativeBiometric.isAvailable) return;\r\n\r\n const appInfo = await window.Capacitor.Plugins.App.getInfo();\r\n let credentials = await window.Capacitor.Plugins.NativeBiometric.getCredentials({ server: appInfo.id })\r\n .then((res) => {\r\n return res;\r\n })\r\n .catch((err) => {\r\n return false;\r\n });\r\n if(credentials == false) return;\r\n\r\n const biometryData = JSON.parse(credentials.password);\r\n\r\n if(userId) if(biometryData.persistedUserID !== userId) return;\r\n\r\n\r\n const verified = await window.Capacitor.Plugins.NativeBiometric.verifyIdentity({\r\n reason: 'For an easier and faster log in.',\r\n title: title,\r\n subtitle: 'My MealTime',\r\n description: description.toString().replace('masked-username', `\"${Utils.maskString(biometryData.username, 4, 4, '*')}\"`),\r\n })\r\n .then(() => true)\r\n .catch(() => false);\r\n\r\n if(!verified) return;\r\n\r\n return credentials;\r\n}\n\n\n// WEBPACK FOOTER //\n// app/common/js/Biometry.js","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_flags.js\n// module id = 121\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iobject.js\n// module id = 122\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-pie.js\n// module id = 123\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared.js\n// module id = 124\n// module chunks = 0","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_species-constructor.js\n// module id = 125\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/Actions.js\n// module id = 126\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopstateOnHashchange = exports.supportsPopstateOnHashchange = function supportsPopstateOnHashchange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/DOMUtils.js\n// module id = 127\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n if (event) {\n EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function (inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n /**\n * Methods for injecting dependencies.\n */\n injection: {\n\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n },\n\n /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function (inst, registrationName, listener) {\n !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function (inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var bankForRegistrationName = listenerBank[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {\n return null;\n }\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function (inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function (inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events;\n var plugins = EventPluginRegistry.plugins;\n for (var i = 0; i < plugins.length; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n },\n\n /**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\n enqueueEvents: function (events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n },\n\n /**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\n processEventQueue: function (simulated) {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n if (simulated) {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n } else {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n }\n !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0;\n // This would be a good time to rethrow if any of the event handlers threw.\n ReactErrorUtils.rethrowCaughtError();\n },\n\n /**\n * These are needed for tests only. Do not use!\n */\n __purge: function () {\n listenerBank = {};\n },\n\n __getListenerBank: function () {\n return listenerBank;\n }\n\n};\n\nmodule.exports = EventPluginHub;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/EventPluginHub.js\n// module id = 128\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar warning = require('fbjs/lib/warning');\n\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n accumulateDirectDispatches: accumulateDirectDispatches,\n accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/EventPropagators.js\n// module id = 129\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\n\nvar ReactInstanceMap = {\n\n /**\n * This API should be called `delete` but we'd have to make sure to always\n * transform these to strings for IE support. When this transform is fully\n * supported we can rename it.\n */\n remove: function (key) {\n key._reactInternalInstance = undefined;\n },\n\n get: function (key) {\n return key._reactInternalInstance;\n },\n\n has: function (key) {\n return key._reactInternalInstance !== undefined;\n },\n\n set: function (key, value) {\n key._reactInternalInstance = value;\n }\n\n};\n\nmodule.exports = ReactInstanceMap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactInstanceMap.js\n// module id = 130\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function (event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (target.window === target) {\n // target is a window object\n return target;\n }\n\n var doc = target.ownerDocument;\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n if (doc) {\n return doc.defaultView || doc.parentWindow;\n } else {\n return window;\n }\n },\n detail: function (event) {\n return event.detail || 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticUIEvent.js\n// module id = 131\n// module chunks = 0","import { func, object, arrayOf, oneOfType, element, shape, elementType } from 'prop-types';\n\nexport function falsy(props, propName, componentName) {\n if (props[propName]) return new Error('<' + componentName + '> should not have a \"' + propName + '\" prop');\n}\n\nexport var history = shape({\n listen: func.isRequired,\n push: func.isRequired,\n replace: func.isRequired,\n go: func.isRequired,\n goBack: func.isRequired,\n goForward: func.isRequired\n});\n\nexport var component = elementType;\nexport var components = oneOfType([component, object]);\nexport var route = oneOfType([object, element]);\nexport var routes = oneOfType([route, arrayOf(route)]);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/InternalPropTypes.js\n// module id = 132\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/reactProdInvariant.js\n// module id = 133\n// module chunks = 0","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_optimizeCb.js\n// module id = 134\n// module chunks = 0","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_stringTagBug.js\n// module id = 135\n// module chunks = 0","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_toPath.js\n// module id = 136\n// module chunks = 0","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/allKeys.js\n// module id = 137\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/contains.js\n// module id = 138\n// module chunks = 0","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/filter.js\n// module id = 139\n// module chunks = 0","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport AnimateOnChange from 'react-animate-on-change';\r\n\r\nimport PaymentInfo from '../PaymentInfo/PaymentInfo.jsx';\r\nimport ToolTip from '../ToolTip/ToolTip.jsx';\r\n\r\nimport './Receipt.scss';\r\n\r\nclass Receipt extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n this.isSub = !this.props.transaction.transDateTime;\r\n }\r\n\r\n createReceiptItems(items) {\r\n let recItems = [];\r\n for (let t of items) {\r\n recItems.push();\r\n }\r\n\r\n return recItems;\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n const matchingDeposit = this.props.transaction.depositID === nextProps.transaction.depositID;\r\n const hasDepositID = !_.isUndefined(this.props.transaction.depositID);\r\n if (matchingDeposit && hasDepositID) return false;\r\n return true;\r\n }\r\n\r\n render() {\r\n let deposits = _.filter(this.props.transaction.details, item => {\r\n return item.depositAmount > 0 && (_.isNull(item.subAccountID) || _.isUndefined(item.subAccountID));\r\n });\r\n let fees = _.filter(this.props.transaction.details, item => {\r\n return _.isNumber(item.subAccountID);\r\n });\r\n let d;\r\n if (!this.isSub) d = Utils.convertFromDatetime(this.props.transaction.transDateTime);\r\n return (\r\n
\r\n {\r\n this.isSub ?\r\n null :\r\n
\r\n \r\n \r\n {Utils.dateFormat(d)}\r\n \r\n \r\n  - \r\n \r\n \r\n {Utils.timeFormat(d)}\r\n \r\n \r\n
\r\n }\r\n\r\n
\r\n {\r\n _.isEmpty(deposits) ?\r\n null :\r\n \r\n Cafeteria Account Deposits\r\n
\r\n }\r\n {this.createReceiptItems(deposits)}\r\n {\r\n _.isEmpty(fees) ?\r\n null :\r\n \r\n School Fee Payments\r\n
\r\n }\r\n {this.createReceiptItems(fees)}\r\n \r\n
\r\n \r\n \r\n {\r\n _.isUndefined(this.props.transaction.cardLast4) ?\r\n null : //The payment method for this scheduled deposit is no longer valid. :\r\n \r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nReceipt.propTypes = {\r\n transaction: PropTypes.object.isRequired\r\n};\r\n\r\nclass RecItem extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.itemClass = 'rec-li';\r\n // Don't indent the transaction fee at the end.\r\n if (!this.props.fee && !this.props.total) this.itemClass += ' rec-indent';\r\n if (this.props.total) this.itemClass += ' subtotal-header';\r\n if (this.props.fee) this.itemClass += ' rec-fee';\r\n }\r\n\r\n render() {\r\n let tooltipReceipt = \"Your school or school district may choose to subsidize some, all, or none of the costs of providing this convenient service. Alternately, you may pay with cash or check in person at your student’s school at no additional cost to you. Please contact your school or school district for more information.\";\r\n return (\r\n
\r\n \r\n \r\n {this.props.item}\r\n \r\n {\r\n this.props.fee ?\r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n {this.props.price.toFixed(2)}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nRecItem.propTypes = {\r\n price: PropTypes.number.isRequired,\r\n item: PropTypes.string.isRequired,\r\n total: PropTypes.bool,\r\n fee: PropTypes.bool\r\n};\r\n\r\nexport default Receipt;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Receipt/Receipt.jsx","export const ADD_CART = \"ADD_TO_CART\";\r\nexport const REM_CART = \"REMOVE_FROM_CART\";\r\n\r\nexport const ADD_MEMO = \"ADD_MEMO\";\r\nexport const REM_MEMO = \"REM_MEMO\";\r\n\r\nexport const CALC_FEE = \"CALCULATE_FEE\";\r\nexport const CALC_FEE_SUCCESS = \"CALCULATE_FEE_SUCCESS\";\r\nexport const CALC_FEE_FAILURE = \"CALCULATE_FEE_FAILURE\";\r\n\r\nexport const CHECKOUT = \"CHECKOUT\";\r\nexport const CHECKOUT_SUCCESS = \"CHECKOUT_SUCCESS\";\r\nexport const CHECKOUT_FAILURE = \"CHECKOUT_FAILURE\";\r\n\r\nexport const REC_FETCH = \"GET_RECEIPTS\";\r\nexport const REC_FETCH_SUCCESS = \"GET_RECEIPTS_SUCCESS\";\r\nexport const REC_FETCH_FAILURE = \"GET_RECEIPTS_FAILURE\";\r\n\r\nexport const GET_FEES_PAID = \"GET_FEES_PAID\";\r\nexport const GET_FEES_PAID_SUCCESS = \"GET_FEES_PAID_SUCCESS\";\r\nexport const GET_FEES_PAID_FAILURE = \"GET_FEES_PAID_FAILURE\";\r\n\r\nexport const RESET_CART = \"RESET_CART\";\r\n\r\nexport const UPDATE_PAYMENT = \"UPDATE_PAYMENT_METHOD\";\r\n\r\nexport const REMOVE_FEE = \"REMOVE_FEE\";\r\n\r\nexport const VALIDATE_DEP_ITEM = \"VALIDATE_DEP_ITEM\";\r\nexport const VALIDATE_DEP_ITEM_SUCCESS = \"VALIDATE_DEP_ITEM_SUCCESS\";\r\nexport const VALIDATE_DEP_ITEM_FAILURE = \"VALIDATE_DEP_ITEM_FAILURE\";\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/constants/CartConstants.js","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-includes.js\n// module id = 142\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection.js\n// module id = 143\n// module chunks = 0","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fix-re-wks.js\n// module id = 144\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array.js\n// module id = 145\n// module chunks = 0","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-regexp.js\n// module id = 146\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-detect.js\n// module id = 147\n// module chunks = 0","'use strict';\n// Forced replacement prototype accessors methods\nmodule.exports = require('./_library') || !require('./_fails')(function () {\n var K = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, K, function () { /* empty */ });\n delete require('./_global')[K];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-forced-pam.js\n// module id = 148\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gops.js\n// module id = 149\n// module chunks = 0","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_regexp-exec-abstract.js\n// module id = 150\n// module chunks = 0","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-collection-from.js\n// module id = 151\n// module chunks = 0","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-collection-of.js\n// module id = 152\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-at.js\n// module id = 153\n// module chunks = 0","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_typed.js\n// module id = 154\n// module chunks = 0","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_user-agent.js\n// module id = 155\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/x64-core.js\n// module id = 156\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/AboutComponents/Contents/Contents.scss\n// module id = 157\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/components/Subscriptions/Subscriptions.scss\n// module id = 158\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/ExecutionEnvironment.js\n// module id = 159\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getVendorPrefixedEventName = require('./getVendorPrefixedEventName');\nvar isEventSupported = require('./isEventSupported');\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactEventListener, which is injected and can therefore support pluggable\n * event sources. This is the only work that occurs in the main thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar hasEventPageXY;\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n topAbort: 'abort',\n topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\n topBlur: 'blur',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topChange: 'change',\n topClick: 'click',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topScroll: 'scroll',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topSelectionChange: 'selectionchange',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTextInput: 'textInput',\n topTimeUpdate: 'timeupdate',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting',\n topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n * EventPluginHub.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {\n\n /**\n * Injectable event backend\n */\n ReactEventListener: null,\n\n injection: {\n /**\n * @param {object} ReactEventListener\n */\n injectReactEventListener: function (ReactEventListener) {\n ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n }\n },\n\n /**\n * Sets whether or not any created callbacks should be enabled.\n *\n * @param {boolean} enabled True if callbacks should be enabled.\n */\n setEnabled: function (enabled) {\n if (ReactBrowserEventEmitter.ReactEventListener) {\n ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n }\n },\n\n /**\n * @return {boolean} True if callbacks are enabled.\n */\n isEnabled: function () {\n return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n },\n\n /**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\n listenTo: function (registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt);\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt);\n } else if (isEventSupported('focusin')) {\n // IE has `focusin` and `focusout` events which bubble.\n // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.topFocus = true;\n } else if (topEventMapping.hasOwnProperty(dependency)) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n }\n\n isListening[dependency] = true;\n }\n }\n },\n\n trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function () {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\n },\n\n /**\n * Listens to window scroll and resize events. We cache scroll values so that\n * application code can access them without triggering reflows.\n *\n * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function () {\n if (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactBrowserEventEmitter.js\n// module id = 160\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: function (event) {\n // Webkit, Firefox, IE9+\n // which: 1 2 3\n // button: 0 1 2 (standard)\n var button = event.button;\n if ('which' in event) {\n return button;\n }\n // IE<9\n // which: undefined\n // button: 0 0 0\n // button: 1 4 2 (onmouseup)\n return button === 2 ? 2 : button === 4 ? 1 : 0;\n },\n buttons: null,\n relatedTarget: function (event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function (event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function (event) {\n return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticMouseEvent.js\n// module id = 161\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar OBSERVED_ERROR = {};\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n *
\n *                       wrappers (injected at creation time)\n *                                      +        +\n *                                      |        |\n *                    +-----------------|--------|--------------+\n *                    |                 v        |              |\n *                    |      +---------------+   |              |\n *                    |   +--|    wrapper1   |---|----+         |\n *                    |   |  +---------------+   v    |         |\n *                    |   |          +-------------+  |         |\n *                    |   |     +----|   wrapper2  |--------+   |\n *                    |   |     |    +-------------+  |     |   |\n *                    |   |     |                     |     |   |\n *                    |   v     v                     v     v   | wrapper\n *                    | +---+ +---+   +---------+   +---+ +---+ | invariants\n * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | +---+ +---+   +---------+   +---+ +---+ |\n *                    |  initialize                    close    |\n *                    +-----------------------------------------+\n * 
\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n * Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n * while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n * reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n * content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n * to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n * when the wrapped process is completed, or has failed.\n *\n * @param {Array} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar TransactionImpl = {\n /**\n * Sets up this instance so that it is prepared for collecting metrics. Does\n * so such that this setup method may be used on an instance that is already\n * initialized, in a way that does not consume additional memory upon reuse.\n * That can be useful if you decide to make your subclass of this mixin a\n * \"PooledClass\".\n */\n reinitializeTransaction: function () {\n this.transactionWrappers = this.getTransactionWrappers();\n if (this.wrapperInitData) {\n this.wrapperInitData.length = 0;\n } else {\n this.wrapperInitData = [];\n }\n this._isInTransaction = false;\n },\n\n _isInTransaction: false,\n\n /**\n * @abstract\n * @return {Array} Array of transaction wrappers.\n */\n getTransactionWrappers: null,\n\n isInTransaction: function () {\n return !!this._isInTransaction;\n },\n\n /**\n * Executes the function within a safety window. Use this for the top level\n * methods that result in large amounts of computation/mutations that would\n * need to be safety checked. The optional arguments helps prevent the need\n * to bind in many cases.\n *\n * @param {function} method Member of scope to call.\n * @param {Object} scope Scope to invoke from.\n * @param {Object?=} a Argument to pass to the method.\n * @param {Object?=} b Argument to pass to the method.\n * @param {Object?=} c Argument to pass to the method.\n * @param {Object?=} d Argument to pass to the method.\n * @param {Object?=} e Argument to pass to the method.\n * @param {Object?=} f Argument to pass to the method.\n *\n * @return {*} Return value from `method`.\n */\n perform: function (method, scope, a, b, c, d, e, f) {\n !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;\n var errorThrown;\n var ret;\n try {\n this._isInTransaction = true;\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // one of these calls threw.\n errorThrown = true;\n this.initializeAll(0);\n ret = method.call(scope, a, b, c, d, e, f);\n errorThrown = false;\n } finally {\n try {\n if (errorThrown) {\n // If `method` throws, prefer to show that stack trace over any thrown\n // by invoking `closeAll`.\n try {\n this.closeAll(0);\n } catch (err) {}\n } else {\n // Since `method` didn't throw, we don't want to silence the exception\n // here.\n this.closeAll(0);\n }\n } finally {\n this._isInTransaction = false;\n }\n }\n return ret;\n },\n\n initializeAll: function (startIndex) {\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n try {\n // Catching errors makes debugging more difficult, so we start with the\n // OBSERVED_ERROR state before overwriting it with the real return value\n // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n // block, it means wrapper.initialize threw.\n this.wrapperInitData[i] = OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === OBSERVED_ERROR) {\n // The initializer for wrapper i threw an error; initialize the\n // remaining wrappers but silence any exceptions from them to ensure\n // that the first error is the one to bubble up.\n try {\n this.initializeAll(i + 1);\n } catch (err) {}\n }\n }\n }\n },\n\n /**\n * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n * them the respective return values of `this.transactionWrappers.init[i]`\n * (`close`rs that correspond to initializers that failed will not be\n * invoked).\n */\n closeAll: function (startIndex) {\n !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0;\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n var initData = this.wrapperInitData[i];\n var errorThrown;\n try {\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // wrapper.close threw.\n errorThrown = true;\n if (initData !== OBSERVED_ERROR && wrapper.close) {\n wrapper.close.call(this, initData);\n }\n errorThrown = false;\n } finally {\n if (errorThrown) {\n // The closer for wrapper i threw an error; close the remaining\n // wrappers but silence any exceptions from them to ensure that the\n // first error is the one to bubble up.\n try {\n this.closeAll(i + 1);\n } catch (e) {}\n }\n }\n }\n this.wrapperInitData.length = 0;\n }\n};\n\nmodule.exports = TransactionImpl;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/Transaction.js\n// module id = 162\n// module chunks = 0","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n */\n\n'use strict';\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/escapeTextContentForBrowser.js\n// module id = 163\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar DOMNamespaces = require('./DOMNamespaces');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '' + html + '';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\n }\n});\n\nif (ExecutionEnvironment.canUseDOM) {\n // IE8: When updating a just created node with innerHTML only leading\n // whitespace is removed. When updating an existing node with innerHTML\n // whitespace in root TextNodes is also collapsed.\n // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n // Feature detection; only IE8 is known to behave improperly like this.\n var testElement = document.createElement('div');\n testElement.innerHTML = ' ';\n if (testElement.innerHTML === '') {\n setInnerHTML = function (node, html) {\n // Magic theory: IE8 supposedly differentiates between added and updated\n // nodes when processing innerHTML, innerHTML on updated nodes suffers\n // from worse whitespace behavior. Re-adding a node like this triggers\n // the initial and more favorable whitespace behavior.\n // TODO: What to do on a detached node?\n if (node.parentNode) {\n node.parentNode.replaceChild(node, node);\n }\n\n // We also implement a workaround for non-visible tags disappearing into\n // thin air on IE8, this only happens if there is no visible text\n // in-front of the non-visible tags. Piggyback on the whitespace fix\n // and simply check if any non-visible tags appear in the source.\n if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n // Recover leading whitespace by temporarily prepending any character.\n // \\uFEFF has the potential advantage of being zero-width/invisible.\n // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n // the actual Unicode character (by Babel, for example).\n // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n node.innerHTML = String.fromCharCode(0xFEFF) + html;\n\n // deleteData leaves an empty `TextNode` which offsets the index of all\n // children. Definitely want to avoid this.\n var textNode = node.firstChild;\n if (textNode.data.length === 1) {\n node.removeChild(textNode);\n } else {\n textNode.deleteData(0, 1);\n }\n } else {\n node.innerHTML = html;\n }\n };\n }\n testElement = null;\n}\n\nmodule.exports = setInnerHTML;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/setInnerHTML.js\n// module id = 164\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-is/index.js\n// module id = 165\n// module chunks = 0","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_group.js\n// module id = 166\n// module chunks = 0","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/matcher.js\n// module id = 167\n// module chunks = 0","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/partial.js\n// module id = 168\n// module chunks = 0","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/extends.js\n// module id = 169\n// module chunks = 0","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}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\n// module id = 170\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n data = data.replace(PROTECTION_PREFIX, '');\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMehtodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/defaults.js\n// module id = 171\n// module chunks = 0","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport Loader from '../Loader/Loader.jsx';\r\n\r\nimport {removeCard} from '../../actions/TransAction.js';\r\nimport {updatePayment} from '../../actions/CartAction.js';\r\n\r\nimport './ExistingPayment.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n defaultPayment: store.trans.defaultPayment,\r\n loading: store.trans.loading,\r\n paymentDeleted: store.trans.paymentDeleted,\r\n paymentMethods: store.trans.methods\r\n };\r\n};\r\n\r\nclass AllMethods extends React.Component {\r\n static propTypes = {\r\n callback: PropTypes.func,\r\n cart: PropTypes.bool,\r\n context: PropTypes.string,\r\n currentSub: PropTypes.object,\r\n defaultPayment: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n newPay: PropTypes.bool,\r\n paymentDeleted: PropTypes.bool.isRequired,\r\n paymentMethods: PropTypes.array,\r\n replacingDefault: PropTypes.string,\r\n save: PropTypes.bool,\r\n selectable: PropTypes.bool\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n nonSelected: false\r\n };\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.paymentDeleted && !nextProps.loading && nextProps.context !== 'subscription') {\r\n if(nextProps.context === 'settings') return;\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n if(nextProps.newPay === true && nextProps.context === 'cart') {\r\n Utils.updateModal('cart');\r\n }\r\n }\r\n\r\n newPayment(e) {\r\n const persistDeposits = this.props.callback;\r\n if (this.props.context === 'subscription' && typeof (persistDeposits) === 'function') {\r\n persistDeposits();\r\n }\r\n Utils.updateModal('new-payment', {payment: undefined, context: this.props.context, replacingDefault: this.props.replacingDefault});\r\n }\r\n\r\n updatePayment(e) {\r\n // Either handles saving, or simply updating and closing the modal\r\n const selected = this.exist.querySelector('input:checked');\r\n if (_.isNull(selected)) {\r\n if (this.props.context === 'cart') {\r\n Utils.updateModal('cart');\r\n } else if (this.props.context === 'settings' && Utils.isMobile()) {\r\n Utils.updateModal('settings', {load: 'payment'});\r\n } else {\r\n // Just close that modal!\r\n $('.gen-modal').modal('hide');\r\n }\r\n } else {\r\n this.props.dispatch(updatePayment(selected.dataset.pid));\r\n if (this.props.context === 'cart') Utils.updateModal('cart');\r\n }\r\n }\r\n\r\n render() {\r\n const noPaymentMethods = _.isEmpty(this.props.paymentMethods);\r\n const noActionRequired = _.isUndefined(this.props.replacingDefault) && _.isUndefined(this.props.save);\r\n const selectable = this.props.selectable || _.isString(this.props.replacingDefault);\r\n let canEdit = _.isUndefined(this.props.replacingDefault);\r\n let preSelected = \"\";\r\n let methodCount = 0;\r\n\r\n return (\r\n this.exist = node}\r\n >\r\n {\r\n _.isUndefined(this.props.replacingDefault) ?\r\n null :\r\n
Select a new default payment method.
\r\n }\r\n {\r\n noPaymentMethods ?\r\n
\r\n You don't have any saved payment methods.\r\n
:\r\n _.map(this.props.paymentMethods, m => {\r\n methodCount++;\r\n //preselect new default payment method\r\n if(!_.isUndefined(this.props.replacingDefault)) {\r\n if(this.props.replacingDefault !== m.stripeCardID &&\r\n _.isEmpty(preSelected) &&\r\n !(Utils.hasPaymentExpired(m))) {\r\n preSelected = m.stripeCardID;\r\n }\r\n }\r\n // If you're replacing the default card, don't display the default card\r\n if (this.props.replacingDefault === m.stripeCardID) return null;\r\n // If you're displaying on a scheduled deposit, don't show temp cards\r\n if (this.props.currentSub && m.stripeCardID.startsWith('tok_')) return null;\r\n let isDefault = (m.stripeCardID === this.props.defaultPayment);\r\n //marked checked if it's preselected\r\n let isChecked = isDefault ? true : (m.stripeCardID === preSelected);\r\n // If you're working with a subscription, check the card that is assigned to the sub\r\n if (this.props.currentSub &&\r\n !_.isEmpty(this.props.currentSub.payment) &&\r\n !_.isUndefined(this.props.currentSub.payment))\r\n isChecked = (m.stripeCardID === this.props.currentSub.payment.stripeCardID);\r\n\r\n return ;\r\n })\r\n }\r\n {\r\n this.state.nonSelected ?\r\n
\r\n No default payment method selected\r\n
:\r\n null\r\n }\r\n
\r\n {\r\n canEdit ?\r\n \r\n + Add new payment method\r\n :\r\n null\r\n }\r\n {\r\n noActionRequired ?\r\n null :\r\n \r\n {\r\n this.props.loading ?\r\n :\r\n 'Save & Continue'\r\n }\r\n \r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nclass ExistingPayment extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.cardPath = 'img/1px.png';\r\n this.cardAlt = '';\r\n\r\n switch (this.props.method.brand) {\r\n case 'Visa':\r\n this.cardPath = \"img/visa-curved-64px.png\";\r\n this.cardAlt = \"Visa logo\";\r\n break;\r\n case 'MasterCard':\r\n this.cardPath = \"img/mastercard-curved-64px.png\";\r\n this.cardAlt = \"Mastercard logo\";\r\n break;\r\n case 'Discover':\r\n this.cardPath = \"img/discover-curved-64px.png\";\r\n this.cardAlt = \"Discover logo\";\r\n break;\r\n case 'eCheck':\r\n this.cardPath = \"img/echeck.jpg\";\r\n this.cardAlt = \"echeck logo\";\r\n break;\r\n default:\r\n this.cardPath = \"img/1px.png\";\r\n this.cardAlt = \"\";\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.currentSub && this.props.isChecked) {\r\n this.props.currentSub.setPayment(this.props.method, this.props.dispatch);\r\n }\r\n }\r\n\r\n persistDeposits() {\r\n const persistDeposits = this.props.callback;\r\n if (this.props.context === 'subscription' && typeof (persistDeposits) === 'function') {\r\n persistDeposits();\r\n }\r\n }\r\n\r\n editCard(e) {\r\n this.persistDeposits();\r\n Utils.updateModal('new-payment', {\r\n payment: this.props.method,\r\n cart: this.props.cart,\r\n context: this.props.context\r\n });\r\n }\r\n\r\n showECheckVerification(e) {\r\n this.persistDeposits();\r\n Utils.updateModal('echeck', {\r\n payment: this.props.method,\r\n context: this.props.context\r\n });\r\n }\r\n\r\n removeECheck(e) {\r\n this.props.dispatch(removeCard(this.props.method.stripeCardID, null));\r\n }\r\n\r\n render() {\r\n const radioOpt = ;\r\n const cardExpired = Utils.hasPaymentExpired(this.props.method);\r\n let showRadio = this.props.selectable && !cardExpired;\r\n let expires = this.props.method.expMonth + '/' +\r\n this.props.method.expYear.toString().substring(2);\r\n\r\n return (\r\n
this.node = node}>\r\n
\r\n \r\n {showRadio ? radioOpt : ''}\r\n
\r\n\r\n {this.cardAlt}\r\n \r\n { this.props.method.stripeCardID.startsWith('card_') || this.props.method.stripeCardID.startsWith('tok_') ?\r\n ' ... ' + this.props.method.last4 :\r\n this.props.method.last4.toString().substring(this.props.method.last4.length - 3)\r\n }\r\n \r\n {\r\n this.props.method.stripeCardID.startsWith('card_') ?\r\n cardExpired ?\r\n | Expired :\r\n | Expr {expires} :\r\n this.props.method.stripeCardID.startsWith('eCheckPendingAuth') ?\r\n (Pending) :\r\n null\r\n }\r\n {\r\n this.props.isDefault ?\r\n (Default) :\r\n null\r\n }\r\n {\r\n this.props.method.stripeCardID.startsWith('card_') && this.props.canEdit ? // && this.props.context !== \"subscription\"?\r\n \r\n Edit\r\n :\r\n this.props.method.stripeCardID.startsWith('eCheckPendingAuth') ?\r\n \r\n Verify\r\n :\r\n this.props.method.stripeCardID.startsWith('eCheckAuth') ?\r\n \r\n Delete\r\n :\r\n null\r\n // (Temp)\r\n }\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n// Enables us to get the context within the component\r\nExistingPayment.childContextTypes = {\r\n location: PropTypes.object\r\n};\r\n\r\nExistingPayment.propTypes = {\r\n cart: PropTypes.bool,\r\n callback: PropTypes.func,\r\n context: PropTypes.string,\r\n count: PropTypes.number,\r\n currentSub: PropTypes.object,\r\n dispatch: PropTypes.func.isRequired,\r\n isChecked: PropTypes.bool,\r\n isDefault: PropTypes.bool.isRequired,\r\n method: PropTypes.object.isRequired,\r\n selectable: PropTypes.bool,\r\n canEdit: PropTypes.bool\r\n};\r\n\r\nexport default connect(mapStateToProps)(AllMethods);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/ExistingPayment/ExistingPayment.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport FocusTrap from 'focus-trap-react';\r\nimport {clearGeneralError} from '../../../actions/ErrorAction.js';\r\nimport './Error.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n generalError: store.error.generalError\r\n };\r\n};\r\nclass ErrorModal extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n generalError: PropTypes.object.isRequired\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n trapActive: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const enableTrap = this.enableTrap.bind(this);\r\n\r\n $(this.modal).on('hide.bs.modal', function(e) {\r\n document.removeEventListener('keydown', enableTrap);\r\n });\r\n\r\n $(this.modal).on('hidden.bs.modal', function(e) {\r\n let genModalIsHidden = $('.gen-modal').hasClass('show');\r\n if(!genModalIsHidden) {\r\n document.dispatchEvent(new CustomEvent('rove-on-modals', {detail: {\r\n modalShown: false,\r\n checkpoint: document.activeElement\r\n }}));\r\n }\r\n });\r\n\r\n $(this.modal).on('show.bs.modal', function(e) {\r\n document.dispatchEvent(new CustomEvent('rove-on-modals', {detail: {\r\n modalShown: true,\r\n checkpoint: document.activeElement\r\n }}));\r\n });\r\n\r\n $(this.modal).on('shown.bs.modal', function(e) {\r\n document.addEventListener('keydown', enableTrap);\r\n });\r\n }\r\n\r\n enableTrap(e) {\r\n if((e.shiftKey && e.keyCode === 9) || e.keyCode === 9) {\r\n if(this.state.trapActive) return;\r\n this.setState({\r\n trapActive: true\r\n });\r\n }\r\n }\r\n\r\n dismissModal(e) {\r\n $(this.modal).modal('hide');\r\n this.showOtherModals();\r\n this.props.dispatch(clearGeneralError());\r\n }\r\n\r\n hideOtherModals(e) {\r\n $('.gen-modal').addClass('ghost');\r\n }\r\n\r\n showOtherModals(e) {\r\n $('.gen-modal').removeClass('ghost');\r\n this.setState({\r\n trapActive: false\r\n });\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n // Modal will open itself when there's an error to display\r\n if (!_.isEmpty(nextProps.generalError)) {\r\n $(this.modal).modal({\r\n backdrop: 'static'\r\n });\r\n this.hideOtherModals();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n this.modal = node}\r\n >\r\n
\r\n \r\n
\r\n
\r\n

\r\n {this.props.generalError.header}\r\n

\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n {this.props.generalError.message}\r\n
\r\n \r\n OK\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ErrorModal);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/Error/Error.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport './PaymentInfo.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n validationErrors: store.error.validationErrors\r\n };\r\n};\r\n\r\nclass PaymentInfo extends React.Component {\r\n\r\n editPayment(e) {\r\n // Utils.updateModal('payment-select', {selectable: true, save: true, cart: true});\r\n Utils.updateModal('payment-select', {selectable: true, save: true, context: 'cart'});\r\n }\r\n\r\n render() {\r\n const cardTypes = {\r\n Visa: 'img/visa-curved-64px.png',\r\n MasterCard: 'img/mastercard-curved-64px.png',\r\n Discover: 'img/discover-curved-64px.png'\r\n };\r\n\r\n const selectEdit = ;\r\n\r\n if (this.props.edit && Utils.hasPaymentExpired(this.props.method)) {\r\n return (\r\n
\r\n {selectEdit}\r\n
\r\n );\r\n }\r\n\r\n //TODO: This can be improved later. The conditional check for this.props.method should be needed here but had to add it for extra measure.\r\n // It might be ideal to move conditional checks to the parent\r\n return (\r\n
\r\n {\r\n _.isUndefined(this.props.method) ?\r\n null :\r\n {this.props.method.brand\r\n }\r\n {\r\n _.isUndefined(this.props.method) ?\r\n null :\r\n
ending in {this.props.method.last4 || this.props.last}
\r\n }\r\n {\r\n this.props.edit ?\r\n
 | 
:\r\n null\r\n }\r\n {\r\n this.props.edit ?\r\n
{selectEdit}
:\r\n null\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nPaymentInfo.propTypes = {\r\n last: PropTypes.string,\r\n edit: PropTypes.bool,\r\n method: PropTypes.object.isRequired\r\n};\r\n\r\nexport default connect(mapStateToProps)(PaymentInfo);\n\n\n// WEBPACK FOOTER //\n// app/common/components/PaymentInfo/PaymentInfo.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {withRouter} from 'react-router';\r\n\r\nimport './SinglePage.scss';\r\n\r\nimport Header from '../Header/Header.jsx';\r\nimport Modal from '../Modals/Modal/Modal.jsx';\r\nimport ReauthModal from '../Modals/Reauth/Reauth.jsx';\r\nimport Sidebar from 'Sidebar';\r\n\r\nimport {triggerReauthenticate} from '../../actions/AuthAction.js';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n authLoading: store.auth.loading,\r\n cartTotal: store.cart.total,\r\n defaultPayment: store.trans.defaultPayment,\r\n isAuthenticated: store.auth.isAuthenticated,\r\n items: store.cart.items,\r\n lastActivity: store.auth.lastActivity,\r\n messages: store.user.messages,\r\n paymentMethod: store.cart.paymentMethod,\r\n persisted: store.auth.persisted,\r\n token: store.auth.token,\r\n tokenLength: store.auth.tokenLength,\r\n userID: store.user.id,\r\n username: store.user.userInfo.username,\r\n validationErrors: store.error.validationErrors\r\n };\r\n};\r\n\r\nclass SinglePage extends React.Component {\r\n static propTypes = {\r\n authLoading: PropTypes.bool.isRequired,\r\n cartTotal: PropTypes.number.isRequired,\r\n children: PropTypes.element.isRequired,\r\n defaultPayment: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n items: PropTypes.array.isRequired,\r\n lastActivity: PropTypes.instanceOf(Date),\r\n messages: PropTypes.array,\r\n paymentMethod: PropTypes.string,\r\n persisted: PropTypes.bool,\r\n router: PropTypes.object,\r\n token: PropTypes.string,\r\n tokenLength: PropTypes.number,\r\n userID: PropTypes.number,\r\n username: PropTypes.string,\r\n validationErrors: PropTypes.array.isRequired\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.locked = false;\r\n }\r\n\r\n componentWillMount() {\r\n if (Utils.hasUser() && getUserData) {\r\n let user = Utils.getFromStorage('reduxPersist:user');\r\n getUserData(user.id,\r\n 'theme',\r\n this.getUserDataSuccess.bind(this),\r\n this.getUserDataSuccess.bind(this));\r\n } else {\r\n let defaultAppTheme = 'default-theme';\r\n if (appName === 'mto-student') defaultAppTheme = 'green-theme';\r\n document.body.className = defaultAppTheme;\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n window.setInterval(() => {\r\n // Check if token has expired\r\n let tokenExpired = Utils.hasTokenExpired(this.props.lastActivity,\r\n this.props.tokenLength);\r\n if (tokenExpired && !this.locked) {\r\n this.props.dispatch(triggerReauthenticate());\r\n Utils.reauthenticate(this.props.userID, this.props.dispatch);\r\n this.locked = true;\r\n }\r\n }, 5000);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.isAuthenticated && !this.props.isAuthenticated) {\r\n // App has been reauthenticated\r\n this.locked = false;\r\n }\r\n if (!nextProps.isAuthenticated && _.isUndefined(nextProps.token)) {\r\n // Sign out by returning to root, and letting it handle the logout\r\n this.props.router.push('/');\r\n }\r\n }\r\n\r\n getUserDataSuccess(response) {\r\n if (_.isUndefined(response) || _.isNull(response)) {\r\n document.body.className = 'default-theme';\r\n return;\r\n }\r\n let storage;\r\n if (_.isString(response)) {\r\n storage = JSON.parse(response);\r\n } else {\r\n storage = response;\r\n }\r\n\r\n if (_.isObject(storage) && storage.theme) {\r\n // Set theme\r\n document.body.className = storage.theme + '-theme';\r\n } else {\r\n document.body.className = 'default-theme';\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n {this.props.children}\r\n
\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const singleWithRouter = withRouter(SinglePage);\r\n\r\nexport default connect(mapStateToProps)(singleWithRouter);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/SinglePage/SinglePage.jsx","export const PATRON_FETCH = \"PATRONS_FETCH\";\r\nexport const PATRON_FETCH_SUCCESS = \"PATRONS_FETCH_SUCCESS\";\r\nexport const PATRON_FETCH_FAILURE = \"PATRONS_FETCH_FAILURE\";\r\n\r\nexport const PATRON_ADD = \"PATRON_ADD\";\r\nexport const PATRON_ADD_SUCCESS = \"PATRON_ADD_SUCCESS\";\r\nexport const PATRON_ADD_FAILURE = \"PATRON_ADD_FAILURE\";\r\n\r\nexport const PATRON_REM = \"PATRON_REM\";\r\nexport const PATRON_REM_SUCCESS = \"PATRON_REM_SUCCESS\";\r\nexport const PATRON_REM_FAILURE = \"PATRON_REM_FAILURE\";\r\n\r\nexport const LOAD_PATRON = \"LOAD_PATRON\";\r\nexport const LOAD_ACCT = \"LOAD_ACCOUNT\";\r\nexport const CLEAR_LOADED = \"CLEAR_LOADED\";\r\n\r\nexport const FETCH_TRANS = \"FETCH_TRANSACTIONS\";\r\nexport const FETCH_TRANS_SUCCESS = \"FETCH_TRANSACTIONS_SUCCESS\";\r\nexport const FETCH_TRANS_FAILURE = \"FETCH_TRANSACTIONS_FAILURE\";\r\n\r\nexport const FETCH_DEP_BY_PATRON = \"FETCH_DEPOSITS_BY_PATRON\";\r\nexport const FETCH_DEP_BY_PATRON_SUCCESS = \"FETCH_DEPOSITS_BY_PATRON_SUCCESS\";\r\nexport const FETCH_DEP_BY_PATRON_FAILURE = \"FETCH_DEPOSITS_BY_PATRON_FAILURE\";\r\n\r\nexport const FETCH_DEP_BY_ACCT = \"FETCH_DEPOSITS_BY_ACCOUNT\";\r\nexport const FETCH_DEP_BY_ACCT_SUCCESS = \"FETCH_DEPOSITS_BY_ACCOUNT_SUCCESS\";\r\nexport const FETCH_DEP_BY_ACCT_FAILURE = \"FETCH_DEPOSITS_BY_ACCOUNT_FAILURE\";\r\n\r\nexport const SCHOOL_FETCH = \"GET_SCHOOLS\";\r\nexport const SCHOOL_FETCH_SUCCESS = \"GET_SCHOOLS_SUCCESS\";\r\nexport const SCHOOL_FETCH_FAILURE = \"GET_SCHOOLS_FAILURE\";\r\n\r\nexport const GET_SCHOOL_FEES = \"GET_SCHOOL_FEES\";\r\nexport const GET_SCHOOL_FEES_SUCCESS = \"GET_SCHOOL_FEES_SUCCESS\";\r\nexport const GET_SCHOOL_FEES_FAILURE = \"GET_SCHOOL_FEES_FAILURE\";\r\n\r\nexport const GET_BALANCE_NOTIF = \"GET_BALANCE_NOTIFICATIONS\";\r\nexport const GET_BALANCE_NOTIF_SUCCESS = \"GET_BALANCE_NOTIFICATIONS_SUCCESS\";\r\nexport const GET_BALANCE_NOTIF_FAILURE = \"GET_BALANCE_NOTIFICATIONS_FAILURE\";\r\n\r\nexport const UPDATE_BALANCE_NOTIF = \"UPDATE_BALANCE_NOTIFICATIONS\";\r\nexport const UPDATE_BALANCE_NOTIF_SUCCESS = \"UPDATE_BALANCE_NOTIFICATIONS_SUCCESS\";\r\nexport const UPDATE_BALANCE_NOTIF_FAILURE = \"UPDATE_BALANCE_NOTIFICATIONS_FAILURE\";\r\n\r\nexport const CLEAR_SCHOOLS = \"CLEAR_SCHOOLS\";\r\n\r\n//TODO: Revisit and Review. From student src that is supposed to be student specific but had to move it here because of the shared component and babel\r\nexport const GET_PATRON_ACCOUNT = \"GET_PATRON_ACCOUNT\";\r\nexport const GET_PATRON_ACCOUNT_SUCCESS = \"GET_PATRON_ACCOUNT_SUCCESS\";\r\nexport const GET_PATRON_ACCOUNT_FAILURE = \"GET_PATRON_ACCOUNT_FAILURE\";\r\n\r\nexport const GET_PATRON_DATA = \"GET_PATRON_DATA\";\r\nexport const GET_PATRON_DATA_SUCCESS = \"GET_PATRON_DATA_SUCCESS\";\r\nexport const GET_PATRON_DATA_FAILURE = \"GET_PATRON_DATA_FAILURE\";\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/constants/PatronsConstants.js","import * as PushHandler from './PushHandler.js';\nimport {getUserNotificationSettings, updateGlobalPush} from '../actions/UserAction.js';\n\nlet push;\nlet appRouter;\n\nexport async function initPushNotifications(dispatch, routerObj) {\n if(!Utils.isApp()) return;\n // Should be defined when App mounts, no need to do it again\n if (_.isUndefined(appRouter)) appRouter = routerObj;\n\n const PushNotifications = await window.Capacitor.Plugins.PushNotifications;\n const devicePlatform = await window.Capacitor.getPlatform();\n\n await PushNotifications.addListener('registration', token => {\n if(token.value !== Utils.getFromStorage('devicePushRegID')) dispatch(getUserNotificationSettings(token.value));\n });\n\n await PushNotifications.addListener('registrationError', err => {\n console.warn('Registration error: ', err.error);\n });\n\n await PushNotifications.addListener('pushNotificationReceived', notification => {\n console.warn('Push notification received: ', notification);\n });\n\n await PushNotifications.addListener('pushNotificationActionPerformed', action => {\n console.warn('Push notification action performed', {\n notification: action.actionId,\n data: action.notification.data\n });\n\n handleNotification(action.notification.data.notificationType, action.notification.data.payloadObject);\n });\n\n let permissionState = await PushNotifications.checkPermissions();\n\n if (permissionState.receive === 'prompt') {\n if(Utils.getFromStorage('devicePushRegID') === null || Utils.getFromStorage('devicePushRegID') === undefined) permissionState = await PushNotifications.requestPermissions();\n }\n\n if (permissionState.receive == 'granted') {\n await PushNotifications.register();\n } else {\n console.warn('push notification not granted!');\n setAppPushEnabled(false);\n }\n}\n\nexport function changeRoute(route = '/') {\n appRouter.push(route);\n}\n\nexport function setAppPushEnabled(isEnabled) {\n Utils.updateStorage('appPushEnabled', isEnabled);\n}\n\nexport async function getPushNotificationState() {\n if(!Utils.isApp()) return false;\n const PushNotifications = window.Capacitor.Plugins.PushNotifications;\n const devicePlatform = window.Capacitor.getPlatform();\n return await PushNotifications.checkPermissions();\n}\n\nfunction handleNotification(type, payload) {\n switch (type) {\n case 'PaymentExpired':\n appRouter.push('/settings');\n PushHandler.paymentExpired();\n break;\n case 'PaymentInvalid':\n appRouter.push('/settings');\n PushHandler.paymentInvalid();\n break;\n case 'ScheduledDepositSucceeded':\n appRouter.push('/deposit');\n //PushHandler.scheduledSuccessful(payload.depositID);\n break;\n case 'ScheduledDepositFailed':\n appRouter.push('/deposit');\n //PushHandler.scheduledFailed(payload.scheduledDepositID);\n break;\n case 'ScheduledDepositInvalid':\n appRouter.push('/deposit');\n //PushHandler.scheduledInvalid(payload.scheduledDepositID);\n break;\n case 'ScheduledDepositPreview':\n appRouter.push('/deposit');\n //PushHandler.upcomingScheduledDeposit(payload.scheduledDepositID);\n break;\n case 'LowBalanceWarning':\n appRouter.push('/');\n //PushHandler.lowBalance(payload);\n break;\n default:\n appRouter.push('/');\n break;\n }\n}\n\n\n// WEBPACK FOOTER //\n// app/common/js/Push.js","import _ from 'underscore';\r\nimport {getSubscriptionFee, updateSubscriptionForm} from '../../common/actions/SubAction.js';\r\n\r\nlet subDefaults = {\r\n details: [],\r\n interval: 2,\r\n intervalValue: 1,\r\n dayOfWeek: 'Sunday',\r\n fee: 0,\r\n errors: []\r\n};\r\n\r\n/**\r\n * Probably the most complicated component in the whole app. Each bit isn't\r\n * that bad, but as a whole things can get a little complex. There's some\r\n * clunkiness that came from designing a working prototype first and then\r\n * plugging it into the API, which had a different set of contrainsts, later,\r\n * but for the most part the \"messy\" bits are a bit on conversion.\r\n */\r\nclass Sub {\r\n constructor(subInfo = subDefaults) {\r\n this._dayOfWeekID = {\r\n Sunday: 0,\r\n Monday: 1,\r\n Tuesday: 2,\r\n Wednesday: 3,\r\n Thursday: 4,\r\n Friday: 5,\r\n Saturday: 6,\r\n undefined: null\r\n };\r\n\r\n this._weekNumObj = {\r\n First: 0,\r\n Second: 1,\r\n Third: 2,\r\n Fourth: 3,\r\n Last: -1\r\n };\r\n\r\n this._scheduleTypeID = {\r\n \"weekly\": 2,\r\n \"week-monthly\": 3,\r\n \"day-monthly\": 4\r\n };\r\n\r\n this._intervalID = {\r\n weeklyByInterval: {\r\n 1: 1,\r\n 2: 2,\r\n 3: 3\r\n },\r\n monthlyByDay: {\r\n First: 4,\r\n Second: 5,\r\n Third: 6,\r\n Fourth: 7,\r\n Last: 8\r\n },\r\n monthlyByDate: {\r\n 1: 9,\r\n 2: 10,\r\n 3: 11,\r\n 4: 12,\r\n 5: 13,\r\n 6: 14,\r\n 7: 15,\r\n 8: 16,\r\n 9: 17,\r\n 10: 18,\r\n 11: 19,\r\n 12: 20,\r\n 13: 21,\r\n 14: 22,\r\n 15: 23,\r\n 16: 24,\r\n 17: 25,\r\n 18: 26,\r\n 19: 27,\r\n 20: 28,\r\n 21: 29,\r\n 22: 30,\r\n 23: 31,\r\n 24: 32,\r\n 25: 33,\r\n 26: 34,\r\n 27: 35,\r\n 28: 36,\r\n 29: 37,\r\n 30: 38,\r\n 31: 39\r\n }\r\n };\r\n this.SUB_MINIMUM = 20;\r\n\r\n this.id = subInfo.scheduledDepositID;\r\n let deposits;\r\n if (_.isArray(subInfo.details)) {\r\n deposits = this._convertDepositDetails(subInfo.details);\r\n }\r\n this.deposits = deposits || [];\r\n this.payment = _.isUndefined(subInfo.payment) ? !_.isUndefined(subInfo.stripePaymentSourceID) ? Utils.getPaymentByStripeIDFromStorage(subInfo.stripePaymentSourceID) : {} : subInfo.payment;\r\n this.interval = subInfo.scheduleTypeID || 2;\r\n this.intervalValue = this.parseIntervalID(this.interval, subInfo.scheduledTaskIntervalID) || 1;\r\n let defaultDayOfWeek = this.interval === 4 ? null : 0;\r\n this.dayOfWeek = subInfo.dayOfWeek || defaultDayOfWeek;\r\n this.fee = subInfo.totalUserFeeAmount || 0;\r\n this.errors = subInfo.errors || [];\r\n this.pauseEndDate = subInfo.pauseEndDate || null;\r\n this.paused = subInfo.paused || null;\r\n }\r\n\r\n /**\r\n * Gets all the certain days (Sunday, Monday, etc) in a month\r\n * @param {Boolean} next Whether or not to get the days for the next month\r\n *\r\n * @return {Array} Array of all days of day of week in a month\r\n */\r\n _getMonthDays(next = false) {\r\n let d = new Date();\r\n let month = d.getMonth();\r\n let occuring = [];\r\n\r\n if (next) {\r\n if (month === 11) {\r\n // Go to next year\r\n month = 0;\r\n d.setFullYear(d.getFullYear() + 1);\r\n } else {\r\n month += 1;\r\n }\r\n d.setMonth(month);\r\n }\r\n\r\n // Go from the first day of the month\r\n d.setDate(1);\r\n\r\n // Find the first instance of that day\r\n while (d.getDay() !== Number(this.dayOfWeek)) {\r\n d.setDate(d.getDate() + 1);\r\n }\r\n\r\n while (d.getMonth() === month) {\r\n occuring.push(new Date(d.getTime()));\r\n d.setDate(d.getDate() + 7);\r\n }\r\n\r\n return occuring;\r\n }\r\n\r\n /**\r\n * Gets the next Sunday, Monday, etc\r\n */\r\n _nextScheduledDay() {\r\n let date = new Date();\r\n let resultDate = new Date(date.getTime());\r\n\r\n resultDate.setDate(date.getDate() + (7 + this.dayOfWeek - date.getDay()) % 7);\r\n\r\n return resultDate;\r\n }\r\n\r\n /**\r\n * Gets the next nth (read: 15th, 26th, etc) day of the month\r\n */\r\n _nthOfMonth() {\r\n const d = new Date();\r\n let daysInMonth = this._daysInMonth(d);\r\n\r\n // If that day has already passed, or it's the final day of the month, get it for next month\r\n if (d.getDate() >= this.intervalValue || d.getDate() === daysInMonth) {\r\n d.setMonth(d.getMonth() + 1);\r\n daysInMonth = this._daysInMonth(d);\r\n }\r\n\r\n if (this.intervalValue > daysInMonth) {\r\n // If the user has selected the 31st, but there are only 28/30 days in the month\r\n d.setDate(daysInMonth);\r\n } else {\r\n d.setDate(this.intervalValue);\r\n }\r\n\r\n return d;\r\n }\r\n\r\n /**\r\n * Gets the total days in the month set by the Date d\r\n * @param {Date} d Date class to get the days of month for\r\n */\r\n _daysInMonth(d) {\r\n const check = new Date(d.getFullYear(), d.getMonth() + 1, 0);\r\n\r\n return check.getDate();\r\n }\r\n\r\n _convertDepositDetails(details) {\r\n return _.map(details, deposit => {\r\n if (_.isUndefined(deposit.patronID)) {\r\n deposit.patronID = deposit.patron.patronID;\r\n deposit.id = deposit.patron.patronID;\r\n }\r\n return {\r\n ...deposit,\r\n checkingAccountID: deposit.patron.checkingAccountID,\r\n subAccountID: null, // Gotta have this bit for the API ¯\\_(ツ)_/¯\r\n priceEach: null,\r\n quantity: null\r\n };\r\n });\r\n }\r\n\r\n _formatSubDetails(item) {\r\n return {\r\n patronID: item.patronID,\r\n checkingAccountID: item.checkingAccountID,\r\n patron: {\r\n patronID: item.patronID,\r\n checkingAccountID: item.checkingAccountID\r\n },\r\n depositAmount: item.depositAmount,\r\n subAccountID: item.subAccountID,\r\n priceEach: item.priceEach,\r\n quantity: item.quantity\r\n };\r\n }\r\n\r\n /**\r\n * Adds deposit object to scheduled deposit\r\n * @param {Object} dep Deposit information\r\n * @param {Function} dispatch Dispatch function\r\n */\r\n addDeposit(dep, dispatch) {\r\n if ((Utils.isNumber(dep.depositAmount) || dep.depositAmount === '') && dep.id !== undefined) {\r\n let exists = _.findIndex(this.deposits, d => {\r\n return d.id === dep.id;\r\n });\r\n\r\n if (exists === -1) { // New deposit\r\n if (Number(dep.depositAmount) === 0 || dep.depositAmount === '') return;\r\n this.deposits.push(dep);\r\n } else if (Number(dep.depositAmount) === 0 || dep.depositAmount === '') { // Remove deposit\r\n this.deposits.splice(exists, 1);\r\n } else { // Update deposit\r\n // instead of overriding the entire object only update the amount\r\n this.deposits[exists].depositAmount = dep.depositAmount;\r\n }\r\n\r\n dispatch(updateSubscriptionForm(this));\r\n // if (this.getDepositsTotal() > this.SUB_MINIMUM) dispatch(getSubscriptionFee(this.deposits));\r\n }\r\n }\r\n\r\n /**\r\n * Generates english sentence for use in sub card and subscription information\r\n * @param {Boolean} header Whether or not to truncacte the sentence for a header\r\n *\r\n * @return {String} Generated english sentence\r\n */\r\n generateSentence(header = false) {\r\n let generated = 'every ';\r\n let ending = ' of the month';\r\n\r\n let dayOfWeekPredicate = id => {\r\n return id === this.dayOfWeek;\r\n };\r\n\r\n if (this.interval === 2) {\r\n const numMap = {\r\n 1: \"\",\r\n 2: \"other \",\r\n 3: \"third \"\r\n };\r\n\r\n generated = generated + numMap[this.intervalValue] + _.findKey(this._dayOfWeekID, dayOfWeekPredicate);\r\n ending = '';\r\n } else if (this.interval === 3) {\r\n generated = generated + this.intervalValue.toLowerCase() + ' ' + _.findKey(this._dayOfWeekID, dayOfWeekPredicate);\r\n } else if (this.interval === 4) {\r\n generated = generated + Utils.daySuffix(this.intervalValue) + ' day';\r\n if (this.intervalValue >= 30 && !header) ending += ' (or closest available date)';\r\n } else {\r\n generated = '';\r\n ending = '';\r\n }\r\n\r\n return generated + ending;\r\n }\r\n\r\n // All of these getter functions could be replaced with ES6 getter functions for easy \"cool\" points\r\n\r\n /**\r\n * Formats the scheduled deposit for use with the API\r\n */\r\n getApiBody() {\r\n return {\r\n stripePaymentSourceID: this.payment.stripeCardID,\r\n scheduleTypeID: this.interval,\r\n intervalID: this.getIntervalID(),\r\n dayOfWeek: this.dayOfWeek,\r\n scheduledDepositDetails: _.map(this.deposits, Utils.formatCartItem)\r\n };\r\n }\r\n\r\n /**\r\n * Gets the english day of the week (instead of the id value)\r\n */\r\n getDayOfWeek() {\r\n return _.findKey(this._dayOfWeekID, id => {\r\n return id === this.dayOfWeek;\r\n });\r\n }\r\n\r\n /**\r\n * Returns all current deposits\r\n */\r\n getDeposits() {\r\n return this.deposits;\r\n }\r\n\r\n /**\r\n * Returns the scheduled deposit total (minus the fee)\r\n */\r\n getDepositsTotal() {\r\n return _.reduce(this.deposits, (memo, deposit) => {\r\n return memo + deposit.depositAmount;\r\n }, 0);\r\n }\r\n\r\n /**\r\n * Returns the current fee\r\n */\r\n getFee() {\r\n return this.fee;\r\n }\r\n\r\n /**\r\n * Returns the interval ID based on the interval and interval value\r\n */\r\n getIntervalID() {\r\n if (this.interval === 2) {\r\n return this._intervalID.weeklyByInterval[this.intervalValue];\r\n } else if (this.interval === 3) {\r\n return this._intervalID.monthlyByDay[this.intervalValue];\r\n } else if (this.interval === 4) {\r\n return this._intervalID.monthlyByDate[this.intervalValue];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Returns the last 4 of the selected payment method\r\n */\r\n getLast4() {\r\n return this.payment.last4;\r\n }\r\n\r\n /**\r\n * Returns a string of the next charge of the current scheduled deposit\r\n */\r\n getNextCharge() {\r\n let date;\r\n\r\n if (this.interval === 2) {\r\n date = this._nextScheduledDay();\r\n } else if (this.interval === 3) {\r\n let days = this._getMonthDays();\r\n const weekNum = this._weekNumObj[this.intervalValue];\r\n if (weekNum === -1 ||\r\n Number(weekNum + 1) > days.length) {\r\n date = days.pop();\r\n } else {\r\n date = days[weekNum];\r\n }\r\n\r\n if (date.getDate() < new Date().getDate()) {\r\n days = this._getMonthDays(true);\r\n if (weekNum === -1 ||\r\n Number(weekNum + 1) > days.length) {\r\n date = days.pop();\r\n } else {\r\n date = days[weekNum];\r\n }\r\n }\r\n } else if (this.interval === 4) {\r\n date = this._nthOfMonth();\r\n }\r\n\r\n return Utils.dateFormat(date);\r\n }\r\n\r\n getPayment() {\r\n return this.payment;\r\n }\r\n\r\n getSubDetails() {\r\n return {\r\n scheduledDepositID: this.id,\r\n stripePaymentSourceID: this.payment,\r\n scheduledTaskIntervalID: this.getIntervalID(),\r\n scheduleTypeID: this.interval,\r\n intervalID: this.getIntervalID(),\r\n dayOfWeek: this.dayOfWeek,\r\n details: _.map(this.deposits, this._formatSubDetails),\r\n nextScheduledDate: this.getNextCharge(),\r\n totalUserFeeAmount: this.fee,\r\n payment: this.payment\r\n };\r\n }\r\n\r\n getSubId() {\r\n return this.id;\r\n }\r\n\r\n /**\r\n * Returns the scheduled deposit total\r\n */\r\n getTotal() {\r\n return this.getDepositsTotal() + this.fee;\r\n }\r\n\r\n /**\r\n * Returns the english value for the week number based on the interval value (first, seconc, etc)\r\n */\r\n getWeekNum() {\r\n return _.findKey(this._weekNumObj, (key, value) => {\r\n return value === this.intervalValue;\r\n });\r\n }\r\n\r\n identicalTo(subInfo) {\r\n function matchingDeposits(currentDep, checkAgainst) {\r\n //TODO needs to have a more robust solution\r\n //if(currentDep.length !== checkAgainst.length) return false;\r\n return _.every(checkAgainst, dep => {\r\n // Loop through all deposits in the current sub\r\n return _.some(currentDep, checkDep => {\r\n // Loop through all the deposits on the sub being compared\r\n return (checkDep.patronID === dep.patronID) &&\r\n (checkDep.depositAmount === dep.depositAmount);\r\n });\r\n });\r\n }\r\n const mismatchingInterval = this.interval !== subInfo.scheduleTypeID;\r\n const mismatchedIntervalValue = String(this.intervalValue) !== this.parseIntervalID(subInfo.scheduleTypeID, subInfo.scheduledTaskIntervalID);\r\n const differentDayOfWeek = this.dayOfWeek !== subInfo.dayOfWeek;\r\n const differentPaymentCard = this.payment.stripeCardID !== subInfo.payment.stripeCardID;\r\n if (mismatchingInterval) {\r\n return false;\r\n } else if (mismatchedIntervalValue) {\r\n return false;\r\n } else if (differentDayOfWeek) {\r\n return false;\r\n } else if (!matchingDeposits(this.deposits, subInfo.details)) {\r\n return false;\r\n } else if (differentPaymentCard) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Turns the interval ID into an interval value\r\n * @param {Number} intervalID Interval ID sent from the API\r\n */\r\n parseIntervalID(interval, intervalID) {\r\n const predicate = (key, value) => {\r\n return key === intervalID;\r\n };\r\n if (interval === 2) {\r\n return _.findKey(this._intervalID.weeklyByInterval, predicate);\r\n } else if (interval === 3) {\r\n return _.findKey(this._intervalID.monthlyByDay, predicate);\r\n } else if (interval === 4) {\r\n return _.findKey(this._intervalID.monthlyByDate, predicate);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Sets the day of week ID\r\n * @param {String} day Selected day of the week (Sunday, Monday, etc)\r\n */\r\n setDayOfWeek(day) {\r\n this.dayOfWeek = this._dayOfWeekID[day];\r\n }\r\n\r\n /**\r\n * Sets the fee. EXCITING!\r\n * @param {Number} fee The fee we charge\r\n */\r\n setFee(fee) {\r\n this.fee = fee;\r\n }\r\n\r\n /**\r\n * Sets the payment\r\n * @param {Object} payment Payment object\r\n */\r\n setPayment(payment) {\r\n this.payment = payment;\r\n }\r\n\r\n /**\r\n * Sets the interval from the interval string sent by the front end.\r\n * A bit of a relic from the original design. It was easier to convert\r\n * than to rewrite the front-end.\r\n * @param {String} interval Interval string from the front-end\r\n */\r\n setInterval(interval) {\r\n this.interval = this._scheduleTypeID[interval];\r\n\r\n // If the interval doesn't require a day of week, clear dayOfWeek\r\n if (interval === 'day-monthly') this.setDayOfWeek(undefined);\r\n }\r\n\r\n /**\r\n * Sets the interval value\r\n * @param {Number} intervalValue Interval value used by interval\r\n */\r\n setIntervalValue(intervalValue) {\r\n this.intervalValue = intervalValue;\r\n }\r\n}\r\n\r\nexport default Sub;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/js/Sub.js","class CoppaUtils {\r\n\r\n /**\r\n * Validate is user is coppa compliant\r\n * @param {Object} authData\r\n *\r\n * @return {Bool} Whether the dob is valid\r\n */\r\n coppafyNewUser(userCoppa, action) {\r\n\r\n if(_.isEmpty(userCoppa) || _.isEmpty(userCoppa.origBirthdate) || userCoppa.isCompliant) {\r\n return true;\r\n } else if(!_.isUndefined(userCoppa.error) && !_.isEmpty(userCoppa.origBirthdate)) {\r\n const coppaTimer = 30;\r\n let attemptTime = _.isDate(userCoppa.eventTime) ? userCoppa.eventTime : new Date(Date.parse(userCoppa.eventTime));\r\n const minutesSince = Utils.minutesSince(attemptTime);\r\n\r\n if(minutesSince < coppaTimer && userCoppa.error.errors[0].error.errorCode === \"CoppaBirthdateInvalid\") {\r\n if(_.isUndefined(action)) {\r\n Utils.updateModal('confirm', {\r\n msg: userCoppa.error.errors[0].error.errorMessage\r\n });\r\n } else {\r\n Utils.updateModal('confirm', {\r\n msg: userCoppa.error.errors[0].error.errorMessage,\r\n clickHandler: () => {\r\n action();\r\n }\r\n });\r\n }\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nconst CU = new CoppaUtils();\r\n\r\nexport default CU;\n\n\n// WEBPACK FOOTER //\n// app/common/js/coppa.js","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Swiper from 'react-swipeable';\r\n\r\nimport NavLink from '../../../common/components/NavLink/NavLink.jsx';\r\nimport MenuAlert from '../MenuAlert/MenuAlert.jsx';\r\n\r\n // Parent component.\r\n // Houses swiping component for closing sidebar on mobile.\r\nclass Sidebar extends React.Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nSidebar.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n persisted: PropTypes.bool,\r\n token: PropTypes.string,\r\n userID: PropTypes.number,\r\n rememberAlerts: PropTypes.array\r\n};\r\n\r\n/**\r\n * Contains the links to other routes.\r\n */\r\nclass SideNav extends React.Component {\r\n confirmSignOut(e) {\r\n Utils.updateModal('sign-out', {persisted: this.props.persisted});\r\n }\r\n\r\n swipeClose(e, deltaX, isFlick) {\r\n if (isFlick) {\r\n $('#mobileMenu').collapse('hide');\r\n }\r\n }\r\n\r\n onEventCapture(e) {\r\n let checkpoint = e.target.localName === \"li\" ? e.target.parentElement : e.target;\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {focalPointID: 'dummy-app-body', checkpoint: checkpoint}}));\r\n }\r\n\r\n render() {\r\n let menuContent = (\r\n
\r\n );\r\n\r\n return (\r\n
\r\n {this.props.isMobile ?\r\n \r\n {menuContent}\r\n :\r\n
\r\n {menuContent}\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nSideNav.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n isMobile: PropTypes.bool,\r\n persisted: PropTypes.bool\r\n};\r\n\r\nexport {SideNav};\r\nexport default Sidebar;\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Sidebar/Sidebar.jsx","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_advance-string-index.js\n// module id = 181\n// module chunks = 0","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-fill.js\n// module id = 182\n// module chunks = 0","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-species-create.js\n// module id = 183\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_create-property.js\n// module id = 184\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_dom-create.js\n// module id = 185\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_enum-bug-keys.js\n// module id = 186\n// module chunks = 0","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fails-is-regexp.js\n// module id = 187\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_html.js\n// module id = 188\n// module chunks = 0","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_inherit-if-required.js\n// module id = 189\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array-iter.js\n// module id = 190\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-create.js\n// module id = 191\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-define.js\n// module id = 192\n// module chunks = 0","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_math-expm1.js\n// module id = 193\n// module chunks = 0","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_math-sign.js\n// module id = 194\n// module chunks = 0","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_microtask.js\n// module id = 195\n// module chunks = 0","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_new-promise-capability.js\n// module id = 196\n// module chunks = 0","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_regexp-exec.js\n// module id = 197\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-proto.js\n// module id = 198\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared-key.js\n// module id = 199\n// module chunks = 0","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-context.js\n// module id = 200\n// module chunks = 0","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-repeat.js\n// module id = 201\n// module chunks = 0","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-ws.js\n// module id = 202\n// module chunks = 0","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_task.js\n// module id = 203\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_typed-buffer.js\n// module id = 204\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks-define.js\n// module id = 205\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/core.get-iterator-method.js\n// module id = 206\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.iterator.js\n// module id = 207\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/hmac.js\n// module id = 208\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha1.js\n// module id = 209\n// module chunks = 0","\"use strict\";\n\nvar _undefined = require(\"../function/noop\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/is-value.js\n// module id = 210\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyObject.js\n// module id = 211\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/shallowEqual.js\n// module id = 212\n// module chunks = 0","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar createFocusTrap = require('focus-trap');\n\nvar checkedProps = ['active', 'paused', 'tag', 'focusTrapOptions', '_createFocusTrap'];\n\nvar FocusTrap = function (_React$Component) {\n _inherits(FocusTrap, _React$Component);\n\n function FocusTrap(props) {\n _classCallCheck(this, FocusTrap);\n\n var _this = _possibleConstructorReturn(this, (FocusTrap.__proto__ || Object.getPrototypeOf(FocusTrap)).call(this, props));\n\n _this.setNode = function (el) {\n _this.node = el;\n };\n\n if (typeof document !== 'undefined') {\n _this.previouslyFocusedElement = document.activeElement;\n }\n return _this;\n }\n\n _createClass(FocusTrap, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // We need to hijack the returnFocusOnDeactivate option,\n // because React can move focus into the element before we arrived at\n // this lifecycle hook (e.g. with autoFocus inputs). So the component\n // captures the previouslyFocusedElement in componentWillMount,\n // then (optionally) returns focus to it in componentWillUnmount.\n var specifiedFocusTrapOptions = this.props.focusTrapOptions;\n var tailoredFocusTrapOptions = {\n returnFocusOnDeactivate: false\n };\n for (var optionName in specifiedFocusTrapOptions) {\n if (!specifiedFocusTrapOptions.hasOwnProperty(optionName)) continue;\n if (optionName === 'returnFocusOnDeactivate') continue;\n tailoredFocusTrapOptions[optionName] = specifiedFocusTrapOptions[optionName];\n }\n\n this.focusTrap = this.props._createFocusTrap(this.node, tailoredFocusTrapOptions);\n if (this.props.active) {\n this.focusTrap.activate();\n }\n if (this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (prevProps.active && !this.props.active) {\n this.focusTrap.deactivate();\n } else if (!prevProps.active && this.props.active) {\n this.focusTrap.activate();\n }\n\n if (prevProps.paused && !this.props.paused) {\n this.focusTrap.unpause();\n } else if (!prevProps.paused && this.props.paused) {\n this.focusTrap.pause();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.focusTrap.deactivate();\n if (this.props.focusTrapOptions.returnFocusOnDeactivate !== false && this.previouslyFocusedElement && this.previouslyFocusedElement.focus) {\n this.previouslyFocusedElement.focus();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var elementProps = {\n ref: this.setNode\n };\n\n // This will get id, className, style, etc. -- arbitrary element props\n for (var prop in this.props) {\n if (!this.props.hasOwnProperty(prop)) continue;\n if (checkedProps.indexOf(prop) !== -1) continue;\n elementProps[prop] = this.props[prop];\n }\n\n return React.createElement(this.props.tag, elementProps, this.props.children);\n }\n }]);\n\n return FocusTrap;\n}(React.Component);\n\nFocusTrap.defaultProps = {\n active: true,\n tag: 'div',\n paused: false,\n focusTrapOptions: {},\n _createFocusTrap: createFocusTrap\n};\n\nmodule.exports = FocusTrap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/focus-trap-react/dist/focus-trap-react.js\n// module id = 213\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar needsHashchangeListener = _ExecutionEnvironment.canUseDOM && !(0, _DOMUtils.supportsPopstateOnHashchange)();\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) // Ignore extraneous popstate events in WebKit\n return;\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n var handleUnpoppedHashChange = function handleUnpoppedHashChange() {\n return listener(getCurrentLocation());\n };\n\n if (needsHashchangeListener) {\n (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleUnpoppedHashChange);\n }\n\n return function () {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashchangeListener) {\n (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleUnpoppedHashChange);\n }\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state,\n key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/BrowserProtocol.js\n// module id = 214\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createHistory = function createHistory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getCurrentLocation = options.getCurrentLocation,\n getUserConfirmation = options.getUserConfirmation,\n pushLocation = options.pushLocation,\n replaceLocation = options.replaceLocation,\n go = options.go,\n keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n var currentIndex = getCurrentIndex();\n\n currentLocation = nextLocation;\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(allKeys.slice(0, currentIndex + 1), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : createKey();\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/createHistory.js\n// module id = 215\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/runTransitionHook.js\n// module id = 216\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.toLowerCase().indexOf(basename.toLowerCase()) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, object, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/useBasename.js\n// module id = 217\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery,\n parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/useQueries.js\n// module id = 218\n// module chunks = 0","module.exports = {\"1\":\"What is your mother's maiden name?\",\"2\":\"What is your father's middle name?\",\"3\":\"What was the name of your first pet?\",\"4\":\"In what city were you born?\",\"5\":\"What was the name of your first grade school?\",\"6\":\"What is your library card number?\",\"7\":\"What was your first teacher's name?\",\"null\":\"Please select a security question\"}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/constants/SecurityQuestions.json\n// module id = 219\n// module chunks = 0","module.exports = {\"CardDeclined\":[\"paymentInfo\"],\"CardDeclinedInsufficientFunds\":[\"paymentInfo\"],\"CardDeclinedTransactionNotAllowed\":[\"paymentInfo\"],\"CardholderNameRequired\":[\"cardholderName\"],\"CredentialsInvalid\":[\"username\",\"authError\"],\"CredentialsPasswordRequired\":[\"authError\"],\"ECheckholderNameRequired\":[\"echeckHolderName\"],\"ECheckRoutingRequired\":[\"echeckRoutingNumber\"],\"ECheckAccountNumberRequired\":[\"echeckAccountNumber\"],\"EmailInvalid\":[\"email\"],\"EmailLength\":[\"email\"],\"EmailRequired\":[\"email\"],\"EmailsMustMatch\":[\"email2\"],\"Email2Length\":[\"notifEmail2\"],\"Email2Invalid\":[\"notifEmail2\"],\"NotifEmail2Invalid\":[\"notifEmail2\"],\"Email3Length\":[\"notifEmail3\"],\"Email3Invalid\":[\"notifEmail3\"],\"NotifEmail3Invalid\":[\"notifEmail3\"],\"NotificationEmailMustBeDifferent\":[\"notifEmail2\",\"notifEmail3\"],\"ExpMonthRequired\":[\"expMonth\"],\"ExpYearRequired\":[\"expYear\"],\"FirstNameLength\":[\"first\"],\"FirstNameRequired\":[\"first\"],\"InvalidExpMonth\":[\"expMonth\"],\"InvalidExpYear\":[\"expYear\"],\"InvalidZip\":[\"ccZip\"],\"LastNameLength\":[\"last\"],\"LastNameRequired\":[\"last\"],\"live_mode_test_card\":[\"paymentInfo\"],\"OriginalPasswordIncorrect\":[\"ogpassword\"],\"OriginalPasswordRequired\":[\"ogpassword\"],\"PassCodeRequired\":[\"studentID\"],\"PassCodeInvalid\":[\"studentID\"],\"PasswordLength\":[\"password\"],\"PasswordRequired\":[\"password\"],\"PasswordRules\":[\"password\"],\"PasswordInvalidChar\":[\"password\"],\"PasswordsMustMatch\":[\"password2\"],\"PatronNotFound\":[\"studentName\",\"studentID\"],\"PaymentTypeInvalid\":[\"paymentInfo\"],\"CardCountryNotSupported\":[\"paymentInfo\"],\"PhoneAreaCodeInvalidRange\":[\"phone\"],\"PhoneAreaCodeRequired\":[\"phone\"],\"PhoneNumLength\":[\"phone\"],\"PhoneNumRequired\":[\"phone\"],\"PinDigitsOnly\":[\"PinDigitsOnly\"],\"PinLength\":[\"PinLength\"],\"PinRequired\":[\"PinRequired\"],\"RepeatEmailRequired\":[\"email2\"],\"RepeatPasswordRequired\":[\"password2\"],\"SecurityAnswerIncorrect\":[\"securityA\"],\"SecurityAnswerLength\":[\"securityA\"],\"SecurityAnswerRequired\":[\"securityA\"],\"StudentIDRequired\":[\"studentID\"],\"SecurityQuestionIDRequired\":[\"securityQ\"],\"StudentNameRequired\":[\"studentName\"],\"UserIDRequired\":[\"username\"],\"UsernameSpacesNotAllowed\":[\"username\"],\"UsernameLength\":[\"username\"],\"UsernameRequired\":[\"username\"],\"UsernameUnavailable\":[\"username\"],\"UserNotFound\":[\"username\",\"email\"],\"ZipCodeRequired\":[\"ccZip\"],\"PauseEndDateInvalid\":[\"pauseEndDate\"],\"MethodInputParsingFailed\":[\"pauseEndDate\"],\"SubscriptionDepositAmountInvalidRange\":[\"SubscriptionDepositAmountInvalidRange\"],\"SubscriptionTotalDepositAmountInvalidRange\":[\"SubscriptionTotalDepositAmountInvalidRange\"],\"SubscriptionMissingPaymentMethod\":[\"SubscriptionMissingPaymentMethod\"],\"SubscriptionDuplicateSettings\":[\"SubscriptionDuplicateSettings\"],\"InvalidDepositAmount\":[\"InvalidDepositAmount\"],\"InvalidFeeAmount\":[\"InvalidFeeAmount\"],\"InvalidDate\":[\"InvalidDate\"],\"StripeValidationError\":[\"StripeValidationError\"]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/constants/ValidationErrorIDs.json\n// module id = 220\n// module chunks = 0","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/isPlainObject.js\n// module id = 221\n// module chunks = 0","// 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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 222\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = compareObjects;\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 = void 0,\n len = void 0;\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 === 'undefined' ? 'undefined' : _typeof(aValue)) !== 'object' || (typeof bValue === 'undefined' ? 'undefined' : _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}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autowhatever/dist/compareObjects.js\n// module id = 223\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar Danger = require('./Danger');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n type: 'replace text',\n payload: stringText\n });\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: prevInstance._debugID,\n type: 'replace with',\n payload: markup.toString()\n });\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: nextInstance._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array} updates List of update configurations.\n * @internal\n */\n processUpdates: function (parentNode, updates) {\n if (process.env.NODE_ENV !== 'production') {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case 'INSERT_MARKUP':\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'insert child',\n payload: { toIndex: update.toIndex, content: update.content.toString() }\n });\n }\n break;\n case 'MOVE_EXISTING':\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'move child',\n payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n });\n }\n break;\n case 'SET_MARKUP':\n setInnerHTML(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace children',\n payload: update.content.toString()\n });\n }\n break;\n case 'TEXT_CONTENT':\n setTextContent(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace text',\n payload: update.content.toString()\n });\n }\n break;\n case 'REMOVE_NODE':\n removeChild(parentNode, update.fromNode);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'remove child',\n payload: { fromIndex: update.fromIndex }\n });\n }\n break;\n }\n }\n }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/DOMChildrenOperations.js\n// module id = 224\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/DOMNamespaces.js\n// module id = 225\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Injectable ordering of event plugins.\n */\nvar eventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n if (!eventPluginOrder) {\n // Wait until an `eventPluginOrder` is injected.\n return;\n }\n for (var pluginName in namesToPlugins) {\n var pluginModule = namesToPlugins[pluginName];\n var pluginIndex = eventPluginOrder.indexOf(pluginName);\n !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0;\n if (EventPluginRegistry.plugins[pluginIndex]) {\n continue;\n }\n !pluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0;\n EventPluginRegistry.plugins[pluginIndex] = pluginModule;\n var publishedEvents = pluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0;\n }\n }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, pluginModule, eventName) {\n !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0;\n EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (var phaseName in phasedRegistrationNames) {\n if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n var phasedRegistrationName = phasedRegistrationNames[phaseName];\n publishRegistrationName(phasedRegistrationName, pluginModule, eventName);\n }\n }\n return true;\n } else if (dispatchConfig.registrationName) {\n publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);\n return true;\n }\n return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, pluginModule, eventName) {\n !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0;\n EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n if (process.env.NODE_ENV !== 'production') {\n var lowerCasedName = registrationName.toLowerCase();\n EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n /**\n * Ordered list of injected plugins.\n */\n plugins: [],\n\n /**\n * Mapping from event name to dispatch config\n */\n eventNameDispatchConfigs: {},\n\n /**\n * Mapping from registration name to plugin module\n */\n registrationNameModules: {},\n\n /**\n * Mapping from registration name to event name\n */\n registrationNameDependencies: {},\n\n /**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in __DEV__.\n * @type {Object}\n */\n possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null,\n // Trust the developer to only use possibleRegistrationNames in __DEV__\n\n /**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n injectEventPluginOrder: function (injectedEventPluginOrder) {\n !!eventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0;\n // Clone the ordering so it cannot be dynamically mutated.\n eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);\n recomputePluginOrdering();\n },\n\n /**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n injectEventPluginsByName: function (injectedNamesToPlugins) {\n var isOrderingDirty = false;\n for (var pluginName in injectedNamesToPlugins) {\n if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n continue;\n }\n var pluginModule = injectedNamesToPlugins[pluginName];\n if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {\n !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0;\n namesToPlugins[pluginName] = pluginModule;\n isOrderingDirty = true;\n }\n }\n if (isOrderingDirty) {\n recomputePluginOrdering();\n }\n },\n\n /**\n * Looks up the plugin for the supplied event.\n *\n * @param {object} event A synthetic event.\n * @return {?object} The plugin that created the supplied event.\n * @internal\n */\n getPluginModuleForEvent: function (event) {\n var dispatchConfig = event.dispatchConfig;\n if (dispatchConfig.registrationName) {\n return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n }\n if (dispatchConfig.phasedRegistrationNames !== undefined) {\n // pulling phasedRegistrationNames out of dispatchConfig helps Flow see\n // that it is not undefined.\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n\n for (var phase in phasedRegistrationNames) {\n if (!phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]];\n if (pluginModule) {\n return pluginModule;\n }\n }\n }\n return null;\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _resetEventPlugins: function () {\n eventPluginOrder = null;\n for (var pluginName in namesToPlugins) {\n if (namesToPlugins.hasOwnProperty(pluginName)) {\n delete namesToPlugins[pluginName];\n }\n }\n EventPluginRegistry.plugins.length = 0;\n\n var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n for (var eventName in eventNameDispatchConfigs) {\n if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n delete eventNameDispatchConfigs[eventName];\n }\n }\n\n var registrationNameModules = EventPluginRegistry.registrationNameModules;\n for (var registrationName in registrationNameModules) {\n if (registrationNameModules.hasOwnProperty(registrationName)) {\n delete registrationNameModules[registrationName];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n for (var lowerCasedName in possibleRegistrationNames) {\n if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n delete possibleRegistrationNames[lowerCasedName];\n }\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/EventPluginRegistry.js\n// module id = 226\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function (Injected) {\n ComponentTree = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function (Injected) {\n TreeTraversal = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nfunction isEndish(topLevelType) {\n return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';\n}\nfunction isStartish(topLevelType) {\n return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\n };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\n }\n event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = null;\n event._dispatchListeners = null;\n return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n isEndish: isEndish,\n isMoveish: isMoveish,\n isStartish: isStartish,\n\n executeDirectDispatch: executeDirectDispatch,\n executeDispatchesInOrder: executeDispatchesInOrder,\n executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n hasDispatches: hasDispatches,\n\n getInstanceFromNode: function (node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function (node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function (a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function (a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function (inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function (target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/EventPluginUtils.js\n// module id = 227\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/KeyEscapeUtils.js\n// module id = 228\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\nvar propTypesFactory = require('prop-types/factory');\n\nvar React = require('react/lib/React');\nvar PropTypes = propTypesFactory(React.isValidElement);\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar hasReadOnlyValue = {\n 'button': true,\n 'checkbox': true,\n 'image': true,\n 'hidden': true,\n 'radio': true,\n 'reset': true,\n 'submit': true\n};\n\nfunction _assertSingleLink(inputProps) {\n !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\\'t want to use valueLink.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\\'t want to use checkedLink') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n value: function (props, propName, componentName) {\n if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n onChange: PropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n checkPropTypes: function (tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var addendum = getDeclarationErrorAddendum(owner);\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\n }\n }\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current value of the input either from value prop or link.\n */\n getValue: function (inputProps) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.value;\n }\n return inputProps.value;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current checked status of the input either from checked prop\n * or link.\n */\n getChecked: function (inputProps) {\n if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.value;\n }\n return inputProps.checked;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @param {SyntheticEvent} event change event to handle\n */\n executeOnChange: function (inputProps, event) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.requestChange(event.target.value);\n } else if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.requestChange(event.target.checked);\n } else if (inputProps.onChange) {\n return inputProps.onChange.call(undefined, event);\n }\n }\n};\n\nmodule.exports = LinkedValueUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/LinkedValueUtils.js\n// module id = 229\n// module chunks = 0","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: null,\n\n /**\n * Optionally injectable hook for processing a queue of child updates. Will\n * later move into MultiChildComponents.\n */\n processChildrenUpdates: null,\n\n injection: {\n injectEnvironment: function (environment) {\n !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactComponentEnvironment.js\n// module id = 230\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a) {\n try {\n func(a);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\n }\n}\n\nvar ReactErrorUtils = {\n invokeGuardedCallback: invokeGuardedCallback,\n\n /**\n * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n * handler are sure to be rethrown by rethrowCaughtError.\n */\n invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n rethrowCaughtError: function () {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n /**\n * To help development we can get better devtools integration by simulating a\n * real browser event.\n */\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {\n var boundFunc = func.bind(null, a);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactErrorUtils.js\n// module id = 231\n// module chunks = 0","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg;\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var ctor = publicInstance.constructor;\n // Only warn when we have a callerName. Otherwise we should be silent.\n // We're probably calling from enqueueCallback. We don't want to warn\n // there because we already warned for the corresponding lifecycle method.\n process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n }\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\n }\n\n return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (internalInstance) {\n // During componentWillMount and render this will still be null but after\n // that will always render to something. At least for now. So we can use\n // this hack.\n return !!internalInstance._renderedComponent;\n } else {\n return false;\n }\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n // Previously we would throw an error if we didn't have an internal\n // instance. Since we want to make it a no-op instead, we mirror the same\n // behavior we have in other enqueue* methods.\n // We also need to ignore callbacks in componentWillMount. See\n // enqueueUpdates.\n if (!internalInstance) {\n return null;\n }\n\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n // TODO: The callback here is ignored when setState is called from\n // componentWillMount. Either fix it or disallow doing so completely in\n // favor of getInitialState. Alternatively, we can disallow\n // componentWillMount during server-side rendering.\n enqueueUpdate(internalInstance);\n },\n\n enqueueCallbackInternal: function (internalInstance, callback) {\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingForceUpdate = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n // Future-proof 15.5\n if (callback !== undefined && callback !== null) {\n ReactUpdateQueue.validateCallback(callback, 'replaceState');\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n }\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n if (!internalInstance) {\n return;\n }\n\n var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n queue.push(partialState);\n\n enqueueUpdate(internalInstance);\n },\n\n enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function (callback, callerName) {\n !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactUpdateQueue.js\n// module id = 232\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals MSApp */\n\n'use strict';\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/createMicrosoftUnsafeLocalFunction.js\n// module id = 233\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nmodule.exports = getEventCharCode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getEventCharCode.js\n// module id = 234\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Meta': 'metaKey',\n 'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getEventModifierState.js\n// module id = 235\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getEventTarget.js\n// module id = 236\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/isEventSupported.js\n// module id = 237\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\n\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n if (prevEmpty || nextEmpty) {\n return prevEmpty === nextEmpty;\n }\n\n var prevType = typeof prevElement;\n var nextType = typeof nextElement;\n if (prevType === 'string' || prevType === 'number') {\n return nextType === 'string' || nextType === 'number';\n } else {\n return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n }\n}\n\nmodule.exports = shouldUpdateReactComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/shouldUpdateReactComponent.js\n// module id = 238\n// module chunks = 0","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example,
is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n //

tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for , including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n var buttonScopeTags = inScopeTags.concat(['button']);\n\n // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n var emptyAncestorInfo = {\n current: null,\n\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n var updatedAncestorInfo = function (oldInfo, tag, instance) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n var info = { tag: tag, instance: instance };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n }\n\n // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n /**\n * Returns whether\n */\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n case 'option':\n return tag === '#text';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n case 'html':\n return tag === 'head' || tag === 'body';\n case '#document':\n return tag === 'html';\n }\n\n // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n\n /**\n * Returns whether\n */\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n /**\n * Given a ReactCompositeComponent instance, return a list of its recursive\n * owners, starting at the root and ending with the instance itself.\n */\n var findOwnerStack = function (instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n do {\n stack.push(instance);\n } while (instance = instance._currentElement._owner);\n stack.reverse();\n return stack;\n };\n\n var didWarn = {};\n\n validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var problematic = invalidParent || invalidAncestor;\n\n if (problematic) {\n var ancestorTag = problematic.tag;\n var ancestorInstance = problematic.instance;\n\n var childOwner = childInstance && childInstance._currentElement._owner;\n var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n var childOwners = findOwnerStack(childOwner);\n var ancestorOwners = findOwnerStack(ancestorOwner);\n\n var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n var i;\n\n var deepestCommon = -1;\n for (i = 0; i < minStackLen; i++) {\n if (childOwners[i] === ancestorOwners[i]) {\n deepestCommon = i;\n } else {\n break;\n }\n }\n\n var UNKNOWN = '(unknown)';\n var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ownerInfo = [].concat(\n // If the parent and child instances have a common owner ancestor, start\n // with that -- otherwise we just start with the parent's owners.\n deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n // If we're warning about an invalid (non-parent) ancestry, add '...'\n invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n if (didWarn[warnKey]) {\n return;\n }\n didWarn[warnKey] = true;\n\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = ' Make sure you don\\'t have any extra whitespace between tags on ' + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/validateDOMNesting.js\n// module id = 239\n// module chunks = 0","/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nexport default function warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/utils/warning.js\n// module id = 240\n// module chunks = 0","export function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var sync = false,\n hasNext = false,\n doneArgs = void 0;\n\n function done() {\n isDone = true;\n if (sync) {\n // Iterate instead of recursing if possible.\n doneArgs = [].concat(Array.prototype.slice.call(arguments));\n return;\n }\n\n callback.apply(this, arguments);\n }\n\n function next() {\n if (isDone) {\n return;\n }\n\n hasNext = true;\n if (sync) {\n // Iterate instead of recursing if possible.\n return;\n }\n\n sync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work.call(this, currentTurn++, next, done);\n }\n\n sync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(this, doneArgs);\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n }\n\n next();\n}\n\nexport function mapAsync(array, work, callback) {\n var length = array.length;\n var values = [];\n\n if (length === 0) return callback(null, values);\n\n var isDone = false,\n doneCount = 0;\n\n function done(index, error, value) {\n if (isDone) return;\n\n if (error) {\n isDone = true;\n callback(error);\n } else {\n values[index] = value;\n\n isDone = ++doneCount === length;\n\n if (isDone) callback(null, values);\n }\n }\n\n array.forEach(function (item, index) {\n work(item, index, function (error, value) {\n done(index, error, value);\n });\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/AsyncUtils.js\n// module id = 241\n// module chunks = 0","import React from 'react';\nimport PropTypes from 'prop-types';\n\n// Works around issues with context updates failing to propagate.\n// Caveat: the context value is expected to never change its identity.\n// https://github.com/facebook/react/issues/2517\n// https://github.com/reactjs/react-router/issues/470\n\nvar contextProviderShape = PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n eventIndex: PropTypes.number.isRequired\n});\n\nfunction makeContextName(name) {\n return '@@contextSubscriber/' + name;\n}\n\nvar prefixUnsafeLifecycleMethods = typeof React.forwardRef !== 'undefined';\n\nexport function ContextProvider(name) {\n var _childContextTypes, _config;\n\n var contextName = makeContextName(name);\n var listenersKey = contextName + '/listeners';\n var eventIndexKey = contextName + '/eventIndex';\n var subscribeKey = contextName + '/subscribe';\n\n var config = (_config = {\n childContextTypes: (_childContextTypes = {}, _childContextTypes[contextName] = contextProviderShape.isRequired, _childContextTypes),\n\n getChildContext: function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextName] = {\n eventIndex: this[eventIndexKey],\n subscribe: this[subscribeKey]\n }, _ref;\n },\n\n\n // this method will be updated to UNSAFE_componentWillMount below for React versions >= 16.3\n componentWillMount: function componentWillMount() {\n this[listenersKey] = [];\n this[eventIndexKey] = 0;\n },\n\n\n // this method will be updated to UNSAFE_componentWillReceiveProps below for React versions >= 16.3\n componentWillReceiveProps: function componentWillReceiveProps() {\n this[eventIndexKey]++;\n },\n componentDidUpdate: function componentDidUpdate() {\n var _this = this;\n\n this[listenersKey].forEach(function (listener) {\n return listener(_this[eventIndexKey]);\n });\n }\n }, _config[subscribeKey] = function (listener) {\n var _this2 = this;\n\n // No need to immediately call listener here.\n this[listenersKey].push(listener);\n\n return function () {\n _this2[listenersKey] = _this2[listenersKey].filter(function (item) {\n return item !== listener;\n });\n };\n }, _config);\n\n if (prefixUnsafeLifecycleMethods) {\n config.UNSAFE_componentWillMount = config.componentWillMount;\n config.UNSAFE_componentWillReceiveProps = config.componentWillReceiveProps;\n delete config.componentWillMount;\n delete config.componentWillReceiveProps;\n }\n return config;\n}\n\nexport function ContextSubscriber(name) {\n var _contextTypes, _config2;\n\n var contextName = makeContextName(name);\n var lastRenderedEventIndexKey = contextName + '/lastRenderedEventIndex';\n var handleContextUpdateKey = contextName + '/handleContextUpdate';\n var unsubscribeKey = contextName + '/unsubscribe';\n\n var config = (_config2 = {\n contextTypes: (_contextTypes = {}, _contextTypes[contextName] = contextProviderShape, _contextTypes),\n\n getInitialState: function getInitialState() {\n var _ref2;\n\n if (!this.context[contextName]) {\n return {};\n }\n\n return _ref2 = {}, _ref2[lastRenderedEventIndexKey] = this.context[contextName].eventIndex, _ref2;\n },\n componentDidMount: function componentDidMount() {\n if (!this.context[contextName]) {\n return;\n }\n\n this[unsubscribeKey] = this.context[contextName].subscribe(this[handleContextUpdateKey]);\n },\n\n\n // this method will be updated to UNSAFE_componentWillReceiveProps below for React versions >= 16.3\n componentWillReceiveProps: function componentWillReceiveProps() {\n var _setState;\n\n if (!this.context[contextName]) {\n return;\n }\n\n this.setState((_setState = {}, _setState[lastRenderedEventIndexKey] = this.context[contextName].eventIndex, _setState));\n },\n componentWillUnmount: function componentWillUnmount() {\n if (!this[unsubscribeKey]) {\n return;\n }\n\n this[unsubscribeKey]();\n this[unsubscribeKey] = null;\n }\n }, _config2[handleContextUpdateKey] = function (eventIndex) {\n if (eventIndex !== this.state[lastRenderedEventIndexKey]) {\n var _setState2;\n\n this.setState((_setState2 = {}, _setState2[lastRenderedEventIndexKey] = eventIndex, _setState2));\n }\n }, _config2);\n\n if (prefixUnsafeLifecycleMethods) {\n config.UNSAFE_componentWillReceiveProps = config.componentWillReceiveProps;\n delete config.componentWillReceiveProps;\n }\n return config;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/ContextUtils.js\n// module id = 242\n// module chunks = 0","import { func, object, shape, string } from 'prop-types';\n\nexport var routerShape = shape({\n push: func.isRequired,\n replace: func.isRequired,\n go: func.isRequired,\n goBack: func.isRequired,\n goForward: func.isRequired,\n setRouteLeaveHook: func.isRequired,\n isActive: func.isRequired\n});\n\nexport var locationShape = shape({\n pathname: string.isRequired,\n search: string.isRequired,\n state: object,\n action: string.isRequired,\n key: string\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/PropTypes.js\n// module id = 243\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport invariant from 'invariant';\nimport React from 'react';\nimport { isValidElementType } from 'react-is';\nimport createReactClass from 'create-react-class';\nimport { array, func, object } from 'prop-types';\n\nimport getRouteParams from './getRouteParams';\nimport { ContextProvider } from './ContextUtils';\nimport { isReactChildren } from './RouteUtils';\n\n/**\n * A <RouterContext> renders the component tree for a given router state\n * and sets the history object and the current location in context.\n */\nvar RouterContext = createReactClass({\n displayName: 'RouterContext',\n\n mixins: [ContextProvider('router')],\n\n propTypes: {\n router: object.isRequired,\n location: object.isRequired,\n routes: array.isRequired,\n params: object.isRequired,\n components: array.isRequired,\n createElement: func.isRequired\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n createElement: React.createElement\n };\n },\n\n\n childContextTypes: {\n router: object.isRequired\n },\n\n getChildContext: function getChildContext() {\n return {\n router: this.props.router\n };\n },\n createElement: function createElement(component, props) {\n return component == null ? null : this.props.createElement(component, props);\n },\n render: function render() {\n var _this = this;\n\n var _props = this.props,\n location = _props.location,\n routes = _props.routes,\n params = _props.params,\n components = _props.components,\n router = _props.router;\n\n var element = null;\n\n if (components) {\n element = components.reduceRight(function (element, components, index) {\n if (components == null) return element; // Don't create new children; use the grandchildren.\n\n var route = routes[index];\n var routeParams = getRouteParams(route, params);\n var props = {\n location: location,\n params: params,\n route: route,\n router: router,\n routeParams: routeParams,\n routes: routes\n };\n\n if (isReactChildren(element)) {\n props.children = element;\n } else if (element) {\n for (var prop in element) {\n if (Object.prototype.hasOwnProperty.call(element, prop)) props[prop] = element[prop];\n }\n }\n\n // Handle components is object for { [name]: component } but not valid element\n // type of react, such as React.memo, React.lazy and so on.\n if ((typeof components === 'undefined' ? 'undefined' : _typeof(components)) === 'object' && !isValidElementType(components)) {\n var elements = {};\n\n for (var key in components) {\n if (Object.prototype.hasOwnProperty.call(components, key)) {\n // Pass through the key as a prop to createElement to allow\n // custom createElement functions to know which named component\n // they're rendering, for e.g. matching up to fetched data.\n elements[key] = _this.createElement(components[key], _extends({\n key: key }, props));\n }\n }\n\n return elements;\n }\n\n return _this.createElement(components, props);\n }, element);\n }\n\n !(element === null || element === false || React.isValidElement(element)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The root route must render a single element') : invariant(false) : void 0;\n\n return element;\n }\n});\n\nexport default RouterContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/RouterContext.js\n// module id = 244\n// module chunks = 0","import createStore from './createStore';\nimport combineReducers from './combineReducers';\nimport bindActionCreators from './bindActionCreators';\nimport applyMiddleware from './applyMiddleware';\nimport compose from './compose';\nimport warning from './utils/warning';\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux/es/index.js\n// module id = 245\n// module chunks = 0","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_createAssigner.js\n// module id = 246\n// module chunks = 0","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_deepGet.js\n// module id = 247\n// module chunks = 0","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_getByteLength.js\n// module id = 248\n// module chunks = 0","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_methodFingerprint.js\n// module id = 249\n// module chunks = 0","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/extendOwn.js\n// module id = 250\n// module chunks = 0","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/findIndex.js\n// module id = 251\n// module chunks = 0","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/identity.js\n// module id = 252\n// module chunks = 0","// ESM Exports\n// ===========\n// This module is the package entry point for ES module users. In other words,\n// it is the module they are interfacing with when they import from the whole\n// package instead of from a submodule, like this:\n//\n// ```js\n// import { map } from 'underscore';\n// ```\n//\n// The difference with `./index-default`, which is the package entry point for\n// CommonJS, AMD and UMD users, is purely technical. In ES modules, named and\n// default exports are considered to be siblings, so when you have a default\n// export, its properties are not automatically available as named exports. For\n// this reason, we re-export the named exports in addition to providing the same\n// default export as in `./index-default`.\nexport { default } from './index-default.js';\nexport * from './index.js';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/index-all.js\n// module id = 253\n// module chunks = 0","// Named Exports\n// =============\n\n// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n// Baseline setup.\nexport { VERSION } from './_setup.js';\nexport { default as restArguments } from './restArguments.js';\n\n// Object Functions\n// ----------------\n// Our most fundamental functions operate on any JavaScript object.\n// Most functions in Underscore depend on at least one function in this section.\n\n// A group of functions that check the types of core JavaScript values.\n// These are often informally referred to as the \"isType\" functions.\nexport { default as isObject } from './isObject.js';\nexport { default as isNull } from './isNull.js';\nexport { default as isUndefined } from './isUndefined.js';\nexport { default as isBoolean } from './isBoolean.js';\nexport { default as isElement } from './isElement.js';\nexport { default as isString } from './isString.js';\nexport { default as isNumber } from './isNumber.js';\nexport { default as isDate } from './isDate.js';\nexport { default as isRegExp } from './isRegExp.js';\nexport { default as isError } from './isError.js';\nexport { default as isSymbol } from './isSymbol.js';\nexport { default as isArrayBuffer } from './isArrayBuffer.js';\nexport { default as isDataView } from './isDataView.js';\nexport { default as isArray } from './isArray.js';\nexport { default as isFunction } from './isFunction.js';\nexport { default as isArguments } from './isArguments.js';\nexport { default as isFinite } from './isFinite.js';\nexport { default as isNaN } from './isNaN.js';\nexport { default as isTypedArray } from './isTypedArray.js';\nexport { default as isEmpty } from './isEmpty.js';\nexport { default as isMatch } from './isMatch.js';\nexport { default as isEqual } from './isEqual.js';\nexport { default as isMap } from './isMap.js';\nexport { default as isWeakMap } from './isWeakMap.js';\nexport { default as isSet } from './isSet.js';\nexport { default as isWeakSet } from './isWeakSet.js';\n\n// Functions that treat an object as a dictionary of key-value pairs.\nexport { default as keys } from './keys.js';\nexport { default as allKeys } from './allKeys.js';\nexport { default as values } from './values.js';\nexport { default as pairs } from './pairs.js';\nexport { default as invert } from './invert.js';\nexport { default as functions,\n default as methods } from './functions.js';\nexport { default as extend } from './extend.js';\nexport { default as extendOwn,\n default as assign } from './extendOwn.js';\nexport { default as defaults } from './defaults.js';\nexport { default as create } from './create.js';\nexport { default as clone } from './clone.js';\nexport { default as tap } from './tap.js';\nexport { default as get } from './get.js';\nexport { default as has } from './has.js';\nexport { default as mapObject } from './mapObject.js';\n\n// Utility Functions\n// -----------------\n// A bit of a grab bag: Predicate-generating functions for use with filters and\n// loops, string escaping and templating, create random numbers and unique ids,\n// and functions that facilitate Underscore's chaining and iteration conventions.\nexport { default as identity } from './identity.js';\nexport { default as constant } from './constant.js';\nexport { default as noop } from './noop.js';\nexport { default as toPath } from './toPath.js';\nexport { default as property } from './property.js';\nexport { default as propertyOf } from './propertyOf.js';\nexport { default as matcher,\n default as matches } from './matcher.js';\nexport { default as times } from './times.js';\nexport { default as random } from './random.js';\nexport { default as now } from './now.js';\nexport { default as escape } from './escape.js';\nexport { default as unescape } from './unescape.js';\nexport { default as templateSettings } from './templateSettings.js';\nexport { default as template } from './template.js';\nexport { default as result } from './result.js';\nexport { default as uniqueId } from './uniqueId.js';\nexport { default as chain } from './chain.js';\nexport { default as iteratee } from './iteratee.js';\n\n// Function (ahem) Functions\n// -------------------------\n// These functions take a function as an argument and return a new function\n// as the result. Also known as higher-order functions.\nexport { default as partial } from './partial.js';\nexport { default as bind } from './bind.js';\nexport { default as bindAll } from './bindAll.js';\nexport { default as memoize } from './memoize.js';\nexport { default as delay } from './delay.js';\nexport { default as defer } from './defer.js';\nexport { default as throttle } from './throttle.js';\nexport { default as debounce } from './debounce.js';\nexport { default as wrap } from './wrap.js';\nexport { default as negate } from './negate.js';\nexport { default as compose } from './compose.js';\nexport { default as after } from './after.js';\nexport { default as before } from './before.js';\nexport { default as once } from './once.js';\n\n// Finders\n// -------\n// Functions that extract (the position of) a single element from an object\n// or array based on some criterion.\nexport { default as findKey } from './findKey.js';\nexport { default as findIndex } from './findIndex.js';\nexport { default as findLastIndex } from './findLastIndex.js';\nexport { default as sortedIndex } from './sortedIndex.js';\nexport { default as indexOf } from './indexOf.js';\nexport { default as lastIndexOf } from './lastIndexOf.js';\nexport { default as find,\n default as detect } from './find.js';\nexport { default as findWhere } from './findWhere.js';\n\n// Collection Functions\n// --------------------\n// Functions that work on any collection of elements: either an array, or\n// an object of key-value pairs.\nexport { default as each,\n default as forEach } from './each.js';\nexport { default as map,\n default as collect } from './map.js';\nexport { default as reduce,\n default as foldl,\n default as inject } from './reduce.js';\nexport { default as reduceRight,\n default as foldr } from './reduceRight.js';\nexport { default as filter,\n default as select } from './filter.js';\nexport { default as reject } from './reject.js';\nexport { default as every,\n default as all } from './every.js';\nexport { default as some,\n default as any } from './some.js';\nexport { default as contains,\n default as includes,\n default as include } from './contains.js';\nexport { default as invoke } from './invoke.js';\nexport { default as pluck } from './pluck.js';\nexport { default as where } from './where.js';\nexport { default as max } from './max.js';\nexport { default as min } from './min.js';\nexport { default as shuffle } from './shuffle.js';\nexport { default as sample } from './sample.js';\nexport { default as sortBy } from './sortBy.js';\nexport { default as groupBy } from './groupBy.js';\nexport { default as indexBy } from './indexBy.js';\nexport { default as countBy } from './countBy.js';\nexport { default as partition } from './partition.js';\nexport { default as toArray } from './toArray.js';\nexport { default as size } from './size.js';\n\n// `_.pick` and `_.omit` are actually object functions, but we put\n// them here in order to create a more natural reading order in the\n// monolithic build as they depend on `_.contains`.\nexport { default as pick } from './pick.js';\nexport { default as omit } from './omit.js';\n\n// Array Functions\n// ---------------\n// Functions that operate on arrays (and array-likes) only, because they’re\n// expressed in terms of operations on an ordered list of values.\nexport { default as first,\n default as head,\n default as take } from './first.js';\nexport { default as initial } from './initial.js';\nexport { default as last } from './last.js';\nexport { default as rest,\n default as tail,\n default as drop } from './rest.js';\nexport { default as compact } from './compact.js';\nexport { default as flatten } from './flatten.js';\nexport { default as without } from './without.js';\nexport { default as uniq,\n default as unique } from './uniq.js';\nexport { default as union } from './union.js';\nexport { default as intersection } from './intersection.js';\nexport { default as difference } from './difference.js';\nexport { default as unzip,\n default as transpose } from './unzip.js';\nexport { default as zip } from './zip.js';\nexport { default as object } from './object.js';\nexport { default as range } from './range.js';\nexport { default as chunk } from './chunk.js';\n\n// OOP\n// ---\n// These modules support the \"object-oriented\" calling style. See also\n// `underscore.js` and `index-default.js`.\nexport { default as mixin } from './mixin.js';\nexport { default } from './underscore-array-methods.js';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/index.js\n// module id = 254\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isArguments.js\n// module id = 255\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isDataView.js\n// module id = 256\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isString.js\n// module id = 257\n// module chunks = 0","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/negate.js\n// module id = 258\n// module chunks = 0","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/now.js\n// module id = 259\n// module chunks = 0","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/pluck.js\n// module id = 260\n// module chunks = 0","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/property.js\n// module id = 261\n// module chunks = 0","/**\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per GeneratorResume behavior specified since ES2015:\n // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next method, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable != null) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/regenerator-runtime/runtime.js\n// module id = 262\n// module chunks = 0","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}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/inheritsLoose.js\n// module id = 263\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED'));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n if (request.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/adapters/xhr.js\n// module id = 264\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/cancel/Cancel.js\n// module id = 265\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/cancel/isCancel.js\n// module id = 266\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/createError.js\n// module id = 267\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/bind.js\n// module id = 268\n// module chunks = 0","/**\r\n *\r\n * Framework for About page. Currently a mockup implementation for ChangeNotes.\r\n * Needs to define design\r\n * Options:\r\n * # bundle\r\n * # api (prefered)\r\n *\r\n */\r\nimport axios from 'axios';\r\nimport axiosRetry from 'axios-retry';\r\nimport * as types from '../constants/AboutConstants.js';\r\nimport ChangeNoteData from '../constants/ChangeNotes.json';\r\nimport {version} from '../../version.json';\r\n\r\naxiosRetry(axios, {retries: 3, retryCondition: response => {\r\n if (response.status === 500) return true;\r\n return false;\r\n}});\r\n\r\nconst currentTime = new Date();\r\n\r\nconst defaultHeader = {\r\n 'API-Changeset': API_CHANGESET,\r\n 'Version': version,\r\n 'Content-Type': 'application/json',\r\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\r\n};\r\n\r\nlet databaseInfoCall = axios.create({\r\n baseURL: APP_API + 'Database/',\r\n headers: defaultHeader\r\n});\r\n\r\n//change notes are serve in the bundle for initial design\r\n//will change the wiring later if we switch to API serve\r\n\r\nfunction serveChangeNotesData() {\r\n return new Promise(function(resolve, reject) {\r\n setTimeout(function() {\r\n resolve(ChangeNoteData);\r\n }, 1000);\r\n });\r\n}\r\n\r\nexport function getChangeNotes() {\r\n return function(dispatch) {\r\n dispatch({type: types.GET_CHANGE_NOTES});\r\n serveChangeNotesData()\r\n .then(response => {\r\n dispatch(getChangeNotesSuccess(response.data));\r\n })\r\n .catch(function(error){\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getChangeNotesFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction getChangeNotesSuccess(changeNotes) {\r\n return {\r\n type: types.GET_CHANGE_NOTES_SUCCESS,\r\n payload: changeNotes\r\n };\r\n}\r\n\r\nfunction getChangeNotesFailure() {\r\n return {\r\n type: types.GET_CHANGE_NOTES_FAILURE\r\n };\r\n}\r\n\r\nexport function getDatabaseVersion() {\r\n return function(dispatch) {\r\n dispatch({type: types.GET_DATABASE_VERSION});\r\n return databaseInfoCall.post('/GetMtoDatabaseVersion', {\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getDatabaseVersionSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n dispatch(getDatabaseVersionFailure());\r\n });\r\n };\r\n}\r\n\r\nexport function getDatabaseVersionSuccess(version) {\r\n return {\r\n type: types.GET_DATABASE_VERSION_SUCCESS,\r\n payload: version\r\n };\r\n}\r\n\r\nexport function getDatabaseVersionFailure() {\r\n return {\r\n type: types.GET_DATABASE_VERSION_FAILURE\r\n };\r\n}\n\n\n// WEBPACK FOOTER //\n// app/common/actions/AboutAction.js","import React from 'react';\r\n\r\nimport AboutUs from './AboutUs.jsx';\r\nimport TermsOfUse from './TermsOfUse.jsx';\r\nimport FAQ from './FAQ.jsx';\r\nimport PrivacyPolicy from './PrivacyPolicy.jsx';\r\nimport ChangeNotes from './ChangeNotes.jsx';\r\nimport CancelAccount from './CancelAccount.jsx';\r\n\r\nimport './AboutComponents.scss';\r\n\r\nclass AboutComponents extends React.Component {\r\n render() {\r\n return (\r\n <div id=\"terms-of-use\">\r\n <ContentAccordion />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nclass ContentAccordion extends React.Component {\r\n /**\r\n * Handles the animation for opening the report accordion\r\n * @param {Event} e Click event\r\n */\r\n displayDownloadButton(e) {\r\n let $elem = $(e.currentTarget.parentElement);\r\n let $caret = $elem.find('.caret-right');\r\n\r\n // Remove closed classes, add open classes\r\n $caret.removeClass('active-caret-closed').addClass('active-caret-open');\r\n // Rotate 90 deg until further notice\r\n $caret.addClass('fa-rotate-90');\r\n }\r\n\r\n /**\r\n * Handles the animation for closing the report accordion\r\n * @param {Event} e Click event\r\n */\r\n hideDownloadButton(e) {\r\n let $caret = $(e.currentTarget.parentElement).find('.caret-right');\r\n\r\n // Find open arrow, close it\r\n $caret.removeClass('active-caret-open fa-rotate-90').addClass('active-caret-closed');\r\n }\r\n\r\n componentDidMount() {\r\n $('.report-option').on('show.bs.collapse', this.displayDownloadButton);\r\n $('.report-option').on('hide.bs.collapse', this.hideDownloadButton);\r\n }\r\n\r\n componentWillUnmount() {\r\n $('.report-option').off('show.bs.collapse', this.displayDownloadButton);\r\n $('.report-option').off('hide.bs.collapse', this.hideDownloadButton);\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n id=\"aboutcomponents-accordion\"\r\n role=\"tablist\"\r\n aria-multiselectable=\"true\"\r\n >\r\n <TermsOfUse />\r\n <PrivacyPolicy />\r\n <FAQ />\r\n <AboutUs />\r\n <ChangeNotes />\r\n <CancelAccount />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default AboutComponents;\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/AboutComponents.jsx","import React from 'react';\r\nimport './Contents.scss';\r\n\r\nclass TermsOfUseContents extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"document-content\">\r\n <p className=\"doc-header\">MealTime - The CLM Group, Inc.</p>\r\n <p className=\"doc-header\">Terms of Use</p>\r\n\r\n <p> </p>\r\n\r\n <p>Revised:  December 1, 2017</p>\r\n\r\n <p className=\"num-list\">1.         <u>Acceptance of the Terms of Use</u>.</p>\r\n\r\n <p>These terms of use are entered into by and between you and MealTime | The CLM Group, Inc. in Portland, Oregon (collectively, “<strong>MealTime</strong>,” “<strong>Company</strong>,” “<strong>us</strong>” or “<strong>we</strong>”).  The following terms and conditions (“<strong>Terms of Use</strong>”), govern your access to and use of, including any content, functionality and services offered on or through the websites maintained by MealTime, which include, but are not limited to, mobile applications, software as a service “SaaS,”  http://www.mealtimeclm.com, https://www.mymealtime.com/, our call center, or other operating platforms through which you choose to access or transmit data to us (collectively, the “Website”).</p>\r\n\r\n <p><strong>CHILDREN UNDER 13 YEARS OF AGE <span className=\"has-error\">CANNOT</span> USE THE WEBSITE WITHOUT THE VERIFIED CONSENT OF A PARENT OR GUARDIAN</strong>. MealTime does not knowingly collect Personal Data from children under 13.  If you are under 13, <strong><span className=\"has-error\">do not</span></strong>: </p>\r\n\r\n <ul>\r\n <li>Register or provide any information about yourself to us, such as your name, address, telephone number, e-mail address or any avatar, screen name or user name you may use to MealTime or any Third Parties through the Website, which includes, mobile applications, SaaS, and other platforms;</li>\r\n <li>Use any of the interactive or public comment features of this Website;</li>\r\n <li>Purchase any item or service through the Website; or</li>\r\n <li>Use or provide any information on this Website or on or through any of its features.</li>\r\n </ul>\r\n\r\n <p>If a child under the age of 13 wants to use the Website, a parent or guardian of that child should contact MealTime and provide the required verifiable consent before permitting your child to access our Website.  If we learn we have collected or received Personal Data from a child under 13 without prior verification of parental or guardian consent, we will delete that information.  If you believe we might have any information from or about a child under 13 without verified parental consent, please contact us at: Privacy@MealTimeCLM.com or at 10200 SW Greenburg Rd, Suite 360, Portland, OR 97223.  We will permit you to review the Personal Data we have received prior to our destruction of it. </p>\r\n\r\n <p>All users over the age of 13 should review the entirety of MealTime’s Privacy and Digital Millennium Copyright Act Policy (“<strong>Policy</strong>”) and the Terms of Use before you consent to the collection and use of your personal data; or post content that may infringe on a work protected by copyright.  If you do not agree with our policies and practices, you have the choice of not using our Website.  <strong>By using the Website or by clicking to accept or agree to the Terms of Use when this option is made available to you, you accept and agree to be bound and abide by these Terms of Use and our Policy, as amended.</strong></p>\r\n\r\n <p className=\"num-list\">2.         <u>Changes to the Terms of Use</u>.</p>\r\n\r\n <p>We may revise and update these Terms of Use from time to time at our sole discretion.  All changes are effective immediately when we post them, and apply to all access to, and use, of the Website thereafter.  However, any changes to the dispute resolution provisions set forth in Governing Law and Jurisdiction will not apply to any disputes for which the parties have actual notice on or prior to the date the provision change is posted on the Website. </p>\r\n\r\n <p>Your continued use of the Website following the posting of revised Terms of Use means that you accept and agree to the changes.  You should check this page from time to time when you access this Website so you are aware of any changes, because as amended, the Terms of Use are binding on you.</p>\r\n\r\n <p className=\"num-list\">3.         <u>Accessing the Website and Account Security</u>.</p>\r\n\r\n <p>We reserve the right to withdraw or amend this Website, and any service or material we provide on the Website, at our sole discretion without notice.  We will not be liable if for any reason, all or any part of the Website is unavailable at any time or for any period.  From time to time, we may restrict access to some parts of the Website, or the entire Website, to users, including registered users.</p>\r\n\r\n <p>To access the Website or some of the resources it offers, you may be asked to provide certain registration details or other information.  It is a condition of your use of the Website that all the information you provide on the Website is correct, current and complete.  You agree that all information you provide to register with this Website or otherwise, including but not limited to, the use of any interactive features on the Website, is governed by our Terms of Use and Policy, and you consent to all actions we take with respect to your information consistent with MealTime’s policies.</p>\r\n\r\n <p>MealTime maintains reasonable administrative, technical and physical safeguards to secure your account, including your Personal Data, PII and User Contributions from accidental loss and from unauthorized access, use, alteration or disclosure.  The safety and security of your account depends, in part, on you.  Where we have given you (or where you have chosen) a password for access to certain parts of the Website, you are responsible for keeping your user name, password or other security information confidential.  If you have reason to believe your account with MealTime has been compromised, you are responsible for reporting the suspected unauthorized access or use to us.  Although your session on the Website expires after thirty (30) minutes of inactivity, you should use particular caution when accessing your account from a public or shared computer so that others are not able to view or record your password or other personal information.</p>\r\n\r\n <p>We have the right to disable any user name, password or other identifier, whether chosen by you or provided by us, at any time in our sole discretion for any or no reason, including if, in our opinion, you have violated any provision of these Terms of Use.</p>\r\n\r\n <p className=\"num-list\">4.         <u>Intellectual Property Rights</u>.</p>\r\n\r\n <p>The Website and its entire contents, features and functionality (including but not limited to all information, software, text, displays, images, video and audio, and the design, selection and arrangement), are owned by MealTime, its licensors or other third party providers of such material and are protected by United States and international copyright, trademark, patent, or proprietary rights laws.</p>\r\n\r\n <p>These Terms of Use permit you to use the Website for your personal, non-commercial use only.  You must not reproduce, distribute, modify, create derivative works of, publicly display, publicly perform, republish, download, store or transmit any of the material on our Website, except as follows:</p>\r\n\r\n <ul>\r\n <li>Your computer may temporarily store copies of such materials in RAM incidental to your accessing and viewing those materials.</li>\r\n <li>You may store files that your web browser automatically caches for display enhancement purposes.</li>\r\n <li>If we provide desktop, mobile or other applications for download, you may download a single copy to your computer or mobile device solely for your own personal, non-commercial use, provided you agree to be bound by our end user license agreement for such applications.</li>\r\n </ul>\r\n\r\n <p>You must not:</p>\r\n\r\n <ul>\r\n <li>Modify copies of any materials from the Website.</li>\r\n <li>Use any illustrations, photographs, video or audio sequences or any graphics separately from the accompanying text.</li>\r\n <li>Delete or alter any copyright or other proprietary rights notices from copies of materials from the Website.</li>\r\n </ul>\r\n\r\n <p>You must not access or use for any commercial purposes any part of the Website or any services or materials available through the Website.  If you wish use of material on the Website other than that set out in this section, please address your request to Privacy@MealTimeCLM.com.   If you print, copy, modify, download or otherwise use or provide any other person with access to any part of the Website in breach of the Terms of Use, your right to use the Website will cease immediately and you must, at our option, return or destroy any copies of the materials you have made.  No right, title or interest in or to the Website or any content on the Website is transferred to you, and MealTime reserves all rights not expressly granted.  Any use of the Website not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate copyright, trademark and other laws.</p>\r\n\r\n <p className=\"num-list\">5.         <u>Copyright Protection under the DMCA / Repeat Infringer Removal Policy</u>.</p>\r\n\r\n <p>We will respond to legitimate requests under the DMCA and we retain the right to remove user content on the MealTime Website that we deem to be infringing the copyright of others.  If you become aware of user content on the Website that infringes your copyright rights, you may submit a properly formatted DMCA request (see 17 U.S.C.  § 512) to MealTime. </p>\r\n\r\n <p>Misrepresentations of infringement can result in liability for monetary damages.  You should consult an attorney before taking any action pursuant to the DMCA.  A DMCA request can be sent to us via the contact information below:</p>\r\n\r\n <p> </p>\r\n <p>\r\n Copyright Agent<br/>\r\n 10200 SW Greenburg Rd, Suite 360<br/>\r\n Portland, OR 97223<br/>\r\n Copyright@MealTimeCLM.com.\r\n </p>\r\n <p>Please send our Copyright Agent the following information:</p>\r\n <p> </p>\r\n <ul>\r\n <li>The electronic or physical signature of the owner of the copyright or the person authorized to act on the owner’s behalf;</li>\r\n <li>Identification of the copyrighted work claimed to have been infringed, or a representative list of such works;</li>\r\n <li>The URL or Internet location of the materials claimed to be infringing or to be the subject of infringing activity, or information reasonably sufficient to permit us to locate the material;</li>\r\n <li>Your name, address, telephone number and email address;</li>\r\n <li>A statement by you that you have a good faith belief that the disputed use of the material is not authorized by the copyright owner, its agent or the law; and</li>\r\n <li>A statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or are authorized to act on the copyright owner's behalf.</li>\r\n </ul>\r\n\r\n <p>            <u className=\"non-num-list\"><span >Your Right to File a Counter-Notice</span></u><span >.</span>  If we remove your user content in response to a copyright or trademark notice, we will notify you at the email address you provided to MealTime and offer to provide you with a copy of the notice.  If you believe your user content was wrongly removed due to a mistake or misidentification of the material, you can file a counter-notice with us that includes the following:</p>\r\n\r\n <ul>\r\n <li>Your physical or electronic signature;</li>\r\n <li>Identification of the material that has been removed or to which access has been disabled and where the material was located online before it was removed or access to it was disabled;</li>\r\n <li>A statement by you, under penalty of perjury, that you have a good faith belief that the material was removed or disabled as a result of mistake or misidentification of the material to be removed or disabled; and</li>\r\n <li>Your name, address, and telephone number, and a statement that you consent to the jurisdiction of federal district court for the judicial district in which the address is located, or if your address is outside of the United States, for any judicial district in which the service provider may be found, and that you will accept service of process from the person who provided notification under DMCA 512 subsection (c)(1)(c) or an agent of such person.</li>\r\n </ul>\r\n\r\n <p>Upon receiving a counter-notice, we will forward it to the complaining party and tell them we will restore your content within 10 business days.  If that party does not notify us that they have filed an action to enjoin your use of that content on the Website before that period passes, we will consider restoring your user content to the site.</p>\r\n\r\n <p >            <u className=\"non-num-list\"><span >Removal of Repeat Infringers</span></u><span >.</span>  MealTime has a policy to close permanently the accounts of users we identify as repeat infringers.  We apply this policy at our discretion and in appropriate circumstances, such as when a user has repeatedly been charged with infringing the copyrights or other intellectual property rights of others.</p>\r\n\r\n <p className=\"num-list\">6.         <u>Prohibited Uses</u>.</p>\r\n\r\n <p>You may use the Website only for lawful purposes and in accordance with these Terms of Use.  You agree not to use the Website:</p>\r\n\r\n <ul>\r\n <li>In any way that violates any applicable federal, state, local or international law or regulation (including, without limitation, any laws regarding the export of data or software to and from the US or other countries).</li>\r\n <li>For the purpose of exploiting, harming, or attempting to exploit or harm minors in any way by exposing them to inappropriate content, asking for personally identifiable information or otherwise.</li>\r\n <li>To transmit, or procure the sending of, any advertising or promotional material without our prior written consent, including any “junk mail”, “chain letter” or “spam” or any other similar solicitation.</li>\r\n <li>To impersonate or attempt to impersonate MealTime or its employees, another user or any other person or entity (including, without limitation, by using email addresses associated with any of the foregoing).</li>\r\n <li>To engage in any other conduct that restricts or inhibits anyone’s use or enjoyment of the Website, or which, as determined by us, may harm MealTime or users of the Website or expose them to liability.</li>\r\n </ul>\r\n\r\n <p>Additionally, you agree not to:</p>\r\n\r\n <ul>\r\n <li>Use the Website in any manner, including using any device, software or routine that could disable, overburden, damage, or impair the site or interfere with any other party’s use of the Website, including their ability to engage in real time activities through the Website.</li>\r\n <li>Use any robot, spider or other automatic device, process or means to access the Website for any purpose, including monitoring or copying any of the material on the Website.</li>\r\n <li>Use any manual process to monitor or copy any of the material on the Website or for any other unauthorized purpose without our prior written consent.</li>\r\n <li>Introduce any viruses, trojan horses, worms, logic bombs or other material, which is malicious or technologically harmful; or attack the Website via a denial-of-service attack or a distributed denial-of-service attack.</li>\r\n <li>Attempt to gain unauthorized access to, interfere with, damage or disrupt any parts of the Website, the server on which the Website is stored, or any server, computer or database connected to the Website or otherwise attempt to interfere with the proper working of the Website.</li>\r\n </ul>\r\n\r\n <p className=\"num-list\">7.         <u>Content Standards</u>.</p>\r\n\r\n <p>These content standards apply to all User Contributions and use of the Website.  User Contributions must comply with all applicable federal, state, local and international laws and regulations.  Without limiting the foregoing, User Contributions must not:</p>\r\n\r\n <ul>\r\n <li>Contain any material that is defamatory, obscene, indecent, abusive, offensive, harassing, violent, hateful, inflammatory or otherwise objectionable; promote sexually explicit or pornographic material, violence, or discrimination based on race, sex, religion, nationality, disability, sexual orientation or age.</li>\r\n <li>Infringe any patent, trademark, trade secret, copyright or other intellectual property or other rights of any other entity.</li>\r\n <li>Violate the legal rights (including the rights of publicity and privacy) of others or contain any material that could give rise to any civil or criminal liability under applicable laws or regulations or that otherwise may be in conflict with these Terms of Use and our Privacy Policy.</li>\r\n <li>Impersonate any person, or misrepresent your identity or affiliation with any person or organization or otherwise be likely to deceive any person; or cause annoyance, inconvenience or needless anxiety or be likely to upset, embarrass, alarm, incite or annoy any other entity.</li>\r\n <li>Promote any illegal activity, or advocate, promote or assist any unlawful act.</li>\r\n <li>Involve commercial activities or sales, such as contests, sweepstakes and other sales promotions, bartering or advertising.</li>\r\n <li>Give the impression that we or any other entity originated or endorsed User Contributions.</li>\r\n </ul>\r\n\r\n <p className=\"num-list\">8.         <u>User Contributions/Posting to Social Media</u>.</p>\r\n\r\n <p>The Website may contain links to message boards, chat rooms, personal web pages or profiles, forums, bulletin boards and other interactive features, including Facebook, Instagram or Twitter (“<strong>Linked Sites</strong>”).  MealTime allows users to post, submit, publish, display or transmit to other users or other persons (hereinafter, “<strong>Post</strong>”) content or materials (collectively, “<strong>User Contributions</strong>”) to the Linked Sites on or through the Website.  If the Website contains links to other sites and resources provided by third parties, these links are provided for your convenience only.  This includes links contained in advertisements, including banner advertisements and sponsored links.  We have no control over the contents of those sites or resources, and accept no responsibility for them or for any loss or damage that may arise from your use of them.  If you decide to access any of the third party websites linked to this Website, you do so entirely at your own risk and subject to the terms and conditions of use for such websites.</p>\r\n\r\n <p>            <u className=\"non-num-list\"><span >Content of User Contributions</span></u><span >. </span> You may post and transmit your User Contributions on our Website or to the Linked Sites through our Website at your own risk.  We cannot control the actions of other users of the Website or entities that maintain or use the Linked Sites.  Therefore, we cannot, and do not, guarantee that your personal information or User Contributions will not be viewed, reproduced, altered or distributed by unauthorized persons when you publically post personal information.  Unrelated third parties that establish their own privacy policies control the Linked Sites.  It is your responsibility to read the privacy policies of all Linked Sites routinely to understand how those unrelated third parties collect and treat your personal information and User Contributions.  Please note that, even when you delete your account, the posts, comments and <span >messages you submit through the Services may still be viewable or available on our servers.</span></p>\r\n\r\n <p>All User Contributions must comply with the Content Standards.  Any User Contribution you Post to the site will be considered non-confidential and non-proprietary.  By providing User Contribution on the Website, you grant us and our affiliates and third party service providers, and each of their and our respective licensees, successors and assigns, the right to use, reproduce, modify, perform, display, distribute and otherwise disclose to third parties your User Content.</p>\r\n\r\n <p>You represent and warrant that: (1) You own or control all rights in and to the User Contributions and have the right to grant the license granted above to us and our affiliates and service providers, and each of their and our respective licensees, successors and assigns; (2) All of your User Contributions do, and will, comply with these Terms of Use.</p>\r\n\r\n <p>You understand and acknowledge that you are responsible for any User Contributions you submit or contribute, and you, not MealTime, have full responsibility for such content, including its legality, reliability, accuracy and appropriateness.  We are not responsible, or liable to any third party, for the content or accuracy of any User Contributions Posted by you or any other user of the Website.</p>\r\n\r\n <p>            <u className=\"non-num-list\"><span >Linking to the Website and Social Media Features</span></u><span >.  You may link to our homepage, provided you do so in a way that is fair and legal and does not damage our reputation or take advantage of it, but you must not establish a link in such a way as to suggest any form of association, approval or endorsement on our part without our express written consent.</span></p>\r\n\r\n <p>This Website may provide certain social media features that enable you to:</p>\r\n\r\n <p>Link from your own or certain third-party websites to certain content on this Website, “Like,” share or comment on Website content. </p>\r\n\r\n <p>Send emails or other communications with certain content, or links to certain content, on this Website and cause limited portions of content on this Website to be displayed or appear to be displayed on your own or third party websites.</p>\r\n\r\n <p>You may use these features solely as they are provided by us, and solely with respect to the content, they are displayed with and otherwise in accordance with any additional terms and conditions we provide with respect to such features. </p>\r\n\r\n <p>The website from which you are linking, or on which you make certain content accessible, must comply in all respects with the Content Standards set out in these Terms of Use.  You agree to cooperate with us in causing any unauthorized framing or linking immediately to cease.  We reserve the right to withdraw linking permission without notice.  We may disable all or any social media features and any links at any time without notice in our discretion.</p>\r\n\r\n <p> </p>\r\n\r\n <p className=\"num-list\">9.         <u>Monitoring and Enforcement; Termination</u>.</p>\r\n\r\n <p>We have the right to:</p>\r\n\r\n <ul>\r\n <li>Suspend your access to MealTime, suspend or terminate your account, and/or remove any of your User Content from MealTime.</li>\r\n <li>Monitor the Website, and your use of the Website indicates you agree to such monitoring.  At the same time, we do not guarantee we will monitor at all.</li>\r\n <li>Take any action with respect to any User Contribution that we deem necessary or appropriate at our sole discretion, including if we believe that such User Contribution violates the Terms of Use, infringes any intellectual property right or other right of any person or entity, threatens the personal safety of users of the Website or the public or could create liability for MealTime.</li>\r\n <li>Disclose your identity or other information about you to any third party who claims that material you posted violates their rights, including their intellectual property rights or their right to privacy.</li>\r\n <li>Take appropriate legal action, including without limitation, referral to law enforcement, for any illegal or unauthorized use of the Website.</li>\r\n <li>Terminate or suspend your access to all or part of the Website for any or no reason, including without limitation, any violation of these Terms of Use.</li>\r\n </ul>\r\n\r\n <p>Without limiting the foregoing, we have the right to cooperate fully with any law enforcement authorities or court order requesting or directing us to disclose the identity or other information of anyone posting any materials on or through the Website.  YOU WAIVE AND HOLD HARMLESS MEALTIME AND ITS AFFILIATES, LICENSEES AND SERVICE PROVIDERS FROM ANY CLAIMS RESULTING FROM ANY ACTION TAKEN BY MEALTIME AND ANY OF THE FOREGOING PARTIES DURING, OR AS A RESULT OF, ITS INVESTIGATIONS AND FROM ANY ACTIONS TAKEN AS A CONSEQUENCE OF INVESTIGATIONS BY EITHER MEALTIME OR SUCH PARTIES OR LAW ENFORCEMENT AUTHORITIES.</p>\r\n\r\n <p>However, we do not undertake to review all material before it is posted on the Website, and specifically do not guaranty removal of objectionable material after it has been posted.  Accordingly, we assume no liability for any action or inaction regarding transmissions, communications or content provided by any user or unrelated third party.  We have no liability or responsibility to anyone for performance or nonperformance of the activities described in this section.</p>\r\n\r\n <p className=\"num-list\">10.       <u>Reliance on Information Posted</u>.</p>\r\n\r\n <p>The information presented on or through the Website is available solely for general information purposes.  We do not warrant the accuracy, completeness or usefulness of this information.  Any reliance you place on such information is strictly at your own risk.  We disclaim all liability and responsibility arising from any reliance placed on such materials by you or any other visitor to the Website, or by anyone who may be informed of any of its contents.</p>\r\n\r\n <p>This Website may include content provided by unrelated third parties, including materials provided by other users, bloggers and third-party licensors, syndicators, aggregators and/or reporting services.  All statements and/or opinions expressed in the materials provided by the unrelated third parties, and all articles and responses to questions and other content, other than the content provided by MealTime, are solely the opinions and the responsibility of the person or entity providing those materials.  These materials do not necessarily reflect the opinion of the MealTime and MealTime does not expressly or implicitly endorse any User Contributions or any content on the Website.  We are not responsible, or liable to you or any third party, for the content or accuracy of any materials provided by any unrelated third parties.</p>\r\n\r\n <p className=\"num-list\">11.       <u>Changes to the Website</u>.</p>\r\n\r\n <p>We may update the content on this Website from time to time, but its content is not necessarily complete or up-to-date.  Any of the material on the Website may be out of date at any given time, and we are under no obligation to update such material.</p>\r\n\r\n <p className=\"num-list\">12.       <u>Information about You and Your Visits to the Website</u>.</p>\r\n\r\n <p>All information we collect on this Website is subject to our Privacy & DMCA Policy.  By using the Website, you consent to all actions taken by us with respect to your information in compliance with the Policy.</p>\r\n\r\n <p className=\"num-list\">13.       <u>Geographic Restrictions</u>.</p>\r\n\r\n <p>The owner of the Website is based in the State of Oregon in the United States.  We provide this Website for use only by persons located in the United States.  We make no claims that the Website or any of its content is accessible or appropriate outside of the United States.  Access to the Website may not be legal by certain persons or in certain countries.  If you access the Website from outside the United States, you do so on your own initiative and are responsible for compliance with local laws.</p>\r\n\r\n <p className=\"num-list\">14.       <u>Disclaimer of Warranties</u>.</p>\r\n\r\n <p>You understand that we cannot, and do not, guarantee or warrant that files available for downloading from the internet or the Website will be free of viruses or other destructive code.  You are responsible for implementing sufficient procedures and checkpoints to satisfy your particular requirements for anti-virus protection and accuracy of data input and output, and for maintaining a means external to our site for any reconstruction of any lost data.  We will not be liable for any loss or damage caused by a distributed denial-of-service attack, viruses or other technologically harmful material that may infect your computer equipment, computer programs, data or other proprietary material due to your use of the Website or any services or items obtained through the Website or to your downloading of any material posted on it, or on any Website linked to it.</p>\r\n\r\n <p>Your use of the Website, its content and any services or items obtained through the Website is at your own risk.  The Website, its content and any services or items obtained through the Website are provided on an “as is” and “as available” basis, without any warranties of any kind, either express or implied.  Neither MealTime, nor any entity associated with MealTime, makes any warranty or representation with respect to the completeness, security, reliability, quality, accuracy or availability of the Website.  MealTime hereby disclaims all warranties of any kind, whether express or implied, statutory or otherwise, including but not limited to any warranties of merchantability, non-infringement and fitness for particular purpose.  The foregoing does not affect any warranties that cannot be excluded or limited under applicable law.</p>\r\n <p className=\"num-list\">15.       <u>Limitation on Liability</u>.</p>\r\n\r\n <p>In no event will MealTime, its affiliates or their licensors, service providers, employees, agents, officers or directors be liable to you for damages in an amount more than $100 of the value of the goods or services you purchase from MealTime.</p>\r\n\r\n <p>The limitation on the amount of damages applies to your claims for damages of any kind, under any legal theory, arising out of or in connection with your use, or inability to use, the Website, any websites linked to it, any content on the Website or such other websites or any services or items obtained through the Website or such other websites, including any direct, indirect, special, incidental, consequential or punitive damages, including but not limited to, personal injury, pain and suffering, emotional distress, loss of revenue, loss of profits, loss of business or anticipated savings, loss of use, loss of goodwill, loss of data, and whether caused by tort (including negligence), breach of contract or otherwise, even if foreseeable.  The foregoing does not affect any liability, which cannot be excluded or limited under applicable law.</p>\r\n\r\n <p className=\"num-list\">16.       <u>Indemnification</u>.</p>\r\n\r\n <p>You agree to defend, indemnify and hold harmless MealTime, its affiliates, licensors and service providers, and its and their respective officers, directors, employees, contractors, agents, licensors, suppliers, successors and assigns from and against any claims, liabilities, damages, judgments, awards, losses, costs, expenses or fees (including reasonable attorneys’ fees) arising out of or relating to your violation of these Terms of Use or your use of the Website, including, but not limited to, your User Contributions, any use of the Website’s content, services and products other than as expressly authorized in these Terms of Use or your use of any information obtained from the Website.</p>\r\n\r\n <p className=\"num-list\">17.       <u>Governing Law and Jurisdiction</u>.</p>\r\n\r\n <p>All matters relating to the Website and these Terms of Use and any dispute or claim arising therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be governed by and construed in accordance with the internal laws of the State of Oregon, without giving effect to any choice or conflict of law provision or rule (whether of the State of Oregon or any other jurisdiction).  Any legal suit, action or proceeding arising out of, or related to, these Terms of Use or the Website shall be instituted exclusively in the federal courts of the United States or the courts of the State of Oregon and County of Multnomah County, although we retain the right to bring any suit, action or proceeding against you for breach of these Terms of Use in your country of residence or any other relevant country.  You waive all objections to the exercise of jurisdiction over you by such courts and to venue in such courts.</p>\r\n\r\n <p className=\"num-list\">18.       <u>Waiver and Severability</u>.</p>\r\n\r\n <p>No waiver of MealTime of any term or condition set forth in these Terms of Use shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of MealTime to assert a right or provision under these Terms of Use shall not constitute a waiver of such right or provision.</p>\r\n\r\n <p>If any provision of these Terms of Use is held by a court or other tribunal of competent jurisdiction to be invalid, illegal or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of the Terms of Use will continue in full force and effect.</p>\r\n\r\n <p className=\"num-list\">19.       <u>Entire Agreement</u>.</p>\r\n\r\n <p>The Terms of Use and, our Privacy Policy constitute the sole and entire agreement between you and MealTime with respect to the Website and supersede all prior and contemporaneous understandings, agreements, representations and warranties, both written and oral, with respect to the Website.</p>\r\n\r\n <p className=\"num-list\">20.       <u>Your Comments and Concerns</u>.</p>\r\n\r\n <p>This Website is operated by MealTime.  All other feedback, comments, requests for technical support and other communications relating to the Website should be directed to:</p>\r\n\r\n <p>Privacy@MealTimeCLM.com or to 10200 SW Greenburg Rd, Suite 360, Portland, OR 97223, United States of America.</p>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default TermsOfUseContents;\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/Contents/TermOfUseContents.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Link} from 'react-router';\r\nimport {connect} from 'react-redux';\r\nimport Autosuggest from 'react-autosuggest';\r\n\r\nimport Loader from '../Loader/Loader.jsx';\r\nimport ToolTip from '../ToolTip/ToolTip.jsx';\r\n\r\nimport {\r\n addPatron,\r\n removePatron,\r\n updatePatron,\r\n getStateSchools\r\n} from '../../actions/PatronsAction.js';\r\nimport {clearValidationErrors, validationError} from '../../actions/ErrorAction.js';\r\n\r\nimport States from '../../constants/States.json';\r\n\r\n//for dev testing only\r\nimport {runLowBalanceAlerts} from '../../actions/TestAction.js';\r\nimport {env} from '../../../version.json';\r\n\r\nimport './AccountInfo.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n loadedAccount: store.patrons.loadedAccount,\r\n loading: store.patrons.loading,\r\n lowBalance: store.patrons.userPatrons,\r\n schools: store.patrons.schools,\r\n userID: store.user.id,\r\n validationErrors: store.error.validationErrors\r\n };\r\n};\r\n\r\nclass AcctInfo extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loadedAccount: PropTypes.object.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n lowBalance: PropTypes.array.isRequired,\r\n new: PropTypes.bool,\r\n schools: PropTypes.array.isRequired,\r\n validationErrors: PropTypes.array.isRequired,\r\n userID: PropTypes.number\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n let content = 'update-acct-info';\r\n if (this.props.new === true) content = 'add-student';\r\n\r\n this.state = {\r\n content: content\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n document.addEventListener('add-student',\r\n this.switchContext.bind(this));\r\n document.addEventListener('update-acct-info',\r\n this.switchContext.bind(this));\r\n document.addEventListener('set-acct-values',\r\n this.updateValues.bind(this));\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n document.removeEventListener('add-student',\r\n this.switchContext.bind(this));\r\n document.removeEventListener('update-acct-info',\r\n this.switchContext.bind(this));\r\n document.removeEventListener('set-acct-values',\r\n this.updateValues.bind(this));\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n if(this.state.content === nextState.content && nextState.content === \"update-acct-info\") {\r\n if(nextProps.loadedAccount === this.props.loadedAccount && this.state.content === \"update-acct-info\") return false;\r\n }\r\n return true;\r\n }\r\n\r\n switchContext(e) {\r\n if (this._isMounted) {\r\n this.setState({\r\n content: e.type\r\n });\r\n }\r\n }\r\n\r\n updateValues(e) {\r\n let stateObj = {};\r\n\r\n if (e.detail.balanceAlert !== undefined) {\r\n stateObj.balanceAlert = e.detail.balanceAlert;\r\n }\r\n\r\n if (this._isMounted) {\r\n this.setState(stateObj);\r\n }\r\n }\r\n\r\n currentComponent(content) {\r\n let contentJSX;\r\n if (content === 'add-student') {\r\n contentJSX = <NewAcctInfo\r\n dispatch={this.props.dispatch}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'studentName', 'studentID')}\r\n loading={this.props.loading}\r\n schools={this.props.schools}\r\n />;\r\n } else if (content === 'update-acct-info') {\r\n contentJSX = <ExistingAcctInfo\r\n //key={this.props.loadedAccount.patronAccountNum}\r\n key={Math.random()}\r\n account={this.props.loadedAccount}\r\n dispatch={this.props.dispatch}\r\n lowBalance={this.props.lowBalance}\r\n userID={this.props.userID}\r\n />;\r\n }\r\n return contentJSX;\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n id=\"acct-info\"\r\n >\r\n {this.currentComponent(this.state.content)}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nclass ExistingAcctInfo extends React.Component {\r\n closeModal(e) {\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n handleDelete(e) {\r\n Utils.updateModal('confirm', {\r\n msg: 'Are you sure you want to delete this account?',\r\n header: '',\r\n cancelable: true,\r\n clickHandler: () => {\r\n let patronID = this.props.account.defaultPatronID;\r\n if (appName === 'mto-student') {\r\n removeUserData(this.props.userID, 'student');\r\n }\r\n this.props.dispatch(removePatron(\r\n patronID,\r\n this.props.account.patronAccountNum\r\n ));\r\n document.dispatchEvent(new Event('hide-account-info'));\r\n }\r\n });\r\n }\r\n\r\n handleCancel(e) {\r\n document.dispatchEvent(new Event('hide-account-info'));\r\n }\r\n\r\n handleSave(e) {\r\n let balances = this.acct.querySelectorAll('.balance-notification');\r\n let alertDetails = _.map(balances, node => {\r\n const patronID = node.dataset.pid;\r\n let active = node.querySelector('.balance-active').checked;\r\n let amount = node.querySelector('.balance-alert').value;\r\n\r\n return {\r\n patronID: Number(patronID),\r\n lowBalanceThreshold: (active && !_.isEmpty(amount)) ? Number(amount) : null\r\n };\r\n });\r\n this.props.dispatch(updatePatron(alertDetails));\r\n }\r\n\r\n render() {\r\n const headerStr = Utils.namesOnAccount(this.props.account.patrons) + '\\'s Account';\r\n return (\r\n <div className=\"existing-info\" ref={node => this.acct = node}>\r\n <h4 className=\"acct-names\">\r\n {headerStr}\r\n </h4>\r\n <hr />\r\n <p className=\"input-header\">Alert on low balance of:</p>\r\n {\r\n _.map(this.props.account.patrons, patron => {\r\n let currentLowBalance = _.findWhere(this.props.lowBalance, {patronID: patron.patronID});\r\n return <BalanceNotification\r\n key={patron.patronID}\r\n patron={patron}\r\n currentLowBalance={currentLowBalance}\r\n />;\r\n })\r\n }\r\n {\r\n Utils.isApp() ?\r\n <small className=\"lb\">Note: Balance alerts will follow the notification rules you specify in <Link onClick={this.closeModal} to=\"/settings\">Settings</Link></small> :\r\n null\r\n }\r\n\r\n <div className=\"buttons\">\r\n <button\r\n id={Utils.setElementId(\"exst-acct-info-save-\" + this.props.account.patronAccountNum)}\r\n className=\"btn btn-success pull-right expand-btn save\"\r\n onClick={this.handleSave.bind(this)}>\r\n Save\r\n </button>\r\n <button\r\n id={Utils.setElementId(\"exst-acct-info-cancel-\" + this.props.account.patronAccountNum)}\r\n className=\"btn btn-grey pull-right cancel expand-btn\"\r\n data-dismiss=\"modal\"\r\n onClick={this.handleCancel.bind(this)}>\r\n Cancel\r\n </button>\r\n <button\r\n id={Utils.setElementId(\"exst-acct-info-delete-\" + this.props.account.patronAccountNum)}\r\n className=\"btn btn-danger pull-right delete expand-btn\"\r\n onClick={this.handleDelete.bind(this)}>\r\n Delete\r\n </button>\r\n {\r\n env === 'dev' ?\r\n <button\r\n className=\"btn btn-info pull-right expand-btn save\"\r\n onClick={runLowBalanceAlerts()}>\r\n Run Low Alerts\r\n </button> :\r\n null\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nExistingAcctInfo.propTypes = {\r\n account: PropTypes.object,\r\n dispatch: PropTypes.func,\r\n acctid: PropTypes.number,\r\n userID: PropTypes.number,\r\n lowBalance: PropTypes.array\r\n};\r\n\r\nclass BalanceNotification extends React.Component {\r\n handleChange(e) {\r\n e.persist();\r\n // this.handleBalanceAlert(e);\r\n }\r\n\r\n toggleBalance(e) {\r\n const checked = e.currentTarget.checked;\r\n this.input.disabled = !checked;\r\n }\r\n\r\n render() {\r\n const currentThreshold = this.props.currentLowBalance.lowBalanceThreshold;\r\n return (\r\n <div className=\"form-check balance-notification\" data-pid={this.props.patron.patronID}>\r\n <label className=\"form-check-label lbn\" htmlFor={this.props.patron.patronID + \"lowBalance\"}>\r\n <input\r\n id={this.props.patron.patronID + \"lowBalance\"}\r\n className=\"form-check-input balance-active\"\r\n type=\"checkbox\"\r\n defaultChecked={_.isNumber(currentThreshold)}\r\n onChange={this.toggleBalance.bind(this)}\r\n ref={node => this.alert = node}\r\n />\r\n {this.props.patron.firstName}\r\n </label>\r\n <div className=\"input-group input-group-sm pull-right\">\r\n <span className=\"input-group-addon\">$</span>\r\n <input\r\n type=\"text\"\r\n className=\"form-control balance-alert dollar-input\"\r\n step=\"any\"\r\n onInput={evt => Utils.moneyOnly(evt)}\r\n onBlur={Utils.normalizeInput}\r\n ref={node => this.input = node}\r\n defaultValue={currentThreshold}\r\n disabled={_.isNull(currentThreshold)}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nBalanceNotification.propTypes = {\r\n currentLowBalance: PropTypes.object,\r\n patron: PropTypes.object\r\n};\r\n\r\n// I know you're supposed to have a \"smrt\" component that passes down info\r\n// as props, but that really complicates the rendering/rerendering of these\r\n// componenets, so I've made this component smart as well\r\nclass NewAcctInfo extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n\r\n this.stateJSX = [<option key={0} data-state={0}\r\n type=\"button\"\r\n className=\"dropdown-item\" hidden={true}>Select State</option>];\r\n\r\n _.map(States, (state, id) => {\r\n this.stateJSX.push(<option key={id}\r\n data-state={id}\r\n type=\"button\"\r\n className=\"dropdown-item\">{state}</option>);\r\n });\r\n\r\n this.state = {\r\n schools: [],\r\n selection: '',\r\n selectedSchoolID: undefined,\r\n selectedStateID: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n this.resizeSelect();\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n this.props.dispatch(clearValidationErrors());\r\n }\r\n\r\n handleCancel(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n document.dispatchEvent(new Event('hide-account-info'));\r\n document.getElementById(\"addStudentForm\").reset();\r\n this.resizeSelect();\r\n\r\n this.state = {\r\n schools: [],\r\n selection: '',\r\n selectedSchoolID: undefined,\r\n selectedStateID: undefined\r\n };\r\n }\r\n\r\n getSchoolByID(schoolID) {\r\n return _.findWhere(this.props.schools, {schoolLocationID: schoolID});\r\n }\r\n\r\n getSchools(value) {\r\n const MIN_CHARACTERS = 2;\r\n let inputValue = value.trim().toLowerCase();\r\n const inputLength = inputValue.length;\r\n inputValue = inputValue.replace(/[‘’`´]/g, \"'\");\r\n return inputLength < MIN_CHARACTERS ? [] : this.props.schools.filter(school => {\r\n return school.schoolName.toLowerCase().includes(inputValue);\r\n });\r\n }\r\n\r\n getSchoolLabel(school) {\r\n return school.schoolName;\r\n }\r\n\r\n schoolBlur(event, val) {\r\n if (this._isMounted && _.isUndefined(this.state.selectedSchoolID)) {\r\n this.setState({\r\n selection: ''\r\n });\r\n }\r\n }\r\n\r\n schoolSelect(event, val) {\r\n // No need to reset if the state is the same\r\n if (this._isMounted && (this.state.selection !== val.newValue)) {\r\n this.setState({\r\n selection: val.newValue\r\n });\r\n }\r\n }\r\n\r\n suggestionFetched({value}) {\r\n if (this._isMounted) {\r\n this.setState({\r\n schools: this.getSchools(value)\r\n });\r\n }\r\n }\r\n\r\n suggestionCleared(val) {\r\n if (this._isMounted) {\r\n this.setState({\r\n schools: []\r\n });\r\n }\r\n }\r\n\r\n suggestionSelected(event, sug) {\r\n if (this._isMounted) {\r\n event.preventDefault();\r\n this.setState({\r\n selectedSchoolID: sug.suggestion.schoolLocationID\r\n });\r\n }\r\n }\r\n\r\n renderSchoolDropdown(opts) {\r\n return (\r\n <div id={opts.id} className={\"dropdown autocomplete-dropdown \" + opts.className + (_.isEmpty(this.state.schools) ? '' : ' show')}>\r\n <div id=\"schoolOpts\" className=\"dropdown-menu\">\r\n {opts.children}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderSchool(school, detail) {\r\n return (\r\n <a\r\n className=\"dropdown-item school-item\"\r\n data-school={school.schoolLocationID}\r\n data-passcode={school.usesPassCodes}\r\n >\r\n {school.schoolName}\r\n <small className=\"text-muted d-block\">\r\n {school.districtName} | {school.city}, {school.stateAbbrev}\r\n </small>\r\n </a>\r\n );\r\n }\r\n\r\n addNewStudent(e) {\r\n e.preventDefault();\r\n this.props.dispatch(clearValidationErrors());\r\n let validationErrors = [];\r\n\r\n if(_.isUndefined(this.state.selectedSchoolID)) return;\r\n let selectedSchool = this.getSchoolByID(this.state.selectedSchoolID);\r\n\r\n let errorMsg = \"\";\r\n\r\n if (selectedSchool.usePassCodes) {\r\n errorMsg = 'Pass Code is required.';\r\n } else {\r\n errorMsg = 'Student ID is required.';\r\n }\r\n\r\n if (_.isEmpty(this.studentName.value)) {\r\n // Empty student name\r\n validationErrors.push({\r\n errorCode: 'StudentNameRequired',\r\n errorMessage: 'Student\\'s First Name is required.'\r\n });\r\n }\r\n\r\n if (_.isEmpty(this.studentID.value)) {\r\n // Empty student name\r\n validationErrors.push({\r\n errorCode: 'StudentIDRequired',\r\n errorMessage: errorMsg\r\n });\r\n }\r\n\r\n if (_.isEmpty(validationErrors)) {\r\n // No errors, (attempt to) add the student\r\n this.props.dispatch(addPatron(\r\n this.state.selectedSchoolID,\r\n this.studentName.value,\r\n this.studentID.value.toUpperCase()\r\n ));\r\n } else {\r\n this.props.dispatch(validationError(validationErrors));\r\n }\r\n }\r\n\r\n selectStateBlur(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n let stateID = e.currentTarget.selectedOptions[0].dataset.state;\r\n if(this.state.selectedStateID === stateID) return;\r\n\r\n this.props.dispatch(getStateSchools(stateID));\r\n\r\n if (this._isMounted) {\r\n this.setState({\r\n selection: '',\r\n selectedSchoolID: undefined,\r\n selectedStateID: stateID\r\n });\r\n }\r\n }\r\n\r\n resizeSelect(e) {\r\n this.setState({\r\n schools: [],\r\n selection: '',\r\n selectedSchoolID: undefined,\r\n selectedStateID: undefined\r\n });\r\n\r\n let arrowWidth = 35;\r\n let $target = $(\"#stateSelect\");\r\n let selectedText = $target.find(\"option:selected\").text();\r\n\r\n var $test = $(\"<button class='btn'>\").html(selectedText).css({\r\n \"font-size\": $target.css(\"font-size\"),\r\n \"visibility\": \"hidden\"\r\n });\r\n\r\n $test.appendTo($target.parent());\r\n var width = $test.width();\r\n $test.remove();\r\n $target.width(width + arrowWidth);\r\n }\r\n\r\n render() {\r\n const inputProps = {\r\n placeholder: 'School Name',\r\n value: this.state.selection,\r\n onBlur: this.schoolBlur.bind(this),\r\n onChange: this.schoolSelect.bind(this),\r\n id: 'autoschool'\r\n };\r\n\r\n const selectedSchool = this.getSchoolByID(this.state.selectedSchoolID);\r\n\r\n let tooltipStudentID = \"A Student ID is used by MyMealTime.com to help identify your student and add them to your account. If you’re not sure what your student’s unique ID is, contact your school or school district\";\r\n let tooltipPasscode = \"A Passcode is used by MyMealTime.com to help identify your student and add them to your account. If you’re not sure what your student’s Passcode is, contact your school or school district\";\r\n\r\n return (\r\n <div id=\"new-acct\">\r\n <h4 className=\"sr-only\">Add cafeteria account form</h4>\r\n <form\r\n id=\"addStudentForm\"\r\n onSubmit={this.addNewStudent.bind(this)}>\r\n <div className=\"find-school\">\r\n <div className=\"dropdown state-dropdown\">\r\n <select id=\"stateSelect\" className=\"btn btn-secondary dropdown-toggle\"\r\n onBlur={this.selectStateBlur.bind(this)}\r\n onChange={this.resizeSelect.bind(this)}>\r\n {\r\n this.stateJSX\r\n }\r\n </select>\r\n </div>\r\n\r\n <div className=\"district-autocomplete\">\r\n <div className=\"form-group\">\r\n <label htmlFor=\"autoschool\">School Name</label>\r\n <Autosuggest\r\n suggestions={this.state.schools}\r\n onSuggestionsFetchRequested={this.suggestionFetched.bind(this)}\r\n onSuggestionsClearRequested={this.suggestionCleared.bind(this)}\r\n onSuggestionSelected={this.suggestionSelected.bind(this)}\r\n getSuggestionValue={this.getSchoolLabel}\r\n renderSuggestion={this.renderSchool.bind(this)}\r\n renderSuggestionsContainer={this.renderSchoolDropdown.bind(this)}\r\n inputProps={inputProps}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {\r\n _.isUndefined(this.state.selectedSchoolID) ?\r\n null :\r\n <div className=\"new-student-info\">\r\n <div className={\"form-group stu-id\" + (_.isUndefined(this.props.error.studentID) ? '' : ' has-danger')}>\r\n <label htmlFor=\"new-student-id\">\r\n {selectedSchool.usePassCodes ? \"Pass Code\" : \"Student ID\"}\r\n </label>\r\n <ToolTip\r\n title={selectedSchool.usePassCodes ? tooltipPasscode : tooltipStudentID}\r\n direction=\"bottom\"\r\n customClass=\"account-tooltip\"\r\n />\r\n <input\r\n id=\"new-student-id\"\r\n type=\"text\"\r\n className=\"form-control\"\r\n placeholder={selectedSchool.usePassCodes ? \"Pass Code\" : \"Student ID\"}\r\n autoComplete=\"off\"\r\n ref={node => this.studentID = node}\r\n aria-invalid={!_.isEmpty(this.props.error.studentID)}\r\n aria-required=\"true\"\r\n />\r\n {\r\n _.isEmpty(this.props.error.studentID) ?\r\n null :\r\n <div className=\"form-control-feedback small\">\r\n {this.props.error.studentID}\r\n </div>\r\n }\r\n </div>\r\n\r\n <div className={\"form-group stu-name\" + (_.isUndefined(this.props.error.studentName) ? '' : ' has-danger')}>\r\n <label htmlFor=\"new-student-first\">Student's First Name</label>\r\n <input\r\n id=\"new-student-first\"\r\n type=\"text\"\r\n className=\"form-control\"\r\n placeholder=\"Student's First Name\"\r\n autoComplete=\"off\"\r\n ref={node => this.studentName = node}\r\n aria-invalid={!_.isEmpty(this.props.error.studentName)}\r\n aria-required=\"true\"\r\n />\r\n {\r\n _.isEmpty(this.props.error.studentName) ?\r\n null :\r\n <div className=\"form-control-feedback small\">\r\n {this.props.error.studentName === 'No matching student was found.' ? '' : this.props.error.studentName}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <div className=\"buttons\">\r\n {\r\n _.isUndefined(this.state.selectedSchoolID) ? null :\r\n <button\r\n className=\"btn btn-success pull-right expand-btn save\"\r\n type=\"submit\"\r\n >\r\n {this.props.loading ? <Loader/> : 'Add'}\r\n </button>\r\n }\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-grey pull-right cancel expand-btn\"\r\n data-dismiss=\"modal\"\r\n onClick={this.handleCancel.bind(this)}\r\n >\r\n Cancel\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nNewAcctInfo.propTypes = {\r\n dispatch: PropTypes.func,\r\n error: PropTypes.object,\r\n loading: PropTypes.bool,\r\n schools: PropTypes.array\r\n};\r\n\r\nexport default connect(mapStateToProps)(AcctInfo);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/AccountInfo/AccountInfo.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport './Alert.scss';\r\n\r\nclass Alert extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.typeClass = this.props.type || 'info';\r\n this.message = this.props.message || 'You must provide a message!';\r\n }\r\n\r\n // componentWillMount() {\r\n // // Keeps the alert from being removed entirely from the DOM\r\n // $(function() {\r\n // $(\"[data-hide]\").on(\"click\", function() {\r\n // $(this.parentElement).hide();\r\n // });\r\n // });\r\n // }\r\n\r\n hideAlert(e) {\r\n $(this.alert).hide();\r\n if (_.isFunction(this.props.onClose)) this.props.onClose();\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n className={\"alert alert-dismissible alert-\" + this.typeClass}\r\n role=\"alert\"\r\n ref={node => this.alert = node}\r\n >\r\n {this.typeClass === \"info\" ? <h4 className=\"sr-only\">Account notification</h4> : null}\r\n {this.typeClass === \"danger\" ? <h4 className=\"sr-only\">Account alert</h4> : null}\r\n <button\r\n type=\"button\"\r\n className=\"close\"\r\n aria-label=\"Close\"\r\n onClick={this.hideAlert.bind(this)}\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <a\r\n className={this.typeClass === 'success' ? 'successAlert' : null}\r\n onClick={this.props.clickHandler}\r\n onKeyDown={Utils.accessibleEnterKey}\r\n tabIndex={_.isUndefined(this.props.clickHandler) ? \"-1\" : \"0\"}\r\n >\r\n <div className=\"msg\">\r\n {this.message}\r\n </div>\r\n </a>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nAlert.propTypes = {\r\n clickHandler: PropTypes.func,\r\n type: PropTypes.string,\r\n message: PropTypes.string.isRequired,\r\n onClose: PropTypes.func\r\n};\r\n\r\nexport default Alert;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Alert/Alert.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Loader from '../Loader/Loader.jsx';\r\n\r\nimport {\r\n forgotPassword,\r\n submitSecurityAnswer,\r\n resetRegistration\r\n} from '../../actions/UserAction.js';\r\nimport {clearValidationErrors, validationError} from '../../actions/ErrorAction.js';\r\nimport securityQuestions from '../../constants/SecurityQuestions.json';\r\n\r\nimport './ForgotPassword.scss';\r\n\r\nexport class ForgotPassword extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n submitted: false\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n // I could make a \"reset forgot password/username\" action,\r\n // but it would accomplish the same thing\r\n this.props.dispatch(resetRegistration());\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.desktop) {\r\n this.input.focus();\r\n }\r\n }\r\n\r\n unforgetPassword(e) {\r\n // Prevents page from reloading\r\n e.preventDefault();\r\n this.props.dispatch(clearValidationErrors());\r\n this.props.dispatch(forgotPassword(this.input.value));\r\n this.setState({\r\n submitted: true\r\n });\r\n }\r\n\r\n resetDesktop(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n\r\n if (!_.isUndefined(this.props.router)) {\r\n if (!_.isUndefined(this.props.router.location.state)) {\r\n this.props.router.push('/register');\r\n } else {\r\n this.props.router.push('/');\r\n }\r\n } else {\r\n // On root we just need to swap the box out\r\n document.dispatchEvent(new CustomEvent('change-login', {detail: 'login'}));\r\n }\r\n }\r\n\r\n switchToUser(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n document.dispatchEvent(new CustomEvent('change-login',\r\n {detail: 'forgot-user'}));\r\n }\r\n\r\n render() {\r\n let displayError = !_.isEmpty(this.props.error.username) && this.state.submitted && this.props.emailContext === 'forgotPassword';\r\n\r\n return (\r\n <div className=\"forgot-password\">\r\n <div className=\"card-header\">\r\n <h4>Forgot password?</h4>\r\n <small>Enter your username to recover your password</small>\r\n </div>\r\n <div className=\"card-block\">\r\n <form onSubmit={this.unforgetPassword.bind(this)}>\r\n <div className={\"form-group\" + (displayError ? ' has-danger' : '')}>\r\n <label htmlFor=\"forgotPasswordUsername\">Username</label>\r\n <input\r\n id=\"forgotPasswordUsername\"\r\n type=\"text\"\r\n className=\"form-control\"\r\n ref={node => this.input = node}\r\n aria-invalid={displayError}\r\n aria-required=\"true\"\r\n />\r\n {\r\n displayError ?\r\n <div className=\"form-control-feedback small\">\r\n {this.props.error.username}\r\n </div> :\r\n null\r\n }\r\n </div>\r\n\r\n <div>\r\n <button\r\n type=\"submit\"\r\n className=\"btn btn-primary expand-btn\"\r\n >\r\n {\r\n this.props.loading && this.state.submitted ?\r\n <Loader/> :\r\n \"Submit\"\r\n }\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-grey expand-btn\"\r\n onClick={this.resetDesktop.bind(this)}\r\n >\r\n Cancel\r\n </button>\r\n </div>\r\n </form>\r\n {\r\n this.props.desktop ?\r\n <div className=\"center-link\">\r\n <button className=\"btn btn-link\" onClick={this.switchToUser.bind(this)}>\r\n Forgot your username?\r\n </button>\r\n </div> :\r\n null\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nForgotPassword.propTypes = {\r\n desktop: PropTypes.bool,\r\n dispatch: PropTypes.func.isRequired,\r\n emailContext: PropTypes.string.isRequired,\r\n error: PropTypes.object.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n router: PropTypes.object\r\n};\r\n\r\nexport class SecurityAnswer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n submitted: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.securityQuestionID === null) {\r\n this.cancelButton.focus();\r\n } else if (this.props.desktop) {\r\n this.input.focus();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.emailSent && this.state.submitted &&\r\n _.isEmpty(nextProps.error && nextProps.emailContext === 'forgotPassword')) {\r\n const self = this;\r\n Utils.updateModal('confirm', {\r\n clickHandler: function(e) {\r\n if (_.isUndefined(self.props.router)) {\r\n document.dispatchEvent(new CustomEvent('change-login', {detail: 'login'}));\r\n $('.gen-modal').modal('hide');\r\n } else {\r\n self.props.router.push('/');\r\n }\r\n },\r\n header: 'Password reset',\r\n msg: 'Success! An email with your new password has been sent to the email on file.'\r\n });\r\n\r\n this.setState({\r\n submitted: false\r\n });\r\n }\r\n }\r\n\r\n resetDesktop(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n\r\n if (!_.isUndefined(this.props.router)) {\r\n if (!_.isUndefined(this.props.router.location.state)) {\r\n this.props.router.push('/register');\r\n } else {\r\n this.props.router.push('/');\r\n }\r\n } else {\r\n // On root we just need to swap the box out\r\n document.dispatchEvent(new CustomEvent('change-login', {detail: 'login'}));\r\n }\r\n }\r\n\r\n submitAnswer(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n const answer = this.input.value;\r\n if (_.isEmpty(answer)) {\r\n this.props.dispatch(validationError([{\r\n errorCode: 'SecurityAnswerRequired',\r\n errorMessage: 'Security Answer is required.'\r\n }]));\r\n } else {\r\n this.props.dispatch(submitSecurityAnswer(this.props.username, answer));\r\n }\r\n this.setState({\r\n submitted: true\r\n });\r\n }\r\n\r\n render() {\r\n let displayError = !_.isEmpty(this.props.error.securityA) && this.state.submitted && this.props.emailContext === 'forgotPassword';\r\n\r\n let securityContent;\r\n const cancelButtonContent = (\r\n <button\r\n className=\"btn btn-grey expand-btn\"\r\n onClick={this.resetDesktop.bind(this)}\r\n ref={node => this.cancelButton = node}\r\n >\r\n Cancel\r\n </button>\r\n );\r\n\r\n if (this.props.securityQuestionID === null) {\r\n securityContent = (\r\n <div>\r\n <div className=\"error-text\">Your security question wasn't found. Please call 800-755-0904 for support.</div>\r\n {cancelButtonContent}\r\n </div>\r\n );\r\n } else {\r\n securityContent = (\r\n <div>\r\n <label htmlFor=\"forgotPasswordSecurityAnswer\">{securityQuestions[this.props.securityQuestionID]}</label>\r\n <div className={\"form-group \" + (displayError ? ' has-danger' : '')}>\r\n <input\r\n id=\"forgotPasswordSecurityAnswer\"\r\n type=\"text\"\r\n className=\"form-control\"\r\n ref={node => this.input = node}\r\n aria-invalid={displayError}\r\n />\r\n {\r\n displayError ?\r\n <div className=\"form-control-feedback small\">\r\n {this.props.error.securityA}\r\n </div> :\r\n null\r\n }\r\n </div>\r\n\r\n <button\r\n className=\"btn btn-primary expand-btn\"\r\n onClick={this.submitAnswer.bind(this)}\r\n >\r\n {\r\n this.props.loading && this.state.submitted ?\r\n <Loader/> :\r\n \"Submit\"\r\n }\r\n </button>\r\n\r\n {cancelButtonContent}\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"forgot-username\">\r\n <div className=\"card-header\">\r\n <h4>Answer your security question</h4>\r\n </div>\r\n <div className=\"card-block\">\r\n {securityContent}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSecurityAnswer.propTypes = {\r\n desktop: PropTypes.bool,\r\n dispatch: PropTypes.func.isRequired,\r\n emailSent: PropTypes.bool,\r\n emailContext: PropTypes.string.isRequired,\r\n error: PropTypes.object.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n router: PropTypes.object,\r\n securityQuestionID: PropTypes.number,\r\n username: PropTypes.string.isRequired\r\n};\r\n\r\nexport default ForgotPassword;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/ForgotPassword/ForgotPassword.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Loader from '../Loader/Loader.jsx';\r\n\r\nimport {forgotUsername, resetRegistration} from '../../actions/UserAction.js';\r\nimport {clearValidationErrors} from '../../actions/ErrorAction.js';\r\n\r\nimport './ForgotUsername.scss';\r\n\r\nclass ForgotUsername extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n submitted: false\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n // I could make a \"reset forgot password/username\" action,\r\n // but it would accomplish the same thing\r\n this.props.dispatch(resetRegistration());\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.desktop) {\r\n this.input.focus();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.emailSent && this.state.submitted &&\r\n _.isEmpty(nextProps.error) && nextProps.emailContext === 'forgotUsername') {\r\n Utils.updateModal('confirm', {\r\n clickHandler: this.confirmEmailSent.bind(this),\r\n header: 'Email sent',\r\n msg: 'Success! An email with your username has been sent to the email on file.'\r\n });\r\n\r\n this.setState({\r\n submitted: false\r\n });\r\n }\r\n }\r\n\r\n unforgetUsername(e) {\r\n e.preventDefault();\r\n this.props.dispatch(clearValidationErrors());\r\n this.props.dispatch(forgotUsername(this.input.value));\r\n this.setState({\r\n submitted: true\r\n });\r\n }\r\n\r\n resetDesktop(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n\r\n if (!_.isUndefined(this.props.router)) {\r\n if (!_.isUndefined(this.props.router.location.state)) {\r\n this.props.router.push('/register');\r\n } else {\r\n this.props.router.push('/');\r\n }\r\n } else {\r\n // On root we just need to swap the box out\r\n document.dispatchEvent(new CustomEvent('change-login', {detail: 'login'}));\r\n $('.gen-modal').modal('hide');\r\n }\r\n }\r\n\r\n confirmEmailSent(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n // On root we just need to swap the box out\r\n if (_.isUndefined(this.props.router)) {\r\n document.dispatchEvent(new CustomEvent('change-login', {detail: 'login'}));\r\n $('.gen-modal').modal('hide');\r\n } else {\r\n this.props.router.push(\"/\");\r\n }\r\n }\r\n\r\n switchToPass(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n document.dispatchEvent(new CustomEvent('change-login',\r\n {detail: 'forgot-pass'}));\r\n }\r\n\r\n render() {\r\n let displayError = !_.isEmpty(this.props.error.email) && this.state.submitted && this.props.emailContext === 'forgotUsername';\r\n\r\n return (\r\n <div className=\"forgot-username\">\r\n <div className=\"card-header\">\r\n <h4>Forgot username?</h4>\r\n <small>Enter your email address to recover your username</small>\r\n </div>\r\n <div className=\"card-block\">\r\n <form onSubmit={this.unforgetUsername.bind(this)}>\r\n <label htmlFor=\"forgotUsernameEmail\">Email</label>\r\n <div className={\"form-group\" + (displayError ? ' has-danger' : '')}>\r\n <input\r\n id=\"forgotUsernameEmail\"\r\n type=\"text\"\r\n className=\"form-control\"\r\n ref={node => this.input = node}\r\n aria-invalid={displayError}\r\n aria-required=\"true\"\r\n />\r\n {\r\n displayError ?\r\n <div className=\"form-control-feedback small\">\r\n {this.props.error.email}\r\n </div> :\r\n null\r\n }\r\n </div>\r\n\r\n <div>\r\n <button\r\n type=\"submit\"\r\n className=\"btn btn-primary expand-btn\"\r\n >\r\n {\r\n this.props.loading && this.state.submitted ?\r\n <Loader/> :\r\n \"Submit\"\r\n }\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-grey expand-btn\"\r\n onClick={this.resetDesktop.bind(this)}\r\n >\r\n Cancel\r\n </button>\r\n </div>\r\n </form>\r\n {\r\n this.props.desktop ?\r\n <div className=\"center-link\">\r\n <button className=\"btn btn-link\" onClick={this.switchToPass.bind(this)}>\r\n Forgot your password?\r\n </button>\r\n </div> :\r\n null\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nForgotUsername.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n desktop: PropTypes.bool,\r\n emailSent: PropTypes.bool.isRequired,\r\n emailContext: PropTypes.string.isRequired,\r\n error: PropTypes.object.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n router: PropTypes.object\r\n};\r\n\r\nexport default ForgotUsername;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/ForgotUsername/ForgotUsername.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {calculateFee} from '../../actions/CartAction.js';\nimport {getUserMessages} from '../../actions/UserAction.js';\n\nimport {SideNav} from '../../../parent/components/Sidebar/Sidebar.jsx';\n\nimport './Header.scss';\n\n/**\n * Nav Bar\n * Parent component of header.\n */\nclass NavBar extends React.Component {\n static propTypes = {\n cartTotal: PropTypes.number.isRequired,\n dispatch: PropTypes.func.isRequired,\n items: PropTypes.array.isRequired,\n messages: PropTypes.array,\n userID: PropTypes.number,\n persisted: PropTypes.bool\n }\n\n componentWillReceiveProps(nextProps) {\n /*\n * The header is always present, whether on the fee page or the dashboard\n * So any change made to the items, use this to calculate the fee\n * so the user doesn't have to wait when they open the cart\n */\n if (!_.isEmpty(nextProps.items) &&\n !Object.is(this.props.items, nextProps.items) ) {\n this.props.dispatch(calculateFee(nextProps.items));\n }\n }\n\n render() {\n let headerSrc = \"img/MT_HEADER.svg\";\n let deviceClass = '';\n return (\n <header className={\"navbar navbar-default\" + deviceClass} role=\"banner\">\n <div className=\"navbar-header\">\n <div className=\"center-image-container\">\n <img\n id=\"logo\"\n src={headerSrc}\n height=\"50\"\n width=\"141\"\n alt=\"MyMealTime Logo\"\n />\n </div>\n <Hamburger />\n <SideNav\n dispatch={this.props.dispatch}\n persisted={this.props.persisted}\n isMobile={true}\n />\n <div className=\"pull-right right-container\">\n <CartIcon displayNum={this.props.items.length} />\n <Bell\n dispatch={this.props.dispatch}\n messages={this.props.messages}\n userID={this.props.userID}\n />\n </div>\n </div>\n </header>\n );\n }\n}\n\n// Mobile hamburger menu component.\n// Handles opening and closing of sidebar.\nclass Hamburger extends React.Component {\n componentDidMount() {\n $('#mobileMenu').on('shown.bs.collapse', this.addClickOverlay);\n $('#mobileMenu').on('hidden.bs.collapse', this.removeClickOverlay);\n }\n\n componentWillUnmount() {\n $('#mobileMenu').off('shown.bs.collapse', this.addClickOverlay);\n $('#mobileMenu').off('hidden.bs.collapse', this.removeClickOverlay);\n }\n\n addClickOverlay = e => {\n let $overlay = $('<div class=\"click-overlay\"></div>');\n $overlay.on('click', function(e) {\n $('body').css('overflow', '');\n $('.click-overlay').remove();\n $('#mobileMenu').collapse('hide');\n });\n\n $('body').append($overlay);\n $('body').css('overflow', 'hidden');\n }\n\n removeClickOverlay = e => {\n $('body').css('overflow', '');\n $('.click-overlay').remove();\n }\n\n render() {\n return (\n <button\n id=\"hamburg\"\n className=\"pull-left\"\n data-toggle=\"collapse\"\n data-target=\"#mobileMenu\"\n aria-haspopup=\"true\"\n >\n <span>\n <i className=\"fa fa-bars\"></i>\n </span>\n </button>\n );\n }\n}\n\nclass CartIcon extends React.Component {\n openCart(e) {\n Utils.updateModal('cart');\n }\n\n render() {\n return (\n <a\n tabIndex=\"0\"\n className=\"fa-stack fa-lg cart-container\"\n onClick={this.openCart}\n onKeyDown={Utils.accessibleEnterKey}\n aria-label=\"cart\"\n >\n <i id=\"cart\" className=\"fa fa-shopping-cart fa-stack-2x hi\"></i>\n <span\n className={\"badge badge-pill badge-danger cart-items notif-pill\" + (this.props.displayNum > 0 ? '' : ' ghost')}>\n {this.props.displayNum}\n </span>\n </a>\n );\n }\n}\n\nCartIcon.propTypes = {\n displayNum: PropTypes.number.isRequired\n};\n\n/**\n * Notification bell component. Fires district message modal.\n */\nclass Bell extends React.Component {\n constructor(props) {\n super(props);\n this._isMounted = false;\n }\n\n componentWillMount() {\n if (!Utils.hasMessages()) {\n this.props.dispatch(getUserMessages());\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n document.addEventListener('update-messages', this.updateMessages.bind(this));\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n document.removeEventListener('update-messages', this.updateMessages);\n }\n\n openDistrict(e) {\n this.relevantMessages = Utils.getRelevantMessages(this.props.userID, this.props.messages);\n Utils.updateModal('district', {\n messages: this.relevantMessages,\n userID: this.props.userID\n });\n }\n\n updateMessages() {\n if (this._isMounted) this.forceUpdate();\n }\n\n render() {\n this.relevantMessages = Utils.getRelevantMessages(this.props.userID, this.props.messages);\n const noMessages = _.isEmpty(this.relevantMessages);\n return (\n <a\n tabIndex=\"0\"\n className=\"fa-stack fa-lg cart-container\"\n onClick={this.openDistrict.bind(this)}\n onKeyDown={Utils.accessibleEnterKey}\n aria-label=\"notifications\"\n >\n <i id=\"bell\" className={\"fa fa-stack-2x hi \" + (noMessages ? 'fa-bell-o' : 'fa-bell')} ></i>\n {\n noMessages ?\n null :\n <span\n className=\"badge badge-pill badge-danger bell-notif notif-pill\"\n >\n !\n </span>\n }\n </a>\n );\n }\n}\n\nBell.propTypes = {\n dispatch: PropTypes.func.isRequired,\n messages: PropTypes.array,\n userID: PropTypes.number\n};\n\nexport default NavBar;\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Header/Header.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from 'react-router';\r\nimport FocusTrap from 'focus-trap-react';\r\n\r\nimport Loader from '../../Loader/Loader.jsx';\r\nimport {reauthenticate, signOut} from '../../../actions/AuthAction.js';\r\nimport {clearValidationErrors, validationError} from '../../../actions/ErrorAction.js';\r\nimport {updatePayment} from '../../../actions/CartAction.js';\r\n\r\nimport './Reauth.scss';\r\n\r\nclass ReauthModal extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n trapActive: false,\r\n authInterval: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n $('#reauth').on('show.bs.modal', () => {\r\n this.hideOtherModals();\r\n });\r\n\r\n $('#reauth').on('shown.bs.modal', () => {\r\n let localAuthInterval = setInterval(this.checkTimout, 3000);\r\n this.setState({\r\n trapActive: true,\r\n authInterval: localAuthInterval\r\n });\r\n });\r\n\r\n $('#reauth').on('hide.bs.modal', () => {\r\n this.showOtherModals();\r\n clearInterval(this.state.authInterval);\r\n this.setState({\r\n trapActive: false,\r\n authInterval: null\r\n });\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n clearInterval(this.state.authInterval);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n // Modal will close itself once user is authenticated\r\n if (!this.props.isAuthenticated && nextProps.isAuthenticated) {\r\n this.password.value = '';\r\n $(this.modal).modal('hide');\r\n }\r\n }\r\n\r\n checkTimout = () => {\r\n let reauthDialog = Utils.getReauthDialog();\r\n\r\n if (Date.now() - reauthDialog.timestamp > reauthDialog.timeout) {\r\n if(!this.props.isAuthenticated) this.signOut();\r\n }\r\n }\r\n\r\n hideOtherModals(e) {\r\n $('.gen-modal').addClass('ghost');\r\n $('#error').addClass('ghost');\r\n }\r\n\r\n showOtherModals(e) {\r\n $('.gen-modal').removeClass('ghost');\r\n $('#error').removeClass('ghost');\r\n }\r\n\r\n signOut(e) {\r\n $(this.modal).modal('hide');\r\n this.props.dispatch(signOut(this.props.router));\r\n }\r\n\r\n submitReauth(e) {\r\n e.preventDefault();\r\n if (_.isString(this.props.paymentMethod) && this.props.paymentMethod.includes('tok_')) {\r\n this.props.dispatch(updatePayment(this.props.defaultPayment));\r\n }\r\n this.props.dispatch(clearValidationErrors());\r\n\r\n if (this.password.value === '') {\r\n let errors = [];\r\n errors.push({\r\n errorCode: 'CredentialsPasswordRequired',\r\n errorMessage: 'Password is required.'\r\n });\r\n this.props.dispatch(validationError(errors));\r\n } else {\r\n this.props.dispatch(reauthenticate(this.props.username, this.password.value));\r\n }\r\n }\r\n\r\n togglePass(e) {\r\n let input = this.password;\r\n\r\n if (input.type === 'password') {\r\n input.type = 'text';\r\n } else if (input.type === 'text') {\r\n input.type = 'password';\r\n }\r\n }\r\n\r\n trapUser(e) {\r\n // https://media.tenor.co/images/a65883444db2c591e8a5369a1a21a45f/tenor.gif\r\n e.stopPropagation();\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n id=\"reauth\"\r\n className=\"modal\"\r\n role=\"dialog\"\r\n aria-hidden=\"true\"\r\n data-backdrop=\"static\"\r\n data-keyboard=\"false\"\r\n ref={node => this.modal = node}\r\n >\r\n <div className=\"modal-dialog\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header\">\r\n <h4 className=\"modal-title\">\r\n Reauthenticate\r\n </h4>\r\n </div>\r\n <div className=\"modal-body\">\r\n <FocusTrap active={this.state.trapActive}>\r\n <small role=\"alert\">Your session has expired, please reenter your password to continue.</small>\r\n <form onSubmit={this.submitReauth.bind(this)}>\r\n <div className={\"form-group\" + (_.isUndefined(this.props.error.authError) ? '' : ' has-danger')}>\r\n <label htmlFor=\"loginPassword\">Password</label>\r\n <div className=\"input-group\">\r\n <input\r\n type=\"password\"\r\n id=\"loginPassword\"\r\n className=\"form-control pass-inp\"\r\n ref={node => this.password = node}\r\n />\r\n <button\r\n type=\"button\"\r\n className=\"input-group-addon see-pass\"\r\n title=\"View password\"\r\n onClick={this.togglePass.bind(this)}\r\n >\r\n <i className=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n {\r\n _.isEmpty(this.props.error.authError) ?\r\n null :\r\n <div className=\"form-control-feedback small\">\r\n {this.props.error.authError}\r\n </div>\r\n }\r\n </div>\r\n\r\n <button type=\"submit\" className=\"btn btn-primary expand-btn si sign-in\">\r\n {this.props.loading ? <Loader/> : \"Sign In\"}\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-grey expand-btn si sign-out\"\r\n onClick={this.signOut.bind(this)}\r\n >\r\n Sign Out\r\n </button>\r\n </form>\r\n </FocusTrap>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nReauthModal.propTypes = {\r\n defaultPayment: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired,\r\n error: PropTypes.object,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n paymentMethod: PropTypes.string,\r\n persisted: PropTypes.bool,\r\n username: PropTypes.string,\r\n router: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withRouter(ReauthModal);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/Reauth/Reauth.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {Link} from 'react-router';\r\n\r\nimport {\r\n loadAccount,\r\n loadPatron,\r\n fetchTransactions\r\n} from '../../../common/actions/PatronsAction.js';\r\n\r\nimport Loader from '../../../common/components/Loader/Loader.jsx';\r\n\r\nimport ToolTip from '../ToolTip/ToolTip.jsx';\r\n\r\nimport './StudentInfo.scss';\r\n\r\n// Contains student transaction data, for use on dash or in student modal.\r\nconst mapStateToProps = store => {\r\n return {\r\n deposits: store.patrons.deposits,\r\n loadedAccount: store.patrons.loadedAccount,\r\n loadedPatron: store.patrons.loadedPatron,\r\n loading: store.patrons.loading,\r\n patrons: store.patrons.patrons,\r\n transactions: store.patrons.transactions,\r\n userPatrons: store.patrons.userPatrons\r\n };\r\n};\r\n\r\n//TODO Needs analysis. It's weird that React iterates multiple time on Card component even though we are only painting it once. Possible performance improvements.\r\nclass StudentInfo extends React.Component {\r\n static propTypes = {\r\n deposits: PropTypes.array.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n loadedAccount: PropTypes.object,\r\n loadedPatron: PropTypes.object,\r\n patrons: PropTypes.array.isRequired,\r\n transactions: PropTypes.array,\r\n userPatrons: PropTypes.array\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n this.state = {\r\n acct: '',\r\n balance: 0,\r\n header: '',\r\n school: '',\r\n sid: '',\r\n tooltip: '',\r\n type: 'student'\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n componentWillMount() {\r\n let initialState = this.loadAppropriateInfo(this.props);\r\n this.setState(initialState);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this._isMounted) {\r\n let newState = this.loadAppropriateInfo(nextProps);\r\n\r\n this.setState(newState);\r\n }\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n if (this.props.deposits === nextProps.deposits && nextProps.loading) return false;\r\n return true;\r\n }\r\n\r\n //TODO Refactor\r\n loadAppropriateInfo(props) {\r\n let newInfo;\r\n let tooltipMsg = '';\r\n let balance = 0;\r\n\r\n if (!_.isEmpty(props.loadedAccount)) { // Load account\r\n let result = Utils.canDeposit(props.loadedAccount);\r\n const names = Utils.namesOnAccount(props.loadedAccount.patrons);\r\n const headerStr = names + '\\'s Account';\r\n\r\n //Inactive school or district\r\n //let schoolActiveStatuses = _.pluck(props.loadedAccount.patrons, 'schoolActive');\r\n //Inactive Classic student\r\n //let patronActiveStatuses = _.pluck(props.loadedAccount.patrons, 'patronActive');\r\n\r\n let account = _.find(props.patrons, acct => {\r\n return acct.patronAccountNum === props.loadedAccount.patronAccountNum;\r\n });\r\n\r\n balance = _.isUndefined(account) ? props.loadedAccount.balance : account.balance;\r\n\r\n newInfo = {\r\n acct: props.loadedAccount.patronAccountNum,\r\n balance: balance,\r\n header: headerStr,\r\n school: undefined,\r\n sid: undefined,\r\n tooltip:\r\n result.showBalance ?\r\n tooltipMsg :\r\n result.msg,\r\n type: 'acct'\r\n };\r\n } else if (!_.isEmpty(props.loadedPatron)) { // Load patron\r\n //get balance from account level\r\n //acctID changes for classic dynamically, and cannot guarantee it's uniqueness\r\n\r\n let account = _.find(props.patrons, acct => {\r\n return acct.patronAccountNum === props.loadedPatron.acctID;\r\n });\r\n\r\n let loadedPatronAccount = Utils.findAccountOfPatron(props.loadedPatron.patronID, props.patrons);\r\n\r\n let loadedPatronAccountResult = Utils.canDeposit(loadedPatronAccount);\r\n\r\n balance = _.isUndefined(account) ? props.loadedPatron.balance : account.balance;\r\n\r\n newInfo = {\r\n acct: props.loadedPatron.acctID,\r\n balance: balance,\r\n header: props.loadedPatron.fullName,\r\n school: props.loadedPatron.schoolName,\r\n sid: props.loadedPatron.patronID,\r\n tooltip:\r\n loadedPatronAccountResult.showBalance ?\r\n tooltipMsg :\r\n loadedPatronAccountResult.msg,\r\n type: 'student'\r\n };\r\n } else if (!_.isEmpty(props.patrons)) { // Load \"default\"\r\n let result = Utils.canDeposit(props.patrons[0]);\r\n\r\n const defaultAcct = props.patrons[0];\r\n const defaultStudent = defaultAcct.patrons[0];\r\n balance = defaultAcct.balance;\r\n newInfo = {\r\n acct: defaultAcct.patronAccountNum,\r\n balance: balance,\r\n header: defaultStudent.fullName,\r\n school: defaultStudent.schoolName,\r\n sid: defaultStudent.patronID,\r\n tooltip:\r\n result.showBalance ?\r\n tooltipMsg :\r\n result.msg,\r\n type: 'student'\r\n };\r\n this.props.dispatch(loadPatron({\r\n ...defaultStudent,\r\n acctID: defaultAcct.patronAccountNum,\r\n balance: defaultAcct.balance\r\n }));\r\n if (!defaultStudent.lastPosSaleDateTimeUnavailable) {\r\n this.props.dispatch(fetchTransactions(defaultStudent.patronID));\r\n }\r\n } else { // In case redux hasn't loaded anything. Will be overwritten\r\n newInfo = {\r\n acct: '',\r\n balance: 0,\r\n header: '',\r\n school: '',\r\n sid: '',\r\n tooltip: '',\r\n type: 'student'\r\n };\r\n }\r\n\r\n return newInfo;\r\n }\r\n\r\n loadStudentAccount(e) {\r\n let account = Utils.getPatronsByID(this.props.patrons, this.state.acct);\r\n this.props.dispatch(loadAccount(account));\r\n\r\n let checkpoint = e.target;\r\n window.scrollTo(0, 0);\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint,\r\n triggerId: (\"existing-acct-\" + account.patronAccountNum),\r\n routeChange: \"accounts\"\r\n }}));\r\n }\r\n\r\n render() {\r\n let userPatron = {};\r\n let districtName = '';\r\n let syncTime = '';\r\n const unavailable = this.props.loadedAccount.lastPosDepositDateTimeUnavailable || this.props.loadedPatron.lastPosSaleDateTimeUnavailable;\r\n if (!_.isEmpty(this.props.loadedAccount)) {\r\n const defPatron = this.props.loadedAccount.patrons[0];\r\n districtName = defPatron.districtName;\r\n syncTime = defPatron.schoolMT5 ? '5 minutes' : '24 hours';\r\n userPatron = _.findWhere(this.props.userPatrons, {patronID: this.props.loadedAccount.defaultPatronID});\r\n } else if (!_.isEmpty(this.props.loadedPatron)) {\r\n districtName = this.props.loadedPatron.districtName;\r\n syncTime = this.props.loadedPatron.schoolMT5 ? '5 minutes' : '24 hours';\r\n }\r\n\r\n return (\r\n <div id=\"student-info\">\r\n <h4 className=\"sr-only\">{\"Transactions for \" + this.state.header}</h4>\r\n <div className=\"card-header\">\r\n <h4 className=\"info-header\" role=\"none\">{this.state.header}</h4>\r\n </div>\r\n <hr className=\"aci\"/>\r\n <div className={\"stud-info\" + (this.state.type === 'student' ? '' : ' ghost')}>\r\n <small className=\"school\">\r\n {this.state.school}\r\n </small>\r\n </div>\r\n <div className={\"acct-info\" + (this.state.type === 'acct' ? '' : ' ghost')}>\r\n <small className=\"dep-disclaimer\">\r\n NOTE: {districtName} synchronizes online deposits every {syncTime}. Deposits shown here have been applied to the Cafeteria Account and funds are ready to use.\r\n </small>\r\n {\r\n _.isString(userPatron.nextScheduledDepositDate) ?\r\n <small className=\"next-dep\">\r\n Next scheduled deposit: {Utils.dateFormat(Utils.convertFromDatetime(userPatron.nextScheduledDepositDate))}\r\n </small> :\r\n null\r\n }\r\n </div>\r\n <div className=\"balance-info\">\r\n <small className=\"sa account-balance\">\r\n Account Balance:\r\n <span className=\"expanded-balance\">\r\n {\r\n //make sure balance is really available, we can change utils but would be more work and testing TODO for later\r\n _.isEmpty(this.state.tooltip) && !_.isNull(this.state.balance) ?\r\n '$' + this.state.balance.toFixed(2) :\r\n <ToolTip\r\n title=\"The requested information from your school is temporarily unavailable, but should return shortly. For immediate assistance, please contact the food service officials at your school or school district.\"\r\n direction={Utils.isSmallFormFactor() ? \"bottom\" : \"right\"}\r\n />\r\n }\r\n </span>\r\n </small>\r\n <small className=\"sa\">\r\n <Link\r\n to={{pathname: \"/accounts\"}}\r\n onClick={this.loadStudentAccount.bind(this)}\r\n >\r\n Manage low balance alerts\r\n </Link>\r\n </small>\r\n </div>\r\n <TransactionFeed\r\n deposits={this.props.deposits}\r\n loading={this.props.loading}\r\n transactions={this.props.transactions}\r\n unavailable={unavailable}\r\n type={this.state.type}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Infinite scrolling transaction feed.\r\n * Eventually stops and prompts user to go to reports page.\r\n */\r\nclass TransactionFeed extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.uid = 0;\r\n this._isMounted = false;\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"table-responsive\">\r\n <table className=\"table table-striped table-body\" >\r\n <thead className=\"table-header\">\r\n <tr>\r\n <th className=\"tbl-dte\" scope=\"col\">Date</th>\r\n <th className=\"tbl-descr\" scope=\"col\">\r\n {this.props.type === 'student' ? 'Purchased' : 'Deposit'}\r\n </th>\r\n <th className=\"tbl-amnt\" scope=\"col\">Amount</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n { // Transactions\r\n _.isEmpty(this.props.transactions) ?\r\n null :\r\n _.map(this.props.transactions, t => {\r\n // let transDate = new Date(Date.parse(t.effectiveDateTime));\r\n let transDate = Utils.convertFromDatetime(t.effectiveDateTime);\r\n let date = Utils.dateFormat(transDate, false);\r\n let time = Utils.timeFormat(transDate);\r\n return <TR\r\n key={Math.random()}\r\n date={date}\r\n time={time}\r\n item={t.foodItemName}\r\n amount={t.amount}\r\n />;\r\n })\r\n }\r\n { // Deposits\r\n _.isEmpty(this.props.deposits) ?\r\n null :\r\n _.map(this.props.deposits, d => {\r\n let depDate = Utils.convertFromDatetime(d.effectiveDateTime);\r\n let date = Utils.dateFormat(depDate, false);\r\n let time = Utils.timeFormat(depDate);\r\n return <TR\r\n key={Math.random()}\r\n date={date}\r\n time={time}\r\n item={d.posTransTypeName}\r\n amount={d.amount}\r\n />;\r\n })\r\n }\r\n </tbody>\r\n </table>\r\n { // No deposits or transactions\r\n (_.isEmpty(this.props.transactions) &&\r\n _.isEmpty(this.props.deposits) &&\r\n !this.props.loading) ?\r\n <div className=\"h5 no-trans\">\r\n <div>\r\n {\r\n this.props.unavailable ?\r\n 'Transaction information is temporarily unavailable.' :\r\n 'No transactions to display'\r\n }\r\n </div>\r\n </div> : null\r\n }\r\n {\r\n (this.props.loading &&\r\n (this.props.transactions.length === 0 &&\r\n this.props.deposits.length === 0)) ?\r\n <div className=\"center-image-container\">\r\n <Loader/>\r\n </div> :\r\n null\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nTransactionFeed.propTypes = {\r\n deposits: PropTypes.array,\r\n loading: PropTypes.bool.isRequired,\r\n transactions: PropTypes.array,\r\n unavailable: PropTypes.bool,\r\n type: PropTypes.string.isRequired\r\n};\r\n\r\n/**\r\n * Transaction list item. For use in infinite scrolling creation.\r\n */\r\nclass TR extends React.Component {\r\n render() {\r\n return (\r\n <tr>\r\n <td className=\"tbl-date\">\r\n <span>{this.props.date}  \r\n <div className=\"tbl-time\">{this.props.time}</div>\r\n </span>\r\n </td>\r\n <td className=\"tbl-descr\">\r\n <span>{this.props.item}</span>\r\n </td>\r\n <td className=\"tbl-amnt\">\r\n <span>${this.props.amount.toFixed(2)}</span>\r\n </td>\r\n </tr>\r\n );\r\n }\r\n}\r\n\r\nTR.propTypes = {\r\n amount: PropTypes.number.isRequired,\r\n date: PropTypes.string.isRequired,\r\n item: PropTypes.string.isRequired,\r\n time: PropTypes.string.isRequired\r\n};\r\n\r\nexport default connect(mapStateToProps)(StudentInfo);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/StudentInfo/StudentInfo.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\n\nimport ExistingPayment from '../ExistingPayment/ExistingPayment.jsx';\nimport UserInfo from '../UserInfo/UserInfo.jsx';\nimport Toggle from '../Toggle/Toggle.jsx';\nimport Loader from '../Loader/Loader.jsx';\nimport ToggleLoader from '../ToggleLoader/ToggleLoader.jsx';\n\nimport registrationValidation from '../../js/RegistrationValidation.js';\n\nimport {\n clearUpdateValidation,\n updateUser,\n updateNotificationSetting,\n updateGlobalPush\n} from '../../actions/UserAction.js';\nimport {clearValidationErrors} from '../../actions/ErrorAction.js';\nimport securityQuestions from '../../constants/SecurityQuestions.json';\nimport { initPushNotifications } from '../../js/Push.js';\n\nimport './SubSetting.scss';\n\nconst mapStateToProps = store => {\n return {\n globalPushEnabled: store.user.globalPushEnabled,\n pushNotLoading: store.user.pushNotLoading,\n loading: store.user.loading,\n notifications: store.user.notifications,\n userID: store.user.id,\n userInfo: store.user.userInfo,\n userUpdated: store.user.userUpdated\n };\n};\n\nexport class SubSetting extends React.Component {\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n globalPushEnabled: PropTypes.bool,\n load: PropTypes.string,\n pushNotLoading: PropTypes.bool.isRequired,\n loading: PropTypes.bool.isRequired,\n notifEnabled: PropTypes.bool,\n notifications: PropTypes.array,\n userID: PropTypes.number,\n userInfo: PropTypes.object.isRequired,\n userUpdated: PropTypes.bool\n };\n\n constructor(props) {\n super(props);\n this._isMounted = false;\n\n let defaultSub = Utils.isApp() ? 'notification' : 'payment';\n\n this.state = {\n sub: this.props.load || defaultSub\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n document.addEventListener('change-sub', e => {\n let subType = e.detail.type;\n\n if (this._isMounted) {\n this.setState({\n sub: subType\n });\n }\n });\n }\n\n switchComponent(subType) {\n let newSub;\n let appPushEnabled = Utils.getFromStorage('appPushEnabled');\n\n switch (subType) {\n case 'notification':\n newSub = <NotificationSub\n dispatch={this.props.dispatch}\n enabled={this.props.globalPushEnabled}\n notifications={this.props.notifications}\n userEmail={this.props.userInfo.email}\n loading={this.props.pushNotLoading}\n />;\n break;\n case 'payment':\n newSub = <PaymentSub/>;\n break;\n case 'account':\n newSub = <UpdateAccount\n loading={this.props.loading}\n register={false}\n dispatch={this.props.dispatch}\n userInfo={this.props.userInfo}\n userUpdated={this.props.userUpdated}\n />;\n break;\n default:\n // Should never get here, but just in case\n newSub = <NotificationSub\n dispatch={this.props.dispatch}\n enabled={this.props.globalPushEnabled}\n notifications={this.props.notifications}\n userEmail={this.props.userInfo.email}\n loading={this.props.pushNotLoading}\n />;\n break;\n }\n\n return newSub;\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n enableNotifications(e) {\n let registrationId = Utils.getFromStorage('devicePushRegID');\n\n if (_.isUndefined(registrationId)) {\n (async () => {\n await initPushNotifications(this.props.dispatch);\n })();\n } else {\n this.props.dispatch(updateGlobalPush(registrationId, true));\n }\n }\n\n render() {\n return (\n <div className=\"sub-settings\">\n {this.switchComponent(this.state.sub)}\n </div>\n );\n }\n}\n\n/**\n * TODO: This should be a smart component since it relies on API data. Their is a possibility of user hitting the toggle multiple times\n *\n */\nclass NotificationSub extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n enabled: this.props.enabled,\n validEmail1: false,\n validEmail2: false,\n validEmail3: false,\n invalidEmail1: false,\n invalidEmail2: false,\n invalidEmail3: false,\n email1: '',\n email2: '',\n email3: ''\n };\n }\n componentWillMount() {\n this.validateEmail = _.debounce(e => {\n const emailRe = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\\b/;\n\n let email = e.target.value;\n let validEmail = emailRe.test(email);\n\n let stateObj = {};\n\n switch (e.target.id) {\n case 'emailInput1':\n stateObj.validEmail1 = validEmail;\n if (validEmail) stateObj.invalidEmail1 = !validEmail;\n stateObj.email1 = email;\n break;\n case 'emailInput2':\n stateObj.validEmail2 = validEmail;\n if (validEmail) stateObj.invalidEmail2 = !validEmail;\n stateObj.email2 = email;\n break;\n case 'emailInput3':\n stateObj.validEmail3 = validEmail;\n if (validEmail) stateObj.invalidEmail3 = !validEmail;\n stateObj.email3 = email;\n break;\n default:\n break;\n }\n\n this.setState(stateObj);\n }, 300);\n }\n\n settingEnable(e) {\n this.setState({\n enabled: true\n });\n }\n\n settingDisable(e) {\n this.setState({\n enabled: false\n });\n }\n\n handleEmailChange(e) {\n e.persist();\n this.validateEmail(e);\n }\n\n /*\n You COULD apply these classes when the regex picks up an non-valid input\n but I feel like having it constantly yelling at you wouldn't be the experience\n that we want the user to have, so instead, just tell them it's invalid on blur\n */\n handleBlur(e) {\n let invalidInputs = {};\n\n switch (e.target.id) {\n case 'emailInput1':\n if (!this.state.validEmail1 && this.state.email1 !== '') {\n invalidInputs.invalidEmail1 = true;\n }\n break;\n case 'emailInput2':\n if (!this.state.validEmail2 && this.state.email2 !== '') {\n invalidInputs.invalidEmail2 = true;\n }\n break;\n case 'emailInput3':\n if (!this.state.validEmail3 && this.state.email3 !== '') {\n invalidInputs.invalidEmail3 = true;\n }\n break;\n default:\n break;\n }\n\n this.setState(invalidInputs);\n }\n\n pushToggleHandler(e) {\n let idObj = {\n //paymentPush: 2,\n balancePush: 3,\n depositPush: 6\n };\n let deviceID = Utils.getFromStorage('devicePushRegID');\n this.props.dispatch(updateNotificationSetting(deviceID, idObj[e.currentTarget.id], e.currentTarget.checked));\n }\n\n enableNotifications(e) {\n let registrationId = Utils.getFromStorage('devicePushRegID');\n\n if (_.isUndefined(registrationId)) {\n (async () => {\n await initPushNotifications(this.props.dispatch);\n })();\n } else {\n this.props.dispatch(updateGlobalPush(registrationId, true));\n }\n }\n\n cancelHandler() {\n document.dispatchEvent(new Event('hide-settings'));\n }\n\n render() {\n let balancePush = _.findWhere(this.props.notifications, {notificationTypeID: 3}) || {};\n let depositPush = _.findWhere(this.props.notifications, {notificationTypeID: 6}) || {};\n let globalPushEnabled = this.props.enabled;\n return (\n <div\n id=\"notification-sub\"\n className=\"list-group\"\n >\n {\n globalPushEnabled ?\n <div>\n <li className=\"list-group-item\">\n <span className=\"form-check sh\">\n <label className=\"form-check-label\">\n Push Notifications\n </label>\n </span>\n </li>\n <li className=\"list-group-item\">\n <span className=\"form-check indent-setting\">\n <label className=\"form-check-label\" htmlFor=\"balancePush\">\n Low Balance Warnings\n </label>\n {\n this.props.loading ?\n <div className=\"switch pull-right\">\n <ToggleLoader checked={balancePush.pushEnabled} />\n </div> :\n <Toggle\n changeHandler={this.pushToggleHandler.bind(this)}\n defaultChecked={balancePush.pushEnabled}\n inputID=\"balancePush\"\n right={true}\n />\n }\n </span>\n </li>\n <li className=\"list-group-item\">\n <span className=\"form-check indent-setting\">\n <label className=\"form-check-label\" htmlFor=\"depositPush\">\n Scheduled Deposit Notice\n </label>\n {\n this.props.loading ?\n <div className=\"switch pull-right\">\n <ToggleLoader checked={depositPush.pushEnabled} />\n </div> :\n <Toggle\n changeHandler={this.pushToggleHandler.bind(this)}\n defaultChecked={depositPush.pushEnabled}\n inputID=\"depositPush\"\n right={true}\n />\n }\n </span>\n </li>\n </div> :\n <div>\n Notifications are currently disabled. Would you like to turn them back on?\n <button\n className=\"btn btn-success btn-block confirm-button\"\n onClick={this.enableNotifications.bind(this)}>\n {\n this.props.loading ?\n <Loader /> :\n 'Enable Notifications'\n }\n </button>\n <button\n className=\"btn btn-grey btn-block\"\n data-dismiss=\"modal\"\n onClick={this.cancelHandler.bind(this)}\n >\n Cancel\n </button>\n </div>\n }\n </div>\n\n );\n }\n}\n\nNotificationSub.propTypes = {\n dispatch: PropTypes.func,\n enabled: PropTypes.bool,\n notifications: PropTypes.array,\n userEmail: PropTypes.string,\n loading: PropTypes.bool,\n};\n\nclass PaymentSub extends React.Component {\n showeCheckVal(e) {\n Utils.updateModal('echeck');\n }\n\n render() {\n return (\n <div id=\"payment-sub\" className=\"list-group\">\n <h4 className=\"sr-only\">Payment method settings</h4>\n <ExistingPayment newPay={true} context=\"settings\"/>\n {\n _.isUndefined(this.props.IdontExists) ?\n null :\n <div className=\"echeck-mock\">\n <div className=\"echeck-opt exist-select\">\n <div className=\"form-check\">\n <label className=\"form-check-label\">\n <div className=\"ol-payment\">\n <img src=\"img/echeck.jpg\" className=\"payment-option\"/>\n <span>ending in 503 (Pending)</span>\n <button\n className=\"btn btn-sm btn-primary pull-right\"\n onClick={this.showeCheckVal}\n >\n Verify\n </button>\n </div>\n </label>\n </div>\n </div>\n </div>\n }\n </div>\n );\n }\n}\n\nPaymentSub.propTypes = {\n IdontExists: PropTypes.object\n};\n\nclass UpdateAccount extends React.Component {\n componentWillMount() {\n this.props.dispatch(clearUpdateValidation());\n }\n\n componentDidMount() {\n let save = document.getElementById('save');\n save.disabled = true;\n }\n\n setBackDefault(e) {\n const info = this.props.userInfo;\n this.props.dispatch(clearValidationErrors());\n this.form.querySelector('#ogpass').value = '';\n this.form.querySelector('#password').value = '';\n this.form.querySelector('#password2').value = '';\n this.form.querySelector('#first').value = info.firstName;\n this.form.querySelector('#last').value = info.lastName;\n this.form.querySelector('#email').value = info.email;\n this.form.querySelector('#phoneAreaCode').value = info.phoneAreaCode;\n this.form.querySelector('#phoneNum').value = info.phoneNum;\n this.form.querySelector('#phoneExt').value = info.phoneExt;\n // Users without a security question will have it set as null\n this.form.querySelector('#securityQ').dataset.qid = _.isNull(info.securityQuestionID) ? -1 : info.securityQuestionID;\n this.form.querySelector('#securityQ').textContent = securityQuestions[info.securityQuestionID];\n this.form.querySelector('#securityA').value = '*****';\n this.form.querySelector('#securityA').dataset.starred = true;\n\n $(this.form).find('.has-success').removeClass('has-success');\n $(this.form).find('.form-control-success').removeClass('form-control-success');\n $(this.form).find('.has-danger').removeClass('has-danger');\n $(this.form).find('.form-control-danger').removeClass('form-control-danger');\n\n document.dispatchEvent(new Event('hide-settings'));\n if(!Utils.isMobile()) {\n document.dispatchEvent(new CustomEvent('rove-on-modals', {detail: {\n modalShown: false,\n checkpoint: document.activeElement\n }}));\n }\n }\n\n handleSave(e) {\n e.preventDefault();\n\n // Clear old validation errors\n this.props.dispatch(clearValidationErrors());\n let complete = false;\n // const elements = e.currentTarget.elements;\n const elements = this.form.elements;\n const usrObj = {\n oldPassword: elements.ogpass.value,\n newPassword: elements.password.value,\n repeatNewPassword: elements.password2.value,\n firstName: elements.first.value,\n lastName: elements.last.value,\n email: elements.email.value,\n repeatEmail: elements.email.value,\n emailUpdated: elements.email.value !== this.props.userInfo.email,\n email2: _.isEmpty(elements.notifEmail2) ? null : elements.notifEmail2.value,\n email3: _.isEmpty(elements.notifEmail3) ? null : elements.notifEmail3.value,\n phoneAreaCode: _.isEmpty(elements.phoneAreaCode.value) ? null : Number(elements.phoneAreaCode.value),\n phoneExt: _.isEmpty(elements.phoneExt.value) ? null : Number(elements.phoneExt.value),\n phoneNum: _.isEmpty(elements.phoneNum.value) ? null : Number(elements.phoneNum.value),\n securityQuestionID: Number(elements.securityQ.selectedOptions[0].dataset.qid),\n securityA: elements.securityA.value\n };\n\n if (elements.securityA.dataset.starred) {\n // Don't send security answer if it hasn't been changed\n usrObj.securityA = null;\n if (usrObj.securityQuestionID !== -1) {\n // Dont bother with security question either\n // Unless, of course, it hasn't been set yet\n usrObj.securityQuestionID = null;\n }\n }\n\n complete = registrationValidation(usrObj, this.props.dispatch, true);\n\n // All fields complete/valid!\n if (complete) {\n this.props.dispatch(updateUser(usrObj));\n }\n\n // False will keep the page from reloading\n return complete;\n }\n\n submitHack(e) {\n // We run into a problem where the blur event on the inputs compete with the click event\n // on the form submit button, so instead we assign this to mousedown to subvert the issue\n this.handleSave(e);\n }\n\n enableSave(e) {\n this.save.disabled = false;\n }\n\n render() {\n return (\n <form\n onSubmit={this.handleSave.bind(this)}\n ref={node => this.form = node}\n noValidate=\"novalidate\"\n onChange={this.enableSave.bind(this)}\n >\n <UserInfo\n register={false}\n userInfo={this.props.userInfo}\n dispatch={this.props.dispatch}\n />\n <div className=\"settings-actions\">\n <button\n id=\"save\"\n type=\"button\"\n className=\"btn btn-sm btn-success expand-btn\"\n //onMouseDown={this.submitHack.bind(this)}\n onClick={this.submitHack.bind(this)}\n ref={node => this.save = node}\n >\n {this.props.loading ? <Loader /> : 'Save'}\n </button>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-grey expand-btn\"\n data-dismiss=\"modal\"\n onClick={this.setBackDefault.bind(this)}\n >\n Cancel\n </button>\n </div>\n </form>\n );\n }\n}\n\nUpdateAccount.propTypes = {\n dispatch: PropTypes.func.isRequired,\n loading: PropTypes.bool.isRequired,\n userInfo: PropTypes.object.isRequired,\n userUpdated: PropTypes.bool\n};\n\nexport default connect(mapStateToProps)(SubSetting);\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/SubSetting/SubSetting.jsx","import React from 'react';\r\nimport './ToggleLoader.scss';\r\n\r\nconst ToggleLoader = ({checked}) => (\r\n <div className={\"contr\" + (checked ? ' isChecked' : '')}>\r\n <div className=\"spinner\">\r\n <div className=\"bounce1\"></div>\r\n <div className=\"bounce2\"></div>\r\n <div className=\"bounce3\"></div>\r\n </div>\r\n </div>\r\n);\r\n\r\nToggleLoader.propTypes = {\r\n checked: React.PropTypes.bool.isRequired\r\n}\r\n\r\nexport default ToggleLoader;\n\n\n// WEBPACK FOOTER //\n// app/common/components/ToggleLoader/ToggleLoader.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport './Toggle.scss';\r\n\r\nclass Toggle extends React.Component {\r\n render() {\r\n let id = this.props.inputID || '';\r\n return (\r\n <label className={\"switch\" + (this.props.right ? ' pull-right' : '')}>\r\n <input\r\n type=\"checkbox\"\r\n onChange={this.props.changeHandler}\r\n defaultChecked={this.props.defaultChecked}\r\n checked={this.props.checked}\r\n id={id}\r\n />\r\n <div className=\"slider round\"></div>\r\n </label>\r\n );\r\n }\r\n}\r\n\r\nToggle.propTypes = {\r\n checked: PropTypes.bool,\r\n defaultChecked: PropTypes.bool,\r\n inputID: PropTypes.string,\r\n right: PropTypes.bool,\r\n changeHandler: PropTypes.func\r\n};\r\n\r\nexport default Toggle;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Toggle/Toggle.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {Link} from 'react-router';\n\nimport securityQuestions from '../../constants/SecurityQuestions.json';\n\nimport {\n checkUsernameAvailability,\n checkEmailAvailability,\n clearUserValidation,\n clearEmailValidation\n} from '../../actions/UserAction.js';\nimport {validationError, clearValidationErrors, clearSpecificValidation} from '../../actions/ErrorAction.js';\n\nimport './UserInfo.scss';\n\nconst PLACEHOLDER_WIDTH = 768;\n\n//Register route\nconst mapStateToProps = store => {\n return {\n currentEmail: store.user.userInfo.email,\n emailValid: store.user.emailValid,\n loading: store.user.loading,\n usernameValid: store.user.usernameValid,\n validationErrors: store.error.validationErrors\n };\n};\n\nexport class UserInfo extends React.Component {\n static propTypes = {\n currentEmail: PropTypes.string,\n dispatch: PropTypes.func.isRequired,\n emailValid: PropTypes.bool,\n loading: PropTypes.bool.isRequired,\n register: PropTypes.bool,\n userInfo: PropTypes.object,\n usernameValid: PropTypes.bool,\n validationErrors: PropTypes.array.isRequired,\n backdoorCheck: PropTypes.func\n }\n\n constructor(props) {\n super(props);\n this.state = {\n hidePlaceholder: this.props.register && window.innerWidth > PLACEHOLDER_WIDTH\n };\n\n this.debPlaceholderHandler = _.debounce(this.placeholderHandler, 300);\n }\n\n componentWillMount() {\n this.props.dispatch(clearValidationErrors());\n }\n\n componentWillReceiveProps(nextProps) {\n if(this.props.register) {\n this.props.backdoorCheck();\n }\n }\n\n componentDidMount() {\n // Given user info under settings page\n if (!_.isUndefined(this.props.userInfo)) {\n this.loadInfo(this.props.userInfo);\n }\n window.addEventListener('resize', this.debPlaceholderHandler);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.debPlaceholderHandler);\n }\n\n placeholderHandler = () => {\n this.setState({\n hidePlaceholder: this.props.register && (window.innerWidth > PLACEHOLDER_WIDTH)\n });\n }\n\n loadInfo(info) {\n this.props.dispatch(clearValidationErrors());\n this.node.querySelector('#password').required = false;\n this.node.querySelector('#password2').required = false;\n this.node.querySelector('#first').value = info.firstName;\n this.node.querySelector('#last').value = info.lastName;\n this.node.querySelector('#email').value = info.email;\n this.node.querySelector('#notifEmail2').value = info.email2;\n this.node.querySelector('#notifEmail3').value = info.email3;\n this.node.querySelector('#phoneAreaCode').value = info.phoneAreaCode;\n this.node.querySelector('#phoneNum').value = info.phoneNum;\n this.node.querySelector('#phoneExt').value = info.phoneExt;\n this.node.querySelector('#securityQ').defaultValue = securityQuestions[info.securityQuestionID];\n this.node.querySelector('#securityA').value = '******';\n this.node.querySelector('#securityA').dataset.starred = true;\n }\n\n render() {\n return (\n <div className=\"user-info\" ref={node => this.node = node}>\n <h4 className=\"sr-only\">\n {\n this.props.register ?\n 'Account registration form' :\n 'Account update form'\n }\n </h4>\n {\n this.props.register ?\n <Username\n dispatch={this.props.dispatch}\n error={Utils.getErrorsByID(this.props.validationErrors, 'username')}\n loading={this.props.loading}\n register={this.props.register}\n usernameValid={this.props.usernameValid}\n hidePlaceholder={this.state.hidePlaceholder}\n /> :\n <OGPassword\n dispatch={this.props.dispatch}\n error={Utils.getErrorsByID(this.props.validationErrors, 'ogpassword')}\n loading={this.props.loading}\n register={this.props.register}\n hidePlaceholder={this.state.hidePlaceholder}\n />\n }\n <Password\n dispatch={this.props.dispatch}\n error={Utils.getErrorsByID(this.props.validationErrors, 'password', 'password2')}\n register={this.props.register}\n hidePlaceholder={this.state.hidePlaceholder}\n />\n <Names\n dispatch={this.props.dispatch}\n register={this.props.register}\n error={Utils.getErrorsByID(this.props.validationErrors, 'first', 'last')}\n hidePlaceholder={this.state.hidePlaceholder}\n />\n <Email\n currentEmail={this.props.currentEmail}\n dispatch={this.props.dispatch}\n emailValid={this.props.emailValid}\n error={Utils.getErrorsByID(this.props.validationErrors, 'email', 'email2')}\n loading={this.props.loading}\n register={this.props.register}\n hidePlaceholder={this.state.hidePlaceholder}\n />\n {\n this.props.register ?\n null :\n <NotificationEmail\n dispatch={this.props.dispatch}\n error={Utils.getErrorsByID(this.props.validationErrors, 'notifEmail2', 'notifEmail3')}\n />\n }\n <PhoneNumber\n dispatch={this.props.dispatch}\n error={Utils.getErrorsByID(this.props.validationErrors, 'phone')}\n register={this.props.register}\n hidePlaceholder={this.state.hidePlaceholder}\n />\n <Security\n dispatch={this.props.dispatch}\n error={Utils.getErrorsByID(this.props.validationErrors, 'securityQ', 'securityA')}\n register={this.props.register}\n userInfo={this.props.userInfo}\n hidePlaceholder={this.state.hidePlaceholder}\n />\n {\n this.props.register ?\n null :\n <small className=\"low-balance-text\">\n <Link to=\"/about?open=cancelaccount\">Cancel My Account and Delete My Data</Link>\n </small>\n }\n {\n _.isEmpty(this.props.validationErrors) ?\n null :\n <p className=\"sr-only\" aria-live=\"polite\">\n {\n Utils.generateSROnlyErrorMsg(this.props.validationErrors)\n }\n </p>\n }\n </div>\n );\n }\n}\n\nclass Username extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n checking: false\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (!_.isUndefined(nextProps.usernameValid) &&\n this.props.usernameValid !== nextProps.usernameValid) {\n this.setState({\n checking: false\n });\n }\n }\n\n checkAvailability(e) {\n this.props.dispatch(clearSpecificValidation('username'));\n this.props.dispatch(clearUserValidation());\n // No need to check if it's not long enough\n const username = this.username.value;\n const whiteSpacePattern = /\\s/;\n\n if (username.length >= 8 && !whiteSpacePattern.test(username)) {\n this.setState({\n checking: true\n });\n this.props.dispatch(checkUsernameAvailability(username));\n } else if (!_.isEmpty(username)) {\n if(username.length < 8) {\n this.props.dispatch(validationError([{\n errorCode: 'UsernameLength',\n errorMessage: 'Username must be 8 characters or more.'\n }]));\n }\n if(whiteSpacePattern.test(username)) {\n this.props.dispatch(validationError([{\n errorCode: 'UsernameSpacesNotAllowed',\n errorMessage: 'Spaces are not allowed.'\n }]));\n }\n }\n }\n\n render() {\n // Decide whether or not to display validation based on API call\n let validationClass = '';\n if (!_.isUndefined(this.props.usernameValid)) {\n validationClass = this.props.usernameValid ? 'has-success' : 'has-danger';\n }\n\n // Overwrite with validation errors\n if (!_.isEmpty(this.props.error)) {\n validationClass = 'has-danger';\n }\n return (\n <div className={\"form-group row username \" + (validationClass)}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"username\">\n Username\n </label>\n <div className=\"col-12 col-md-6\">\n <div className=\"input-group\">\n <input\n id=\"username\"\n type=\"text\"\n className={\"form-control form-control-sm\" + (this.props.usernameValid ? ' form-control-success' : '')}\n onBlur={this.checkAvailability.bind(this)}\n placeholder={this.props.hidePlaceholder ? '' : 'Username'}\n ref={node => this.username = node}\n aria-invalid={!_.isEmpty(this.props.error.username)}\n aria-required=\"true\"\n />\n </div>\n <div className=\"form-text text-muted small hidden-md-up\">\n Username must be at least 8 characters long\n </div>\n {\n this.props.loading && this.state.checking ?\n <div className=\"form-control-feedback small\">\n Checking username availability...\n </div> :\n null\n }\n {\n this.props.usernameValid && _.isEmpty(this.props.error.username) ?\n <div className=\"form-control-feedback small\">\n Username is available.\n </div> :\n null\n }\n {\n _.isEmpty(this.props.error.username) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.username}\n </div>\n }\n </div>\n <div className=\"col-md-4 hidden-sm-down form-text text-muted small\">\n Username must be at least 8 characters long\n </div>\n </div>\n );\n }\n}\n\nUsername.propTypes = {\n dispatch: PropTypes.func.isRequired,\n error: PropTypes.object,\n loading: PropTypes.bool.isRequired,\n register: PropTypes.bool,\n usernameValid: PropTypes.bool,\n hidePlaceholder: PropTypes.bool\n};\n\nclass OGPassword extends React.Component {\n ogPassBlur(e) {\n this.props.dispatch(clearSpecificValidation('ogpassword'));\n }\n\n render() {\n return (\n <div className={\"form-group row ogpass\" + (_.isUndefined(this.props.error.ogpassword) ? '' : ' has-danger')}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"ogpass\">\n Current Password\n </label>\n <div className=\"col-12 col-md-6 expand-field\">\n <div className=\"input-group\">\n <input\n id=\"ogpass\"\n type=\"password\"\n className=\"form-control form-control-sm\"\n //onBlur={this.ogPassBlur.bind(this)}\n placeholder={this.props.hidePlaceholder ? '' : 'Current Password'}\n ref={node => this.ogpass = node}\n aria-invalid={!_.isEmpty(this.props.error.ogpassword)}\n aria-required=\"true\"\n />\n </div>\n {\n _.isEmpty(this.props.error.ogpassword) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.ogpassword}\n </div>\n }\n </div>\n </div>\n );\n }\n}\n\nOGPassword.propTypes = {\n dispatch: PropTypes.func.isRequired,\n error: PropTypes.object.isRequired,\n loading: PropTypes.bool.isRequired,\n register: PropTypes.bool,\n usernameValid: PropTypes.bool,\n hidePlaceholder: PropTypes.bool\n};\n\nclass Password extends React.Component {\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.state = {\n upper: false,\n lower: false,\n num: false,\n special: false,\n length: false,\n acceptable: false,\n repState: 0\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n passwordChange(e) {\n if (this._isMounted) {\n let stateObj = Utils.acceptablePassword(e.currentTarget.value);\n stateObj.acceptable = false; //For consistency only onblur should set this\n this.setState(stateObj);\n }\n }\n\n passwordRepeatChange(e) {\n if (this._isMounted) {\n this.setState({repState: 0});\n }\n }\n\n passwordBlur(e) {\n this.props.dispatch(clearSpecificValidation('password'));\n let validationErrors = [];\n let stateObj = Utils.acceptablePassword(e.currentTarget.value);\n if (e.currentTarget.value.length > 20) {\n validationErrors.push({\n errorCode: 'PasswordLength',\n errorMessage: 'Password must be between 8 and 20 characters.'\n });\n }\n if (stateObj.invalid) {\n validationErrors.push({\n errorCode: 'PasswordInvalidChar',\n errorMessage: 'Password contains invalid characters.'\n });\n }\n\n if (!_.isEmpty(validationErrors)) {\n this.props.dispatch(validationError(validationErrors));\n } else if (this._isMounted) {\n this.setState(stateObj);\n }\n }\n\n comparePassword(e) {\n this.props.dispatch(clearSpecificValidation('password2'));\n let repPass = this.password2.value;\n let ogPass = this.password.value;\n let repStatus = 0;\n if (repPass === ogPass && repPass !== '') {\n repStatus = 2;\n } else if (repPass !== ogPass && repPass !== '') {\n repStatus = 1;\n }\n this.setState({repState: repStatus});\n }\n\n render() {\n const repGroup = {\n 0: '',\n 1: ' has-danger',\n 2: ' has-success'\n };\n const repInput = {\n 0: '',\n 1: ' form-control-danger',\n 2: ' form-control-success'\n };\n return (\n <div className=\"password pass-req \">\n <div className={\"form-group row pass-row\" + (this.state.acceptable &&\n _.isUndefined(this.props.error.password) ? ' has-success' : '') +\n (_.isUndefined(this.props.error.password) ? '' : ' has-danger')}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"password\">\n {\n this.props.register ?\n \"Password\" :\n \"New Password\"\n }\n </label>\n <div className=\"col-7 col-md-6 short-field pass-inp\">\n <input\n type=\"password\"\n id=\"password\"\n className={\"form-control form-control-sm\" + (this.state.acceptable ? ' form-control-success' : '')}\n onChange={this.passwordChange.bind(this)}\n onBlur={this.passwordBlur.bind(this)}\n placeholder={this.props.hidePlaceholder ? '' : 'Password'}\n ref={node => this.password = node}\n aria-invalid={!_.isEmpty(this.props.error.password)}\n aria-required=\"true\"\n />\n {\n _.isEmpty(this.props.error.password) ?\n null :\n <div className=\"form-control-feedback\">\n {this.props.error.password}\n </div>\n }\n </div>\n </div>\n\n <div className={\"form-group row rep-pass-row\" +\n (_.isUndefined(this.props.error.password2) ?\n repGroup[this.state.repState] :\n ' has-danger')}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"password2\">\n {\n this.props.register ?\n \"Repeat Password\" :\n \"Repeat New Password\"\n }\n </label>\n <div className=\"col-7 col-md-6 short-field pass-inp\">\n <input\n type=\"password\"\n id=\"password2\"\n className={\"form-control form-control-sm\" +\n (_.isUndefined(this.props.error.password2) ?\n repInput[this.state.repState] :\n '')}\n placeholder={this.props.hidePlaceholder ? '' : 'Repeat Password'}\n onChange={this.passwordRepeatChange.bind(this)}\n onBlur={this.comparePassword.bind(this)}\n ref={node => this.password2 = node}\n aria-invalid={!_.isEmpty(this.props.error.password2)}\n aria-required=\"true\"\n />\n {\n _.isEmpty(this.props.error.password2) ?\n null :\n <div className=\"form-control-feedback\">\n {this.props.error.password2}\n </div>\n }\n </div>\n <div className=\"col-5 col-md-4 form-text text-muted small move-up\">\n <strong>Password requirements</strong>\n <div className={\"pr\" + (this.state.upper ? ' correct' : '')}>\n <i className={\"fa uppercase \" + (this.state.upper ? 'fa-check-square-o' : 'fa-square-o')} aria-hidden=\"true\"></i>\n <span>Uppercase character</span>\n </div>\n <div className={\"pr\" + (this.state.lower ? ' correct' : '')}>\n <i className={\"fa lowercase \" + (this.state.lower ? 'fa-check-square-o' : 'fa-square-o')} aria-hidden=\"true\"></i>\n <span>Lowercase character</span>\n </div>\n <div className={\"pr\" + (this.state.num ? ' correct' : '')}>\n <i className={\"fa number \" + (this.state.num ? 'fa-check-square-o' : 'fa-square-o')} aria-hidden=\"true\"></i>\n <span>Number</span>\n </div>\n <div className={\"pr\" + (this.state.special ? ' correct' : '')}>\n <i className={\"fa special \" + (this.state.special ? 'fa-check-square-o' : 'fa-square-o')} aria-hidden=\"true\"></i>\n <span>Special character</span>\n </div>\n <div className={\"pr\" + (this.state.length ? ' correct' : '')}>\n <i className={\"fa length \" + (this.state.length ? 'fa-check-square-o' : 'fa-square-o')} aria-hidden=\"true\"></i>\n <span>8 characters long</span>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nPassword.propTypes = {\n dispatch: PropTypes.func.isRequired,\n error: PropTypes.object,\n register: PropTypes.bool,\n hidePlaceholder: PropTypes.bool\n};\n\nclass Names extends React.Component {\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.state = {\n firstValid: false,\n lastValid: false\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n nameBlur(e) {\n let valid = false;\n let state = {};\n\n this.props.dispatch(clearSpecificValidation(e.currentTarget.id));\n\n if (e.currentTarget.value.length > 0 && e.currentTarget.value.length < 33) {\n valid = true;\n }\n\n if (e.currentTarget.id === 'first') {\n state.firstValid = valid;\n } else {\n state.lastValid = valid;\n }\n\n if (this._isMounted) this.setState(state);\n }\n\n render() {\n return (\n <div className=\"names\">\n <div className={\"form-group row first\" +\n (this.state.firstValid && _.isUndefined(this.props.error.first) ? ' has-success' : '') +\n (_.isUndefined(this.props.error.first) ? '' : ' has-danger')}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"first\">\n First Name\n </label>\n <div className=\"col-12 col-md-6 expand-field\">\n <input\n id=\"first\"\n type=\"text\"\n className={\"form-control form-control-sm\" + (this.state.firstValid && _.isUndefined(this.props.error.first) ? ' form-control-success' : '')}\n onBlur={this.nameBlur.bind(this)}\n placeholder={this.props.hidePlaceholder ? '' : 'First Name'}\n aria-invalid={!_.isEmpty(this.props.error.first)}\n aria-required=\"true\"\n />\n {\n _.isEmpty(this.props.error.first) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.first}\n </div>\n }\n </div>\n </div>\n\n <div className={\"form-group row last\" +\n (this.state.lastValid && _.isUndefined(this.props.error.last) ? ' has-success' : '') +\n (_.isUndefined(this.props.error.last) ? '' : ' has-danger')}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"last\">\n Last Name\n </label>\n <div className=\"col-12 col-md-6 expand-field\">\n <input\n id=\"last\"\n type=\"text\"\n className={\"form-control form-control-sm\" + (this.state.lastValid && _.isUndefined(this.props.error.last) ? ' form-control-success' : '')}\n onBlur={this.nameBlur.bind(this)}\n placeholder={this.props.hidePlaceholder ? '' : 'Last Name'}\n aria-invalid={!_.isEmpty(this.props.error.last)}\n aria-required=\"true\"\n />\n {\n _.isEmpty(this.props.error.last) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.last}\n </div>\n }\n </div>\n </div>\n </div>\n\n );\n }\n}\n\nNames.propTypes = {\n dispatch: PropTypes.func.isRequired,\n error: PropTypes.object,\n register: PropTypes.bool,\n hidePlaceholder: PropTypes.bool\n};\n\nclass Email extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n repState: 0,\n checking: false,\n sameEmail: undefined\n };\n }\n\n componentDidMount() {\n this.props.dispatch(clearEmailValidation());\n }\n\n componentWillReceiveProps(nextProps) {\n if (!_.isUndefined(nextProps.emailValid) &&\n this.props.emailValid !== nextProps.emailValid) {\n this.setState({\n checking: false\n });\n }\n }\n\n emailBlur(e) {\n this.props.dispatch(clearSpecificValidation('email'));\n this.props.dispatch(clearEmailValidation());\n let email = e.currentTarget.value;\n let valid = Utils.validateEmail(email);\n let sameEmail;\n\n if (valid && email.length <= 128 && email !== this.props.currentEmail) {\n this.setState({\n checking: true\n });\n this.props.dispatch(checkEmailAvailability(email));\n } else if (!_.isEmpty(email) && email !== this.props.currentEmail) {\n let errors = [];\n if (!valid) {\n errors.push({\n errorCode: 'EmailInvalid',\n errorMessage: 'Email address is invalid.'\n });\n }\n\n if (email.length > 128) {\n errors.push({\n errorCode: 'EmailInvalid',\n errorMessage: 'Email must be 128 characters or less.'\n });\n }\n\n if (!_.isEmpty(errors)) {\n this.props.dispatch(validationError(errors));\n }\n } else if (email === this.props.currentEmail) {\n sameEmail = true;\n }\n\n this.setState({\n sameEmail: sameEmail\n });\n }\n\n repeatEmailBlur(e) {\n this.props.dispatch(clearSpecificValidation('email2'));\n let repEmail = this.email2.value;\n let ogEmail = this.email.value;\n let repStatus = 0;\n if (repEmail.toLowerCase() === ogEmail.toLowerCase() && repEmail !== '') {\n repStatus = 2;\n } else if (repEmail.toLowerCase() !== ogEmail.toLowerCase() && repEmail !== '') {\n repStatus = 1;\n let errors = [];\n errors.push({\n errorCode: 'EmailsMustMatch',\n errorMessage: 'Email address must match.'\n });\n this.props.dispatch(validationError(errors));\n }\n this.setState({\n repState: repStatus\n });\n }\n\n render() {\n const repGroup = {\n 0: '',\n 1: ' has-danger',\n 2: ' has-success'\n };\n const repInput = {\n 0: '',\n 1: ' form-control-danger',\n 2: ' form-control-success'\n };\n // Check Username class for similar pattern\n const showValidation = !_.isUndefined(this.props.emailValid) && !this.props.loading;\n let validationClass = '';\n let acceptableEmail = this.props.emailValid || this.state.sameEmail;\n if (showValidation || this.state.sameEmail) {\n validationClass = (acceptableEmail) ? 'has-success' : 'has-danger';\n }\n\n // Overwrite with validation errors\n if (!_.isEmpty(this.props.error.email)) {\n validationClass = 'has-danger';\n }\n return (\n <div className=\"email\">\n <div className={\"form-group row email-row \" + validationClass}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"email\">\n Email\n </label>\n <div className=\"col-12 col-md-6 expand-field\">\n <div className=\"input-group\">\n <input\n id=\"email\"\n type=\"email\"\n className={\"form-control form-control-sm\" + ((acceptableEmail && _.isEmpty(this.props.error.email)) ? ' form-control-success' : '')}\n placeholder={this.props.hidePlaceholder ? '' : 'Email'}\n onBlur={this.emailBlur.bind(this)}\n ref={node => this.email = node}\n aria-invalid={!_.isEmpty(this.props.error.email)}\n aria-required=\"true\"\n />\n\n </div>\n {\n this.props.loading && this.state.checking ?\n <div className=\"form-control-feedback small\">\n Checking our records...\n </div> :\n null\n }\n {\n this.props.emailValid === false ?\n <div className=\"form-control-feedback small error-text\">\n An account already exists for this email address.\n {\n this.props.register ?\n <Link to={{pathname: \"/forgot\", state: {fromRegistser: true}}}>Forgot your password?</Link> :\n null\n }\n </div> :\n null\n }\n {\n _.isEmpty(this.props.error.email) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.email}\n </div>\n }\n </div>\n </div>\n {\n this.props.register ?\n <div className={\"form-group row email2-row\" +\n (_.isUndefined(this.props.error.email2) ?\n repGroup[this.state.repState] :\n ' has-danger')}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"email2\">\n Repeat Email\n </label>\n <div className=\"col-12 col-md-6 expand-field\">\n <input\n id=\"email2\"\n type=\"email\"\n className={\"form-control form-control-sm\" +\n (_.isUndefined(this.props.error.email2) ?\n repInput[this.state.repState] :\n '')}\n placeholder={this.props.hidePlaceholder ? '' : 'Repeat Email'}\n onBlur={this.repeatEmailBlur.bind(this)}\n ref={node => this.email2 = node}\n aria-invalid={!_.isEmpty(this.props.error.email2)}\n aria-required=\"true\"\n />\n {\n _.isEmpty(this.props.error.email2) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.email2}\n </div>\n }\n </div>\n </div> :\n null\n }\n </div>\n );\n }\n}\n\nEmail.propTypes = {\n currentEmail: PropTypes.string,\n dispatch: PropTypes.func.isRequired,\n emailValid: PropTypes.bool,\n error: PropTypes.object,\n loading: PropTypes.bool.isRequired,\n register: PropTypes.bool,\n hidePlaceholder: PropTypes.bool\n};\n\nclass NotificationEmail extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n validEmail2: undefined,\n validEmail3: undefined\n };\n }\n\n hideModal(e) {\n $('.gen-modal').modal('hide');\n\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\n focalPointID: 'dummy-app-body',\n checkpoint: {id: 'nav-link-managecafeteriaaccounts'}\n }}));\n }\n\n render() {\n const notifEmail2HasError = this.state.invalidEmail2 || this.props.error.notifEmail2;\n const notifEmail3HasError = this.state.invalidEmail3 || this.props.error.notifEmail3;\n\n return (\n <div className=\"notif-email\">\n <div className={\"form-group row\" + (notifEmail2HasError ? ' has-success' : '') + (notifEmail2HasError ? ' has-danger' : '')}>\n <div className={\"col-12 col-md-6 expand-field \"}>\n <input\n type=\"email\"\n className={\"form-control form-control-sm\" + (notifEmail2HasError ? ' form-control-success' : '') + (notifEmail2HasError ? ' form-control-danger' : '')}\n id=\"notifEmail2\"\n placeholder=\"additional-notificationemail-one@address.com\"\n aria-invalid={!_.isEmpty(this.props.error.notifEmail2)}\n aria-required=\"false\"\n />\n {\n _.isEmpty(this.props.error.notifEmail2) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.notifEmail2}\n </div>\n }\n </div>\n </div>\n <div className={\"form-group row\" + (notifEmail3HasError ? ' has-success' : '') + (notifEmail3HasError ? ' has-danger' : '')}>\n <div className={\"col-12 col-md-6 expand-field \"}>\n <input\n type=\"email\"\n className={\"form-control form-control-sm\" + (notifEmail3HasError ? ' form-control-success' : '') + (notifEmail3HasError ? ' form-control-danger' : '')}\n id=\"notifEmail3\"\n placeholder=\"additional-notificationemail-two@address.com\"\n aria-invalid={!_.isEmpty(this.props.error.notifEmail3)}\n aria-required=\"false\"\n />\n {\n _.isEmpty(this.props.error.notifEmail3) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.notifEmail3}\n </div>\n }\n <small className=\"low-balance-text\">\n Alerts for low balances may be configured in <Link to=\"/accounts\" onClick={this.hideModal.bind(this)}>Manage Cafeteria Accounts</Link>\n </small>\n </div>\n </div>\n </div>\n );\n }\n}\n\nNotificationEmail.propTypes = {\n error: PropTypes.object,\n dispatch: PropTypes.func\n};\n\nclass PhoneNumber extends React.Component {\n numberInputMax(e, max) {\n Utils.numbersOnly(e);\n if (e.currentTarget.value.length > max) {\n e.currentTarget.value = e.currentTarget.value.slice(0, max);\n }\n }\n\n stripDash(e) {\n if (!((e.keyCode > 95 && e.keyCode < 106) ||\n (e.keyCode > 47 && e.keyCode < 58) ||\n e.keyCode === 8)) {\n e.currentTarget.value = '';\n return false;\n }\n return true;\n }\n\n phoneBlur(e) {\n this.props.dispatch(clearSpecificValidation('phone'));\n }\n\n render() {\n return (\n <div className={\"form-group row\" + (_.isUndefined(this.props.error.phone) ? '' : ' has-danger')}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"optional\">\n Phone Number\n <small className=\"optional\">\n (Optional)\n </small>\n </label>\n <div className=\"col-12 col-md-6 expand-field\">\n (<input\n id=\"phoneAreaCode\"\n type=\"tel\"\n min=\"0\"\n className=\"form-control form-control-sm\"\n onInput={evt => this.numberInputMax(evt, 3)}\n onBlur={this.phoneBlur.bind(this)}\n placeholder={this.props.hidePlaceholder ? '' : 'Area'}\n aria-invalid={!_.isEmpty(this.props.error.phone)}\n aria-required=\"false\"\n />)\n <input\n id=\"phoneNum\"\n type=\"tel\"\n className=\"form-control form-control-sm\"\n onInput={evt => this.numberInputMax(evt, 10)}\n onBlur={this.phoneBlur.bind(this)}\n placeholder={this.props.hidePlaceholder ? '' : 'Phone Num'}\n aria-invalid={!_.isEmpty(this.props.error.phone)}\n aria-required=\"false\"\n />\n <input\n id=\"phoneExt\"\n type=\"tel\"\n className=\"form-control form-control-sm\"\n onInput={evt => this.numberInputMax(evt, 5)}\n onBlur={this.phoneBlur.bind(this)}\n placeholder=\"Ext\"\n aria-invalid={!_.isEmpty(this.props.error.phone)}\n aria-required=\"false\"\n />\n {\n _.isEmpty(this.props.error.phone) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.phone}\n </div>\n }\n </div>\n </div>\n );\n }\n}\n\nPhoneNumber.propTypes = {\n dispatch: PropTypes.func.isRequired,\n error: PropTypes.object,\n register: PropTypes.bool,\n hidePlaceholder: PropTypes.bool\n};\n\nclass Security extends React.Component {\n constructor(props) {\n super(props);\n // delete securityQuestions.null;\n // delete securityQuestions[\"-1\"];\n\n this.state = {\n answerValid: false\n };\n }\n\n clearAsterisks() {\n if (this.securityA.dataset.starred) {\n this.securityA.value = '';\n delete this.securityA.dataset.starred;\n }\n }\n\n handleSecurityQ(e) {\n this.props.dispatch(clearSpecificValidation('securityQ'));\n this.clearAsterisks();\n }\n\n securityBlur(e) {\n let valid = false;\n this.props.dispatch(clearSpecificValidation('securityA'));\n if (e.currentTarget.value.length > 0 && e.currentTarget.value.length < 65) {\n valid = true;\n } else if (e.currentTarget.value.length === 0 && !this.props.register) {\n this.securityA.value = '******';\n this.securityA.dataset.starred = true;\n } else if (e.currentTarget.value.length > 64) {\n this.props.dispatch(validationError([{\n errorCode: 'SecurityAnswerLength',\n errorMessage: 'Security Answer must be 64 characters or less.'\n }]));\n }\n\n this.setState({\n answerValid: valid\n });\n }\n\n render() {\n return (\n <div className=\"security\">\n <div className={\"form-group row sq-row\" + (_.isUndefined(this.props.error.securityQ) ? '' : ' has-danger')}>\n <label className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')} htmlFor=\"securityQ\">\n Security Question\n </label>\n <div className=\"col-12 col-md-6 expand-field\">\n <div className=\"dropup sec-drop\">\n {\n <select\n id=\"securityQ\"\n className=\"btn btn-secondary dropdown-toggle\"\n onBlur={this.handleSecurityQ.bind(this)}\n defaultValue={_.isUndefined(this.props.userInfo) ? \"Please select a security question\" : securityQuestions[this.props.userInfo.securityQuestionID]}\n aria-invalid={!_.isEmpty(this.props.error.securityQ)}\n aria-required=\"true\"\n >\n {\n <option key={\"null\"} className=\"dropdown-item\" data-qid={\"null\"} hidden={true}>{securityQuestions.null}</option>\n }\n {\n _.map(securityQuestions, (question, id) => {\n if (id === \"null\" || id === \"-1\") return null;\n return <option key={id} className=\"dropdown-item\" data-qid={id}>{question}</option>;\n })\n }\n </select>\n }\n </div>\n {\n _.isEmpty(this.props.error.securityQ) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.securityQ}\n </div>\n }\n </div>\n </div>\n\n <div className={\"form-group row sa-row\" +\n (this.state.answerValid ? ' has-success' : '') +\n ((this.state.answerValid && _.isEmpty(this.props.error.securityA)) ? ' has-success' : '') +\n (_.isEmpty(this.props.error.securityA) ? '' : ' has-danger')}>\n <label\n htmlFor=\"securityA\"\n className={\"hidden-sm-down col-form-label col-form-label-sm\" + (this.props.register ? ' col-md-2' : ' ghost')}>\n Security Answer\n </label>\n <div className=\"col-12 col-md-6 expand-field\">\n <input\n type=\"text\"\n id=\"securityA\"\n className={\"form-control form-control-sm expand-field\" + ((this.state.answerValid && _.isEmpty(this.props.error.securityA)) ? ' form-control-success' : '')}\n placeholder={this.props.hidePlaceholder ? '' : 'Security Answer'}\n onFocus={this.clearAsterisks.bind(this)}\n onBlur={this.securityBlur.bind(this)}\n ref={node => this.securityA = node}\n aria-invalid={!_.isEmpty(this.props.error.securityA)}\n aria-required=\"true\"\n />\n {\n _.isEmpty(this.props.error.securityA) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.securityA}\n </div>\n }\n </div>\n </div>\n </div>\n );\n }\n}\n\nSecurity.propTypes = {\n dispatch: PropTypes.func.isRequired,\n error: PropTypes.object,\n register: PropTypes.bool,\n userInfo: PropTypes.object,\n hidePlaceholder: PropTypes.object\n};\n\nexport default connect(mapStateToProps)(UserInfo);\n\n\n// WEBPACK FOOTER //\n// app/common/components/UserInfo/UserInfo.jsx","export const GET_CHANGE_NOTES = \"GET_CHANGE_NOTES\";\r\nexport const GET_CHANGE_NOTES_SUCCESS = \"GET_CHANGE_NOTES_SUCCESS\";\r\nexport const GET_CHANGE_NOTES_FAILURE = \"GET_CHANGE_NOTES_FAILURE\";\r\n\r\nexport const GET_DATABASE_VERSION = \"GET_DATABASE_VERSION\";\r\nexport const GET_DATABASE_VERSION_SUCCESS = \"GET_DATABASE_VERSION_SUCCESS\";\r\nexport const GET_DATABASE_VERSION_FAILURE = \"GET_DATABASE_VERSION_FAILURE\";\n\n\n// WEBPACK FOOTER //\n// app/common/constants/AboutConstants.js","export const GENERAL_ERROR = \"GENERAL_ERROR\";\r\nexport const VALIDATION_ERROR = \"VALIDATION_ERROR\";\r\nexport const CLEAR_SPECIFIC_VAL = \"CLEAR_SPECIFIC_VALIDATION\";\r\nexport const REMOVE_GEN_ERROR = \"REMOVE_GENERAL_ERROR\";\r\nexport const REMOVE_VAL_ERROR = \"REMOVE_VALIDATION_ERRORS\";\r\nexport const CLEAR_ERRORS = \"CLEAR_ERRORS\";\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/constants/ErrorConstants.js","export const UPDATE_REMEMBER_ME = \"UPDATE_REMEMBER_ME\";\r\nexport const ADD_REMEMBER_ALERT = \"ADD_REMEMBER_ALERT\";\r\nexport const REMOVE_REMEMBER_ALERT = \"REMOVE_REMEMBER_ALERT\";\r\nexport const CLEAR_REMEMBER_ALERTS = \"CLEAR_REMEMBER_ALERTS\";\n\n\n// WEBPACK FOOTER //\n// app/common/constants/RememberConstants.js","export const GET_REPORTS = \"GET_REPORTS\";\r\nexport const GET_REPORTS_SUCCESS = \"GET_REPORTS_SUCCESS\";\r\nexport const GET_REPORTS_FAILURE = \"GET_REPORTS_FAILURE\";\r\n\r\nexport const FETCH_CAFE_REPORT = \"FETCH_CAFETERIA_REPORT\";\r\nexport const FETCH_CAFE_REPORT_SUCCESS = \"FETCH_CAFETERIA_REPORT_SUCCESS\";\r\nexport const FETCH_CAFE_REPORT_FAILURE = \"FETCH_CAFETERIA_REPORT_FAILURE\";\r\n\r\nexport const FETCH_TRANS_REPORT = \"FETCH_TRANSACTION_REPORT\";\r\nexport const FETCH_TRANS_REPORT_SUCCESS = \"FETCH_TRANSACTION_REPORT_SUCCESS\";\r\nexport const FETCH_TRANS_REPORT_FAILURE = \"FETCH_TRANSACTION_REPORT_FAILURE\";\r\n\r\nexport const GET_REPORT_PDF = \"GET_REPORT_PDF\";\r\nexport const GET_REPORT_PDF_SUCCESS = \"GET_REPORT_PDF_SUCCESS\";\r\nexport const GET_REPORT_PDF_FAILURE = \"GET_REPORT_PDF_FAILURE\";\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/constants/ReportConstants.js","export const GET_SUBS = \"GET_SUBS\";\r\nexport const GET_SUBS_SUCCESS = \"GET_SUBS_SUCCESS\";\r\nexport const GET_SUBS_FAILURE = \"GET_SUBS_FAILURE\";\r\n\r\nexport const NEW_SUB = \"NEW_SUB\";\r\nexport const LOAD_SUB = \"LOAD_SUB\";\r\n\r\nexport const LOAD_SUB_FORM = \"LOAD_SUB_FORM\";\r\nexport const UPDATE_SUB_FORM = \"UPDATE_SUB_FORM\";\r\nexport const DELETE_SUB_FORM = \"DELETE_SUB_FORM\";\r\nexport const SAVE_SUB_FORM = \"SAVE_SUB_FORM\";\r\nexport const SAVE_SUB_FORM_SUCCESS = \"SAVE_SUB_FORM_SUCCESS\";\r\nexport const SAVE_SUB_FORM_FAILURE = \"SAVE_SUB_FORM_FAILURE\";\r\n\r\nexport const ADD_SUB_DEPOSIT = \"ADD_SUB_DEPOSIT\";\r\nexport const DEL_SUB_DEPOSIT = \"DEL_SUB_DEPOSIT\";\r\nexport const CLEAR_SUB_DEPOSITS = \"CLEAR_SUB_DEPOSITS\";\r\n\r\nexport const UPDATE_SUB_PAYMENT = \"UPDATE_SUB_PAYMENT\";\r\n\r\nexport const UPDATE_NEXT_SUB_PAY_DATE = \"UPDATE_NEXT_SUB_PAY_DATE\";\r\n\r\nexport const CREATE_SUB = \"CREATE_SUB\";\r\nexport const CREATE_SUB_SUCCESS = \"CREATE_SUB_SUCCESS\";\r\nexport const CREATE_SUB_FAILURE = \"CREATE_SUB_FAILURE\";\r\n\r\nexport const UPDATE_SUB = \"UPDATE_SUB\";\r\nexport const UPDATE_SUB_SUCCESS = \"UPDATE_SUB_SUCCESS\";\r\nexport const UPDATE_SUB_FAILURE = \"UPDATE_SUB_FAILURE\";\r\n\r\nexport const DELETE_SUB = \"DELETE_SUB\";\r\nexport const DELETE_SUB_SUCCESS = \"DELETE_SUB_SUCCESS\";\r\nexport const DELETE_SUB_FAILURE = \"DELETE_SUB_FAILURE\";\r\n\r\nexport const CALC_SUB_FEE = \"CALCULATE_SUB_FEE\";\r\nexport const CALC_SUB_FEE_SUCCESS = \"CALCULATE_SUB_FEE_SUCCESS\";\r\nexport const CALC_SUB_FEE_FAILURE = \"CALCULATE_SUB_FEE_FAILURE\";\r\n\r\nexport const VALIDATE_SUB = \"VALIDATE_SUB\";\r\nexport const VALIDATE_SUB_SUCCESS = \"VALIDATE_SUB_SUCCESS\";\r\nexport const VALIDATE_SUB_FAILURE = \"VALIDATE_SUB_FAILURE\";\r\n\r\nexport const RUN_SUB = \"RUN_SUB\";\r\nexport const RUN_SUB_SUCCESS = \"RUN_SUB_SUCCESS\";\r\nexport const RUN_SUB_FAILURE = \"RUN_SUB_FAILURE\";\r\n\r\nexport const GET_RESUME_DATE = \"GET_RESUME_DATE\";\r\nexport const GET_RESUME_DATE_SUCCESS = \"GET_RESUME_DATE_SUCCESS\";\r\nexport const GET_RESUME_DATE_FAILURE = \"GET_RESUME_DATE_FAILURE\";\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/constants/SubConstants.js","export const GET_PAYMENT_METHODS = \"GET_PAYMENT_METHODS\";\r\nexport const GET_PAYMENT_METHODS_SUCCESS = \"GET_PAYMENT_METHODS_SUCCESS\";\r\nexport const GET_PAYMENT_METHODS_FAILURE = \"GET_PAYMENT_METHODS_FAILURE\";\r\n\r\nexport const ADD_CARD = \"ADD_CARD\";\r\nexport const ADD_CARD_SUCCESS = \"ADD_CARD_SUCCESS\";\r\nexport const ADD_CARD_FAILURE = \"ADD_CARD_FAILURE\";\r\n\r\nexport const DELETE_CARD = \"DELETE_CARD\";\r\nexport const DELETE_CARD_SUCCESS = \"DELETE_CARD_SUCCESS\";\r\nexport const DELETE_CARD_FAILURE = \"DELETE_CARD_FAILURE\";\r\n\r\nexport const UPDATE_CARD = \"UPDATE_CARD\";\r\nexport const UPDATE_CARD_SUCCESS = \"UPDATE_CARD_SUCCESS\";\r\nexport const UPDATE_CARD_FAILURE = \"UPDATE_CARD_FAILURE\";\r\n\r\nexport const ADD_ECHECK = \"ADD_ECHECK\";\r\nexport const ADD_ECHECK_SUCCESS = \"ADD_ECHECK_SUCCESS\";\r\nexport const ADD_ECHECK_FAILURE = \"ADD_ECHECK_FAILURE\";\r\n\r\nexport const AUTH_ECHECK = \"AUTH_ECHECK\";\r\nexport const AUTH_ECHECK_SUCCESS = \"AUTH_ECHECK_SUCCESS\";\r\nexport const AUTH_ECHECK_FAILURE = \"AUTH_ECHECK_FAILURE\";\r\n\r\nexport const NEW_DEFAULT = \"NEW_DEFAULT_PAYMENT\";\r\n\r\nexport const SEND_STRIPE_TOKEN = \"SEND_STRIPE_TOKEN\";\r\nexport const SEND_STRIPE_TOKEN_SUCCESS = \"SEND_STRIPE_TOKEN_SUCCESS\";\r\nexport const SEND_STRIPE_TOKEN_FAILURE = \"SEND_STRIPE_TOKEN_FAILURE\";\r\n\r\nexport const RESET_PAYMENT = \"RESET_PAYMENT\";\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/constants/TransConstants.js","import {validationError} from '../actions/ErrorAction.js';\r\n\r\n/**\r\n * Handles the validation for the registration & user update pages.\r\n * You could break the checks out into exported functions if you\r\n * wanted to add this validation onBlur.\r\n * @param {Object} usrObj Form data\r\n * @param {function} dispatch Dispatch function lets you send errors\r\n * directly from valiation function\r\n * @param {Boolean} update true if coming from user update,\r\n * false if coming from registration\r\n * @return {Boolean} Returns whether or not form data is valid\r\n */\r\nexport default function registrationValidation(usrObj, dispatch, update = false) {\r\n const whiteSpacePattern = /\\s/;\r\n let complete = true;\r\n let validationErrors = [];\r\n\r\n // Username\r\n if (!update && _.isEmpty(usrObj.username)) {\r\n // Missing username\r\n validationErrors.push({\r\n errorCode: 'UsernameRequired',\r\n errorMessage: 'Username is required.'\r\n });\r\n complete = false;\r\n } else if (!update && usrObj.username.length > 32) {\r\n // Username over 32 characters\r\n validationErrors.push({\r\n errorCode: 'UsernameLength',\r\n errorMessage: 'Username must be 32 characters or less.'\r\n });\r\n complete = false;\r\n } else if (!update && usrObj.username.length < 8) {\r\n // Username over 32 characters\r\n validationErrors.push({\r\n errorCode: 'UsernameLength',\r\n errorMessage: 'Username must be 8 characters or more.'\r\n });\r\n complete = false;\r\n } else if (!update && whiteSpacePattern.test(usrObj.username)) {\r\n validationErrors.push({\r\n errorCode: 'UsernameSpacesNotAllowed',\r\n errorMessage: 'Spaces are not allowed.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Original password (only available on update call)\r\n if (_.isEmpty(usrObj.oldPassword) &&\r\n !_.isEmpty(usrObj.newPassword) &&\r\n update) {\r\n validationErrors.push({\r\n errorCode: 'OriginalPasswordRequired',\r\n errorMessage: 'Current password is required.'\r\n });\r\n complete = false;\r\n } else if (update && _.isEmpty(usrObj.oldPassword) && !_.isNull(usrObj.securityA)) {\r\n validationErrors.push({\r\n errorCode: 'OriginalPasswordRequired',\r\n errorMessage: 'Current password is required.'\r\n });\r\n complete = false;\r\n } else if (update && usrObj.emailUpdated && _.isEmpty(usrObj.oldPassword)) {\r\n // Trying to update email\r\n validationErrors.push({\r\n errorCode: 'OriginalPasswordRequired',\r\n errorMessage: 'Current password is required.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Password\r\n if (_.isEmpty(usrObj.newPassword) && !update) {\r\n // Missing password\r\n validationErrors.push({\r\n errorCode: 'PasswordRequired',\r\n errorMessage: 'Password is required.'\r\n });\r\n complete = false;\r\n } else if ((usrObj.newPassword.length > 0 && usrObj.newPassword.length < 8) ||\r\n usrObj.newPassword.length > 20) {\r\n // Password length < 8 or > 20\r\n validationErrors.push({\r\n errorCode: 'PasswordLength',\r\n errorMessage: 'Password must be between 8 and 20 characters.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Invalid character or unacceptable password\r\n if (Utils.acceptablePassword(usrObj.newPassword).invalid &&\r\n !_.isEmpty(usrObj.newPassword)) {\r\n validationErrors.push({\r\n errorCode: 'PasswordInvalidChar',\r\n errorMessage: 'Password contains invalid characters.'\r\n });\r\n complete = false;\r\n } else if (!Utils.acceptablePassword(usrObj.newPassword).acceptable &&\r\n !_.isEmpty(usrObj.newPassword)) {\r\n validationErrors.push({\r\n errorCode: 'PasswordRules',\r\n errorMessage: 'Password must have at least one upper case letter, one lower case letter, one digit, and one special character.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Repeat password\r\n if ((_.isEmpty(usrObj.repeatNewPassword) && !update) ||\r\n (_.isEmpty(usrObj.repeatNewPassword) && !_.isEmpty(usrObj.newPassword))) {\r\n // Missing repeat password\r\n validationErrors.push({\r\n errorCode: 'RepeatPasswordRequired',\r\n errorMessage: 'Repeat Password is required.'\r\n });\r\n complete = false;\r\n } else if (usrObj.newPassword.localeCompare(usrObj.repeatNewPassword) !== 0) {\r\n // Repeat password does not match password\r\n validationErrors.push({\r\n errorCode: 'PasswordsMustMatch',\r\n errorMessage: 'Passwords must match.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // First name\r\n if (_.isEmpty(usrObj.firstName)) {\r\n // Empty first name\r\n validationErrors.push({\r\n errorCode: 'FirstNameRequired',\r\n errorMessage: 'First name is required.'\r\n });\r\n complete = false;\r\n } else if (usrObj.firstName.length > 32) {\r\n // First name length > 32\r\n validationErrors.push({\r\n errorCode: 'FirstNameLength',\r\n errorMessage: 'First Name must be 32 characters or less.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Last name\r\n if (_.isEmpty(usrObj.lastName)) {\r\n // Empty last name\r\n validationErrors.push({\r\n errorCode: 'LastNameRequired',\r\n errorMessage: 'Last name is required.'\r\n });\r\n complete = false;\r\n } else if (usrObj.lastName.length > 32) {\r\n // Last name length > 32\r\n validationErrors.push({\r\n errorCode: 'LastNameLength',\r\n errorMessage: 'Last Name must be 32 characters or less.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Email\r\n const emailErrors = Utils.emailValidityCheck(usrObj.email, \"EmailInvalid\");\r\n if (_.isEmpty(usrObj.email)) {\r\n // Missing email\r\n validationErrors.push({\r\n errorCode: 'EmailRequired',\r\n errorMessage: 'Email is required.'\r\n });\r\n\r\n complete = false;\r\n } else if (!_.isEmpty(emailErrors)) {\r\n emailErrors.forEach(function(error) {\r\n validationErrors.push({\r\n errorCode: error.errorCode,\r\n errorMessage: error.errorMessage\r\n });\r\n });\r\n\r\n complete = false;\r\n }\r\n\r\n // Email Notifications\r\n if (usrObj.email2) {\r\n const emailsEqual = !usrObj.email2.localeCompare(usrObj.email3, undefined, {sensitivity: \"base\"});\r\n const email2Errors = Utils.emailValidityCheck(usrObj.email2, \"NotifEmail2Invalid\");\r\n\r\n if (!_.isEmpty(email2Errors)) {\r\n email2Errors.forEach(function(error) {\r\n validationErrors.push({\r\n errorCode: error.errorCode,\r\n errorMessage: error.errorMessage\r\n });\r\n });\r\n complete = false;\r\n }\r\n\r\n if (!usrObj.email.localeCompare(usrObj.email2, undefined, {sensitivity: \"base\"}) ||\r\n emailsEqual) {\r\n validationErrors.push({\r\n errorCode: 'NotifEmail2Invalid',\r\n errorMessage: 'Notification email must be different.'\r\n });\r\n complete = false;\r\n }\r\n }\r\n\r\n if (usrObj.email3) {\r\n const emailsEqual = !usrObj.email2.localeCompare(usrObj.email3, undefined, {sensitivity: \"base\"});\r\n const email3Errors = Utils.emailValidityCheck(usrObj.email3, \"NotifEmail3Invalid\");\r\n\r\n if (!_.isEmpty(email3Errors)) {\r\n email3Errors.forEach(function(error) {\r\n validationErrors.push({\r\n errorCode: error.errorCode,\r\n errorMessage: error.errorMessage\r\n });\r\n });\r\n complete = false;\r\n }\r\n\r\n if (!usrObj.email.localeCompare(usrObj.email3, undefined, {sensitivity: \"base\"}) ||\r\n emailsEqual) {\r\n validationErrors.push({\r\n errorCode: 'NotifEmail3Invalid',\r\n errorMessage: 'Notification email must be different.'\r\n });\r\n complete = false;\r\n }\r\n }\r\n\r\n // Repeat email\r\n if (_.isEmpty(usrObj.repeatEmail) && !update) {\r\n // Empty repeat email\r\n validationErrors.push({\r\n errorCode: 'RepeatEmailRequired',\r\n errorMessage: 'Repeat Email is required.'\r\n });\r\n complete = false;\r\n } else if (usrObj.email.localeCompare(usrObj.repeatEmail, undefined, {sensitivity: \"base\"}) !== 0 && !update) {\r\n // Repeat email doesn't match email\r\n validationErrors.push({\r\n errorCode: 'EmailsMustMatch',\r\n errorMessage: 'Email address must match.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Phone number\r\n const phoneNumFilled = _.isNumber(usrObj.phoneNum);\r\n const areaCodeFilled = _.isNumber(usrObj.phoneAreaCode);\r\n const extFilled = _.isNumber(usrObj.phoneExt);\r\n\r\n if (!areaCodeFilled && phoneNumFilled) {\r\n // Has phone number, but missing area code\r\n validationErrors.push({\r\n errorCode: 'PhoneAreaCodeRequired',\r\n errorMessage: 'Phone Area Code is required if Phone Number is entered.'\r\n });\r\n complete = false;\r\n }\r\n if (areaCodeFilled && !phoneNumFilled) {\r\n // Has area code, missing phone number\r\n validationErrors.push({\r\n errorCode: 'PhoneNumRequired',\r\n errorMessage: 'Phone Number is required if Phone Area Code is entered.'\r\n });\r\n complete = false;\r\n }\r\n if (extFilled && !phoneNumFilled) {\r\n // Has area code, missing phone number\r\n validationErrors.push({\r\n errorCode: 'PhoneNumRequired',\r\n errorMessage: 'Phone Number is required if Phone Extension is entered.'\r\n });\r\n complete = false;\r\n }\r\n if (extFilled && !areaCodeFilled) {\r\n validationErrors.push({\r\n errorCode: 'PhoneAreaCodeRequired',\r\n errorMessage: 'Phone Area Code is required if Phone Extension is entered.'\r\n });\r\n complete = false;\r\n }\r\n if (areaCodeFilled && (usrObj.phoneAreaCode < 201 || usrObj.phoneAreaCode > 999)) {\r\n // Invalid phone area code\r\n validationErrors.push({\r\n errorCode: 'PhoneAreaCodeInvalidRange',\r\n errorMessage: 'Phone area code must be between 201 and 999.'\r\n });\r\n complete = false;\r\n }\r\n let phoneNumLength = 0;\r\n if (!_.isNull(usrObj.phoneNum)) {\r\n phoneNumLength = usrObj.phoneNum.toString().length;\r\n }\r\n if (phoneNumLength > 0 && phoneNumLength < 7) {\r\n validationErrors.push({\r\n errorCode: 'PhoneNumLength',\r\n errorMessage: 'Phone number must be at least 7 digits.'\r\n });\r\n complete = false;\r\n }\r\n if (phoneNumLength > 7) {\r\n validationErrors.push({\r\n errorCode: 'PhoneNumLength',\r\n errorMessage: 'Phone number cannot be more than 7 digits.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Security question\r\n if ((usrObj.securityQuestionID === null && !update) ||\r\n (_.isNaN(usrObj.securityQuestionID) && !update) ||\r\n (update && usrObj.securityQuestionID === -1)) {\r\n // Didn't choose a security question\r\n // Or security question was never set and needs to be defined\r\n validationErrors.push({\r\n errorCode: 'SecurityQuestionIDRequired',\r\n errorMessage: 'Security Question is required.'\r\n });\r\n complete = false;\r\n }\r\n\r\n // Security answer\r\n // SecurityQ being -1 means it has yet to be selected\r\n // SecurityA being null means it hasn't been selected\r\n const emptyAnswer = _.isEmpty(usrObj.securityA);\r\n const answerRequired = !_.isNull(usrObj.securityA);\r\n const noSecurityQ = (usrObj.securityQuestionID === -1);\r\n if ((answerRequired && emptyAnswer) || (noSecurityQ && (!answerRequired || emptyAnswer))) {\r\n // Empty security answer\r\n validationErrors.push({\r\n errorCode: 'SecurityAnswerRequired',\r\n errorMessage: 'Security Answer is required.'\r\n });\r\n complete = false;\r\n } else if (!_.isNull(usrObj.securityA) && usrObj.securityA.length > 64) {\r\n // Security answer too long\r\n // I mean, WAYYYYY too long\r\n validationErrors.push({\r\n errorCode: 'SecurityAnswerLength',\r\n errorMessage: 'Security Answer must be 64 characters or less.'\r\n });\r\n complete = false;\r\n }\r\n\r\n if (!complete) {\r\n dispatch(validationError(validationErrors));\r\n }\r\n\r\n // False will keep the page from reloading\r\n return complete;\r\n}\n\n\n// WEBPACK FOOTER //\n// app/common/js/RegistrationValidation.js","import _ from 'underscore';\nimport {getSubscriptionFee, updateSubscriptionForm} from '../../common/actions/SubAction.js';\n\nlet subDefaults = {\n details: [],\n interval: 2,\n intervalValue: 1,\n dayOfWeek: 'Sunday',\n fee: 0,\n minDepositAmount: 0,\n errors: []\n};\n\n/**\n * Subscription obj for scheduling new deposit.\n * Originally Sub.js but needs to be separated and normalized\n */\nclass SubForm {\n constructor(subInfo = subDefaults) {\n this._dayOfWeekID = {\n Sunday: 0,\n Monday: 1,\n Tuesday: 2,\n Wednesday: 3,\n Thursday: 4,\n Friday: 5,\n Saturday: 6,\n undefined: null\n };\n\n this._weekNumObj = {\n First: 0,\n Second: 1,\n Third: 2,\n Fourth: 3,\n Last: -1\n };\n\n this._scheduleTypeID = {\n \"weekly\": 2,\n \"week-monthly\": 3,\n \"day-monthly\": 4\n };\n\n this._intervalID = {\n weeklyByInterval: {\n 1: 1,\n 2: 2,\n 3: 3\n },\n monthlyByDay: {\n First: 4,\n Second: 5,\n Third: 6,\n Fourth: 7,\n Last: 8\n },\n monthlyByDate: {\n 1: 9,\n 2: 10,\n 3: 11,\n 4: 12,\n 5: 13,\n 6: 14,\n 7: 15,\n 8: 16,\n 9: 17,\n 10: 18,\n 11: 19,\n 12: 20,\n 13: 21,\n 14: 22,\n 15: 23,\n 16: 24,\n 17: 25,\n 18: 26,\n 19: 27,\n 20: 28,\n 21: 29,\n 22: 30,\n 23: 31,\n 24: 32,\n 25: 33,\n 26: 34,\n 27: 35,\n 28: 36,\n 29: 37,\n 30: 38,\n 31: 39\n }\n };\n this.SUB_MINIMUM = 20;\n this.id = subInfo.id;\n this.deposits = subInfo.deposits;\n this.payment = subInfo.payment;\n this.interval = subInfo.interval;\n this.intervalValue = subInfo.intervalValue;\n this.dayOfWeek = subInfo.dayOfWeek;\n this.fee = subInfo.fee;\n this.minDepositAmount = subInfo.minDepositAmount;\n if(this.minDepositAmount == null ){\n this.minDepositAmount = 0;\n }\n this.errors = subInfo.errors;\n this.pauseEndDate = subInfo.pauseEndDate;\n this.paused = subInfo.paused;\n }\n\n /**\n * Gets all the certain days (Sunday, Monday, etc) in a month\n * @param {Boolean} next Whether or not to get the days for the next month\n *\n * @return {Array} Array of all days of day of week in a month\n */\n _getMonthDays(next = false) {\n let d = new Date();\n // Go from the first day of the month\n d.setDate(1);\n let month = d.getMonth();\n let occuring = [];\n\n if (next) {\n if (month === 11) {\n // Go to next year\n month = 0;\n d.setFullYear(d.getFullYear() + 1);\n } else {\n month += 1;\n }\n d.setMonth(month);\n }\n\n // Find the first instance of that day\n while (d.getDay() !== Number(this.dayOfWeek)) {\n d.setDate(d.getDate() + 1);\n }\n\n while (d.getMonth() === month) {\n occuring.push(new Date(d.getTime()));\n d.setDate(d.getDate() + 7);\n }\n\n return occuring;\n }\n\n /**\n * Gets the next Sunday, Monday, etc\n */\n _nextScheduledDay() {\n let date = new Date();\n let resultDate = new Date(date.getTime());\n\n resultDate.setDate(date.getDate() + (7 + this.dayOfWeek - date.getDay()) % 7);\n\n return resultDate;\n }\n\n /**\n * Gets the next nth (read: 15th, 26th, etc) day of the month\n */\n _nthOfMonth() {\n const d = new Date();\n let daysInMonth = this._daysInMonth(d);\n\n // If that day has already passed, or it's the final day of the month, get it for next month\n if (d.getDate() >= this.intervalValue || d.getDate() === daysInMonth) {\n d.setMonth(d.getMonth() + 1);\n daysInMonth = this._daysInMonth(d);\n }\n\n if (this.intervalValue > daysInMonth) {\n // If the user has selected the 31st, but there are only 28/30 days in the month\n d.setDate(daysInMonth);\n } else {\n d.setDate(this.intervalValue);\n }\n\n return d;\n }\n\n /**\n * Gets the next nth (read: 15th, 26th, etc) day of the month\n */\n _nthOfMonthNew() {\n let today = new Date();\n let daysInMonth = this._daysInMonth(today);\n let targetString = today.getFullYear() + '/' + (today.getMonth() + 1) + '/' + ((daysInMonth <= this.intervalValue) ? daysInMonth : this.intervalValue);\n let placeHolderDate = new Date(targetString);\n\n if(today >= placeHolderDate) {\n //set to the first day of the month first to avoid unexpected asjustment by js\n placeHolderDate.setDate(1);\n placeHolderDate.setMonth(placeHolderDate.getMonth() + 1)\n let daysInNextMonth = this._daysInMonth(placeHolderDate);\n placeHolderDate.setDate((daysInNextMonth <= this.intervalValue) ? daysInNextMonth : this.intervalValue);\n }\n\n return placeHolderDate;\n }\n\n\n /**\n * Gets the total days in the month set by the Date d\n * @param {Date} d Date class to get the days of month for\n */\n _daysInMonth(d) {\n const check = new Date(d.getFullYear(), d.getMonth() + 1, 0);\n\n return check.getDate();\n }\n\n _convertDepositDetails(details) {\n return _.map(details, deposit => {\n if (_.isUndefined(deposit.patronID)) {\n deposit.patronID = deposit.patron.patronID;\n deposit.id = deposit.patron.patronID;\n }\n return {\n ...deposit,\n checkingAccountID: deposit.patron.checkingAccountID,\n subAccountID: null, // Gotta have this bit for the API ¯\\_(ツ)_/¯\n priceEach: null,\n quantity: null\n };\n });\n }\n\n _formatSubDetails(item) {\n return {\n patronID: item.patronID,\n checkingAccountID: item.checkingAccountID,\n patron: {\n patronID: item.patronID,\n checkingAccountID: item.checkingAccountID\n },\n depositAmount: item.depositAmount,\n subAccountID: item.subAccountID,\n priceEach: item.priceEach,\n quantity: item.quantity\n };\n }\n\n /**\n * Adds deposit object to scheduled deposit\n * @param {Object} dep Deposit information\n * @param {Function} dispatch Dispatch function\n */\n addDeposit(dep, dispatch) {\n if ((Utils.isNumber(dep.depositAmount) || dep.depositAmount === '') && dep.id !== undefined) {\n let exists = _.findIndex(this.deposits, d => {\n return d.id === dep.id;\n });\n\n if (exists === -1) { // New deposit\n if (Number(dep.depositAmount) === 0 || dep.depositAmount === '') return;\n this.deposits.push(dep);\n } else if (Number(dep.depositAmount) === 0 || dep.depositAmount === '') { // Remove deposit\n this.deposits.splice(exists, 1);\n } else { // Update deposit\n // instead of overriding the entire object only update the amount\n this.deposits[exists].depositAmount = dep.depositAmount;\n }\n\n dispatch(updateSubscriptionForm(this));\n // if (this.getDepositsTotal() > this.SUB_MINIMUM) dispatch(getSubscriptionFee(this.deposits));\n }\n }\n\n /**\n * Generates english sentence for use in sub card and subscription information\n * @param {Boolean} header Whether or not to truncacte the sentence for a header\n *\n * @return {String} Generated english sentence\n */\n generateSentence(header = false) {\n let generated = 'every ';\n let ending = ' of the month';\n\n let dayOfWeekPredicate = id => {\n return id === this.dayOfWeek;\n };\n\n if (this.interval === 2) {\n const numMap = {\n 1: \"\",\n 2: \"other \",\n 3: \"third \"\n };\n\n generated = generated + numMap[this.intervalValue] + _.findKey(this._dayOfWeekID, dayOfWeekPredicate);\n ending = '';\n } else if (this.interval === 3) {\n generated = generated + this.intervalValue.toLowerCase() + ' ' + _.findKey(this._dayOfWeekID, dayOfWeekPredicate);\n } else if (this.interval === 4) {\n generated = generated + Utils.daySuffix(this.intervalValue) + ' day';\n if (this.intervalValue >= 30 && !header) ending += ' (or closest available date)';\n } else {\n generated = '';\n ending = '';\n }\n\n return generated + ending;\n }\n\n // All of these getter functions could be replaced with ES6 getter functions for easy \"cool\" points\n\n /**\n * Formats the scheduled deposit for use with the API\n */\n getApiBody() {\n return {\n stripePaymentSourceID: this.payment.stripeCardID,\n scheduleTypeID: this.interval,\n intervalID: this.getIntervalID(),\n dayOfWeek: this.dayOfWeek,\n scheduledDepositDetails: _.map(this.deposits, Utils.formatCartItem)\n };\n }\n\n /**\n * Gets the english day of the week (instead of the id value)\n */\n getDayOfWeek() {\n return _.findKey(this._dayOfWeekID, id => {\n return id === this.dayOfWeek;\n });\n }\n\n /**\n * Returns all current deposits\n */\n getDeposits() {\n return this.deposits;\n }\n\n /**\n * Returns the scheduled deposit total (minus the fee)\n */\n getDepositsTotal() {\n return _.reduce(this.deposits, (memo, deposit) => {\n return memo + deposit.depositAmount;\n }, 0);\n }\n\n /**\n * Returns the current fee\n */\n getFee() {\n return this.fee;\n }\n\n getMinDepositAmount() {\n return this.minDepositAmount;\n }\n\n /**\n * Returns the interval ID based on the interval and interval value\n */\n getIntervalID() {\n if (this.interval === 2) {\n return this._intervalID.weeklyByInterval[this.intervalValue];\n } else if (this.interval === 3) {\n return this._intervalID.monthlyByDay[this.intervalValue];\n } else if (this.interval === 4) {\n return this._intervalID.monthlyByDate[this.intervalValue];\n }\n\n return null;\n }\n\n /**\n * Returns the last 4 of the selected payment method\n */\n getLast4() {\n return this.payment.last4;\n }\n\n /**\n * Returns a string of the next charge of the current scheduled deposit\n */\n getNextCharge() {\n let date;\n\n if (this.interval === 2) {\n date = this._nextScheduledDay();\n } else if (this.interval === 3) {\n let days = this._getMonthDays();\n const weekNum = this._weekNumObj[this.intervalValue];\n\n date = days[weekNum];\n\n if(date.getDate() < new Date().getDate()) {\n let newDays = this._getMonthDays(true);\n date = newDays[weekNum];\n }\n\n } else if (this.interval === 4) {\n date = this._nthOfMonthNew();\n }\n\n return Utils.dateFormat(date);\n }\n\n getPayment() {\n return this.payment;\n }\n\n getSubDetails() {\n return {\n scheduledDepositID: this.id,\n stripePaymentSourceID: this.payment,\n scheduledTaskIntervalID: this.getIntervalID(),\n scheduleTypeID: this.interval,\n intervalID: this.getIntervalID(),\n dayOfWeek: this.dayOfWeek,\n details: _.map(this.deposits, this._formatSubDetails),\n nextScheduledDate: this.getNextCharge(),\n totalUserFeeAmount: this.fee,\n payment: this.payment\n };\n }\n\n getSubId() {\n return this.id;\n }\n\n /**\n * Returns the scheduled deposit total\n */\n getTotal() {\n return this.getDepositsTotal() + this.fee;\n }\n\n /**\n * Returns the scheduled deposit total excluding fee\n */\n getSubTotal() {\n return this.getDepositsTotal();\n }\n\n\n /**\n * Returns the english value for the week number based on the interval value (first, seconc, etc)\n */\n getWeekNum() {\n return _.findKey(this._weekNumObj, (key, value) => {\n return value === this.intervalValue;\n });\n }\n\n identicalTo(subInfo) {\n function matchingDeposits(currentDep, checkAgainst) {\n //TODO needs to have a more robust solution\n //if(currentDep.length !== checkAgainst.length) return false;\n return _.every(checkAgainst, dep => {\n // Loop through all deposits in the current sub\n return _.some(currentDep, checkDep => {\n // Loop through all the deposits on the sub being compared\n return (checkDep.patronID === dep.patronID) &&\n (checkDep.depositAmount === dep.depositAmount);\n });\n });\n }\n const mismatchingInterval = this.interval !== subInfo.scheduleTypeID;\n const mismatchedIntervalValue = String(this.intervalValue) !== this.parseIntervalID(subInfo.scheduleTypeID, subInfo.scheduledTaskIntervalID);\n const differentDayOfWeek = this.dayOfWeek !== subInfo.dayOfWeek;\n const differentPaymentCard = this.payment.stripeCardID !== subInfo.stripePaymentSourceID;\n if (mismatchingInterval) {\n return false;\n } else if (mismatchedIntervalValue) {\n return false;\n } else if (differentDayOfWeek) {\n return false;\n } else if (!matchingDeposits(this.deposits, subInfo.details)) {\n return false;\n } else if (differentPaymentCard) {\n return false;\n }\n\n return true;\n }\n\n\n /**\n * Simple algorith that checks for duplicate deposit\n * Probably not the most efficient solution but not the slowest either and simple\n * @param {Object} scheduledDeposits Saved scheduled deposits\n */\n isDuplicate(scheduledDeposits) {\n for(let sd of scheduledDeposits) {\n if(sd.scheduledDepositID !== this.id) { //exclude comparison from itself\n let sdScheduledTaskIntervalID = this.parseIntervalID(sd.scheduleTypeID, sd.scheduledTaskIntervalID)\n if((sd.scheduleTypeID === this.interval) &&\n (sdScheduledTaskIntervalID === String(this.intervalValue)) &&\n (sd.dayOfWeek === this.dayOfWeek) &&\n (sd.stripePaymentSourceID === this.payment.stripeCardID)) {\n for(let deposit of this.deposits) {\n let dup = _.findIndex(sd.details, {depositAmount: deposit.depositAmount, patronID: deposit.patronID});\n if(dup !== -1) return true;\n }\n }\n }\n }\n }\n\n\n /**\n * Turns the interval ID into an interval value\n * @param {Number} intervalID Interval ID sent from the API\n */\n parseIntervalID(interval, intervalID) {\n const predicate = (key, value) => {\n return key === intervalID;\n };\n if (interval === 2) {\n return _.findKey(this._intervalID.weeklyByInterval, predicate);\n } else if (interval === 3) {\n return _.findKey(this._intervalID.monthlyByDay, predicate);\n } else if (interval === 4) {\n return _.findKey(this._intervalID.monthlyByDate, predicate);\n }\n\n return null;\n }\n\n /**\n * Sets the day of week ID\n * @param {String} day Selected day of the week (Sunday, Monday, etc)\n */\n setDayOfWeek(day) {\n this.dayOfWeek = this._dayOfWeekID[day];\n }\n\n /**\n * Sets the fee. EXCITING!\n * @param {Number} fee The fee we charge\n */\n setFee(fee) {\n this.fee = fee;\n }\n\n setMinDepositAmount(minDepositAmount) {\n this.minDepositAmount = minDepositAmount;\n }\n\n /**\n * Sets the payment if a new payment is detected\n * @param {Object} payment Payment object\n * @param {Function} dispatch Dispatch function\n */\n setPayment(payment, dispatch) {\n if(this.payment !== payment) {\n this.payment = payment;\n dispatch(updateSubscriptionForm(this));\n }\n }\n\n /**\n * Sets the interval from the interval string sent by the front end.\n * A bit of a relic from the original design. It was easier to convert\n * than to rewrite the front-end.\n * @param {String} interval Interval string from the front-end\n */\n setInterval(interval) {\n this.interval = this._scheduleTypeID[interval];\n\n // If the interval doesn't require a day of week, clear dayOfWeek\n if (interval === 'day-monthly') this.setDayOfWeek(undefined);\n }\n\n /**\n * Sets the interval value\n * @param {Number} intervalValue Interval value used by interval\n */\n setIntervalValue(intervalValue) {\n this.intervalValue = intervalValue;\n }\n}\n\nexport default SubForm;\n\n\n\n// WEBPACK FOOTER //\n// app/common/js/SubForm.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\n\nimport PaymentMethods from '../../../common/components/ExistingPayment/ExistingPayment.jsx';\nimport SubscriptionAccounts from './SubscriptionAccounts.jsx';\nimport SubscriptionScheduler from './SubscriptionScheduler.jsx';\nimport Loader from '../../../common/components/Loader/Loader';\nimport {validationError, clearValidationErrors} from '../../../common/actions/ErrorAction.js';\n\nimport {\n deleteSubscriptionForm,\n deleteSubscription,\n saveSubscriptionForm\n} from '../../../common/actions/SubAction.js';\n\nimport SubForm from '../../../common/js/SubForm.js';\n\nimport './Subscriptions.scss';\nimport './Subscriptions_alpha.scss';\n\nconst mapStateToProps = store => {\n return {\n loading: store.sub.loading,\n patrons: store.patrons.patrons,\n subscriptions: store.sub.subscriptions,\n paymentMethods: store.trans.methods,\n validationErrors: store.error.validationErrors,\n sub: store.sub.subscriptionForm\n };\n};\n\nclass SubscriptionForm extends React.Component {\n static propTypes = {\n sub: PropTypes.object,\n patrons: PropTypes.array.isRequired,\n subscriptions: PropTypes.array.isRequired,\n paymentMethods: PropTypes.array,\n loading: PropTypes.bool.isRequired,\n validationErrors: PropTypes.array.isRequired,\n dispatch: PropTypes.func\n };\n\n constructor() {\n super();\n\n this.state = {\n action: undefined,\n acctError: undefined,\n payError: undefined,\n subError: undefined\n };\n\n this.SUB_MINIMUM = 20;\n }\n\n componentWillReceiveProps(nextProps) {\n //this.validateSubForm(false);\n }\n\n componentWillUnmount() {\n this.props.dispatch(clearValidationErrors());\n if(!Utils.isMobile()) {\n this.props.dispatch(deleteSubscriptionForm());\n }\n }\n\n componentDidUpdate() {\n if(Utils.isMobile()) {\n let error = $('.sub-error-text').first();\n if (error.length) {\n $('.modal-body').animate({\n scrollTop: ($('.modal-body').scrollTop() + error.prev().prev().offset().top)\n }, 250);\n }\n }\n }\n\n componentDidMount() {\n if(Utils.isMobile()) {\n this.validateSubForm(false);\n }\n }\n\n cancelEditor(e) {\n this.props.dispatch(clearValidationErrors());\n this.props.dispatch(deleteSubscriptionForm());\n\n let isModalShown = $('.gen-modal').hasClass('show');\n\n if(Utils.isMobile() || isModalShown) {\n $('.gen-modal').modal('hide');\n this.validateSubForm(false);\n } else {\n document.dispatchEvent(new CustomEvent('rove-on-modals', {detail: {\n modalShown: false,\n checkpoint: document.activeElement\n }}));\n }\n }\n\n getMinimumDeposit() {\n let depositValues = _.pluck(this.loadedSub.getDeposits(), 'depositAmount');\n return _.min(depositValues);\n }\n\n getMaximumDeposit() {\n let depositValues = _.pluck(this.loadedSub.getDeposits(), 'depositAmount');\n return _.max(depositValues);\n }\n\n validateSubForm(saving) {\n this.props.dispatch(clearValidationErrors());\n\n let state = {\n acctError: undefined,\n payError: undefined,\n subError: undefined\n };\n\n let errors = [];\n\n if(!saving) {\n this.setState(state);\n return true;\n }\n\n let minumumError = '';\n\n //check if subscription total amount meets minimum requirements\n if((this.getMinimumDeposit() < 1) || (this.getMaximumDeposit() > 50000)) {\n minumumError = 'All deposit values must be between $1 and $50,000.';\n errors.push({\n errorCode: 'SubscriptionDepositAmountInvalidRange',\n errorMessage: minumumError\n });\n \n state.acctError = minumumError;\n } \n else {\n state.acctError = undefined;\n }\n\n //check payment method\n let hasPaymentMethod;\n let paymentMethod = this.loadedSub.getPayment();\n if(paymentMethod) hasPaymentMethod = Utils.getPaymentByStripeID(this.props.paymentMethods, paymentMethod.stripeCardID);\n if(_.isUndefined(hasPaymentMethod) || Utils.hasPaymentExpired(paymentMethod)) {\n state.payError = 'Missing a valid payment method';\n errors.push({\n errorCode: 'SubscriptionMissingPaymentMethod',\n errorMessage: state.payError\n });\n }\n\n //check if subscription already exists\n if(_.isEmpty(errors)) {\n if(this.loadedSub.isDuplicate(this.props.subscriptions)) {\n state.subError = 'A scheduled deposit with these exact settings already exists.';\n errors.push({\n errorCode: 'SubscriptionDuplicateSettings',\n errorMessage: state.subError\n });\n }\n }\n\n this.setState(state);\n\n if(_.isUndefined(state.acctError) && _.isUndefined(state.payError) && _.isUndefined(state.subError)) {\n return true;\n }\n\n this.props.dispatch(validationError(errors));\n return false;\n }\n\n addSubDeposit(patron, amount) {\n let checkingAccountIDs = _.pluck(patron.patrons, 'posCheckingAccountID');\n checkingAccountIDs = _.without(checkingAccountIDs, null);\n\n let depObj = {\n id: patron.defaultPatronID,\n patronID: patron.defaultPatronID,\n depositAmount: Number(amount),\n checkingAccountID: checkingAccountIDs[0],\n patron: {\n patronID: patron.defaultPatronID,\n checkingAccountID: checkingAccountIDs[0]\n },\n patronNames: Utils.namesOnAccount(patron.patrons),\n subAccountID: null,\n priceEach: null,\n quantity: null\n };\n\n this.loadedSub.addDeposit(depObj, this.props.dispatch);\n }\n\n saveSubscription(e) {\n e.currentTarget.focus();\n\n this.updateValues(e);\n\n if(this.validateSubForm(true)) { \n this.props.dispatch(saveSubscriptionForm(this.loadedSub, this.props.dispatch));\n }\n }\n\n updateValues(e) {\n const formElements = $(this.schForm).find(\"input\");\n for(let element of formElements) {\n if(element.localName === 'input' && element.disabled === false && element.type === 'text') {\n let patron = _.where(this.props.patrons, {patronAccountNum: Number(element.dataset.patronaccountnumber)});\n let amount = element.value;\n this.addSubDeposit(patron[0], amount);\n } else if (element.localName === 'input' && element.disabled === false && element.type === 'radio' && element.checked === true) {\n let payment = _.where(this.props.paymentMethods, {stripeCardID: element.dataset.pid});\n if (payment.length > 0) this.loadedSub.setPayment(payment[0], this.props.dispatch);\n }\n }\n }\n\n deleteLoadedSubscription(e) {\n e.currentTarget.focus();\n Utils.updateModal('confirm', {\n msg: 'Are you sure you want to delete this scheduled deposit?',\n cancelable: true,\n clickHandler: () => {\n if (this._isMounted) {\n this.setState({\n action: 'deleting'\n });\n }\n $('.gen-modal').modal('hide');\n this.props.dispatch(deleteSubscription(this.loadedSub.id));\n this.props.dispatch(deleteSubscriptionForm());\n }\n });\n }\n\n loadSub() {\n this.loadedSub = new SubForm(this.props.sub);\n }\n\n createMinDepositErrorMessage(){\n if(this.loadedSub.getSubTotal() < this.loadedSub.getMinDepositAmount()) {\n return 'Your scheduled deposit total must be at least $' + this.loadedSub.getMinDepositAmount() + '. ';\n }\n return '';\n }\n\n render() {\n this.loadSub();\n let acctError = Utils.getErrorsByID(this.props.validationErrors, 'SubscriptionTotalDepositAmountInvalidRange');\n let subError = Utils.getErrorsByID(this.props.validationErrors, 'SubscriptionDepositAmountInvalidRange', 'SubscriptionDuplicateSettings');\n let payError = Utils.getErrorsByID(this.props.validationErrors, 'SubscriptionMissingPaymentMethod');\n return (\n <div className=\"sub-info\" ref={node => this.schForm = node} role=\"form\">\n <h4 className=\"sr-only\">\n {\n (_.isUndefined(this.loadedSub.id) ? 'New' : 'Edit') + ' scheduled deposit form'\n }\n </h4>\n <h4 className={(Utils.isMobile() ? '' : 'sch-heading') + ' sd-sentence'} role=\"none\">\n {\n _.isUndefined(this.loadedSub.id) ? 'Schedule a new deposit' : 'Scheduled Deposit: ' + this.loadedSub.generateSentence(true)\n }\n </h4>\n <hr className={Utils.isMobile() ? '' : 'header-hr'}/>\n <SubscriptionAccounts\n sub={this.loadedSub}\n patrons={this.props.patrons}\n subscriptions={this.props.subscriptions}\n dispatch={this.props.dispatch}\n />\n {\n acctError.SubscriptionTotalDepositAmountInvalidRange ?\n <div className=\"small sub-error-text\">{acctError.SubscriptionTotalDepositAmountInvalidRange}</div> :\n null\n }\n {\n subError.SubscriptionDepositAmountInvalidRange ?\n <div className=\"small sub-error-text\">{subError.SubscriptionDepositAmountInvalidRange}</div> :\n null\n }\n {\n subError.SubscriptionDuplicateSettings ?\n <div className=\"small sub-error-text\">{subError.SubscriptionDuplicateSettings}</div> :\n null\n }\n {\n <div className=\"small sub-error-text\">{this.createMinDepositErrorMessage()}</div>\n }\n \n <hr/>\n <PaymentMethods\n newPay={true}\n selectable={true}\n currentSub={this.loadedSub}\n context=\"subscription\"\n callback={this.updateValues.bind(this)}\n />\n {\n payError.SubscriptionMissingPaymentMethod ?\n <div className=\"small sub-error-text\">{payError.SubscriptionMissingPaymentMethod}</div> :\n null\n }\n <hr className=\"m-t-4\"/>\n <h4 role=\"none\">Set a trigger for this scheduled deposit</h4>\n <SubscriptionScheduler\n sub={this.loadedSub}\n dispatch={this.props.dispatch}\n />\n <div className=\"sch-btns pull-right\">\n {\n _.isUndefined(this.loadedSub.id) ?\n null :\n <button\n id={Utils.setElementId(\"sch-btn-delete\")}\n className=\"btn btn-danger expand-btn delete\"\n onClick={this.deleteLoadedSubscription.bind(this)}\n type=\"button\"\n >\n {\n this.props.loading && this.state.action === 'deleting' ?\n <Loader/> :\n 'Delete'\n }\n </button>\n }\n <button\n id={Utils.setElementId(\"sch-btn-cancel\")}\n className=\"btn btn-grey expand-btn\"\n onClick={this.cancelEditor.bind(this)}\n data-dismiss=\"modal\"\n type=\"button\"\n >\n Cancel\n </button>\n <button\n id={Utils.setElementId(\"sch-btn-save\")}\n className=\"btn btn-success expand-btn\"\n type=\"button\"\n onClick={this.saveSubscription.bind(this)}\n >\n Save\n </button>\n </div>\n </div>\n );\n }\n}\n\nexport default connect(mapStateToProps)(SubscriptionForm);\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Subscriptions/SubscriptionForm.jsx","import {applyMiddleware, combineReducers, createStore} from 'redux';\r\nimport {persistStore, autoRehydrate} from 'redux-persist';\r\nimport logger from 'redux-logger';\r\nimport thunk from 'redux-thunk';\r\nimport {env} from '../version.json';\r\n\r\nimport AuthReducer from '../common/reducers/AuthReducer.js';\r\nimport UserReducer from '../common/reducers/UserReducer.js';\r\nimport TransReducer from '../common/reducers/TransReducer.js';\r\nimport ErrorReducer from '../common/reducers/ErrorReducer.js';\r\nimport CartReducer from '../common/reducers/CartReducer.js';\r\nimport PatronsReducer from '../common/reducers/PatronsReducer.js';\r\nimport ReportReducer from '../common/reducers/ReportReducer.js';\r\nimport SubscriptionReducer from '../common/reducers/SubReducer.js';\r\nimport AboutReducer from '../common/reducers/AboutReducer.js';\r\nimport RememberReducer from '../common/reducers/RememberReducer.js';\r\n\r\nconst reducers = combineReducers({\r\n auth: AuthReducer,\r\n cart: CartReducer,\r\n error: ErrorReducer,\r\n patrons: PatronsReducer,\r\n reports: ReportReducer,\r\n sub: SubscriptionReducer,\r\n trans: TransReducer,\r\n about: AboutReducer,\r\n user: UserReducer,\r\n remember: RememberReducer\r\n});\r\n\r\nlet middlewares = [thunk];\r\nif (env === 'dev') middlewares.push(logger());\r\nconst middleware = applyMiddleware(...middlewares);\r\n// const middleware = applyMiddleware(thunk);\r\n\r\nconst store = createStore(reducers, middleware, autoRehydrate());\r\n\r\npersistStore(store);\r\n\r\nexport default store;\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/store.js","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_a-number-value.js\n// module id = 293\n// module chunks = 0","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-copy-within.js\n// module id = 294\n// module chunks = 0","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-from-iterable.js\n// module id = 295\n// module chunks = 0","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-reduce.js\n// module id = 296\n// module chunks = 0","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_bind.js\n// module id = 297\n// module chunks = 0","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-strong.js\n// module id = 298\n// module chunks = 0","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-to-json.js\n// module id = 299\n// module chunks = 0","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-weak.js\n// module id = 300\n// module chunks = 0","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = require('./_is-array');\nvar isObject = require('./_is-object');\nvar toLength = require('./_to-length');\nvar ctx = require('./_ctx');\nvar IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n var element, spreadable;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n spreadable = false;\n if (isObject(element)) {\n spreadable = element[IS_CONCAT_SPREADABLE];\n spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n }\n\n if (spreadable && depth > 0) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_flatten-into-array.js\n// module id = 301\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ie8-dom-define.js\n// module id = 302\n// module chunks = 0","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_invoke.js\n// module id = 303\n// module chunks = 0","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-integer.js\n// module id = 304\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-call.js\n// module id = 305\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-step.js\n// module id = 306\n// module chunks = 0","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_math-fround.js\n// module id = 307\n// module chunks = 0","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_math-log1p.js\n// module id = 308\n// module chunks = 0","// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {\n if (\n arguments.length === 0\n // eslint-disable-next-line no-self-compare\n || x != x\n // eslint-disable-next-line no-self-compare\n || inLow != inLow\n // eslint-disable-next-line no-self-compare\n || inHigh != inHigh\n // eslint-disable-next-line no-self-compare\n || outLow != outLow\n // eslint-disable-next-line no-self-compare\n || outHigh != outHigh\n ) return NaN;\n if (x === Infinity || x === -Infinity) return x;\n return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_math-scale.js\n// module id = 309\n// module chunks = 0","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-assign.js\n// module id = 310\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dps.js\n// module id = 311\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopn-ext.js\n// module id = 312\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys-internal.js\n// module id = 313\n// module chunks = 0","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-to-array.js\n// module id = 314\n// module chunks = 0","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_own-keys.js\n// module id = 315\n// module chunks = 0","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_parse-float.js\n// module id = 316\n// module chunks = 0","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_parse-int.js\n// module id = 317\n// module chunks = 0","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_perform.js\n// module id = 318\n// module chunks = 0","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_promise-resolve.js\n// module id = 319\n// module chunks = 0","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_same-value.js\n// module id = 320\n// module chunks = 0","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_string-pad.js\n// module id = 321\n// module chunks = 0","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-index.js\n// module id = 322\n// module chunks = 0","exports.f = require('./_wks');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks-ext.js\n// module id = 323\n// module chunks = 0","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.map.js\n// module id = 324\n// module chunks = 0","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.exec.js\n// module id = 325\n// module chunks = 0","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.flags.js\n// module id = 326\n// module chunks = 0","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.set.js\n// module id = 327\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.weak-map.js\n// module id = 328\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\n// -- Inlined from fbjs --\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction _invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nvar warning = function(){};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + 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 warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\n// /-- Inlined from fbjs --\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return <div>Hello World</div>;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return <div>Hello, {name}!</div>;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/create-react-class/factory.js\n// module id = 329\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha256.js\n// module id = 330\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t var Wih = Wi.high = M[offset + i * 2] | 0;\n\t var Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t var Wil = gamma0l + Wi7l;\n\t var Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t var Wil = Wil + gamma1l;\n\t var Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t var Wil = Wil + Wi16l;\n\t var Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha512.js\n// module id = 331\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/EventListener.js\n// module id = 332\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/focusNode.js\n// module id = 333\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/getActiveElement.js\n// module id = 334\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = {\n QuotaExceededError: true,\n QUOTA_EXCEEDED_ERR: true\n};\n\nvar SecurityErrors = {\n SecurityError: true\n};\n\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (SecurityErrors[error.name]) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors[error.name] && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (SecurityErrors[error.name]) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/DOMStateStorage.js\n// module id = 335\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation,\n getCurrentLocation = Protocol.getCurrentLocation,\n pushLocation = Protocol.pushLocation,\n replaceLocation = Protocol.replaceLocation,\n go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/createBrowserHistory.js\n// module id = 336\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _HashProtocol = require('./HashProtocol');\n\nvar HashProtocol = _interopRequireWildcard(_HashProtocol);\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DefaultQueryKey = '_k';\n\nvar addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!' + path;\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substring(1) : path;\n }\n },\n noslash: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '/' ? path.substring(1) : path;\n },\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nvar createHashHistory = function createHashHistory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Hash history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var queryKey = options.queryKey,\n hashType = options.hashType;\n\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(queryKey !== false, 'Using { queryKey: false } no longer works. Instead, just don\\'t ' + 'use location state if you don\\'t want a key in your URL query string') : void 0;\n\n if (typeof queryKey !== 'string') queryKey = DefaultQueryKey;\n\n if (hashType == null) hashType = 'slash';\n\n if (!(hashType in HashPathCoders)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Invalid hash type: %s', hashType) : void 0;\n\n hashType = 'slash';\n }\n\n var pathCoder = HashPathCoders[hashType];\n\n var getUserConfirmation = HashProtocol.getUserConfirmation;\n\n\n var getCurrentLocation = function getCurrentLocation() {\n return HashProtocol.getCurrentLocation(pathCoder, queryKey);\n };\n\n var pushLocation = function pushLocation(location) {\n return HashProtocol.pushLocation(location, pathCoder, queryKey);\n };\n\n var replaceLocation = function replaceLocation(location) {\n return HashProtocol.replaceLocation(location, pathCoder, queryKey);\n };\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: HashProtocol.go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = HashProtocol.startListener(history.transitionTo, pathCoder, queryKey);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n var goIsSupportedWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n var go = function go(n) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(goIsSupportedWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n\n history.go(n);\n };\n\n var createHref = function createHref(path) {\n return '#' + pathCoder.encodePath(history.createHref(path));\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen,\n go: go,\n createHref: createHref\n });\n};\n\nexports.default = createHashHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/createHashHistory.js\n// module id = 337\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options,\n entries = _options.entries,\n current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return _extends({}, history, {\n canGo: canGo\n });\n};\n\nexports.default = createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/createMemoryHistory.js\n// module id = 338\n// module chunks = 0","'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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\n// module id = 339\n// module chunks = 0","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_Symbol.js\n// module id = 340\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 341\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar INPUT_FOCUSED = 'INPUT_FOCUSED';\nvar INPUT_BLURRED = 'INPUT_BLURRED';\nvar INPUT_CHANGED = 'INPUT_CHANGED';\nvar UPDATE_FOCUSED_SUGGESTION = 'UPDATE_FOCUSED_SUGGESTION';\nvar RESET_FOCUSED_SUGGESTION = 'RESET_FOCUSED_SUGGESTION';\nvar REVEAL_SUGGESTIONS = 'REVEAL_SUGGESTIONS';\nvar CLOSE_SUGGESTIONS = 'CLOSE_SUGGESTIONS';\n\nvar inputFocused = function inputFocused(shouldRenderSuggestions) {\n return {\n type: INPUT_FOCUSED,\n shouldRenderSuggestions: shouldRenderSuggestions\n };\n};\n\nvar inputBlurred = function inputBlurred(shouldRenderSuggestions) {\n return {\n type: INPUT_BLURRED,\n shouldRenderSuggestions: shouldRenderSuggestions\n };\n};\n\nvar inputChanged = function inputChanged(shouldRenderSuggestions) {\n return {\n type: INPUT_CHANGED,\n shouldRenderSuggestions: shouldRenderSuggestions\n };\n};\n\nvar updateFocusedSuggestion = function updateFocusedSuggestion(sectionIndex, suggestionIndex, prevValue) {\n return {\n type: UPDATE_FOCUSED_SUGGESTION,\n sectionIndex: sectionIndex,\n suggestionIndex: suggestionIndex,\n prevValue: prevValue\n };\n};\n\nvar resetFocusedSuggestion = function resetFocusedSuggestion() {\n var shouldResetValueBeforeUpDown = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return {\n type: RESET_FOCUSED_SUGGESTION,\n shouldResetValueBeforeUpDown: shouldResetValueBeforeUpDown\n };\n};\n\nvar revealSuggestions = function revealSuggestions() {\n return {\n type: REVEAL_SUGGESTIONS\n };\n};\n\nvar closeSuggestions = function closeSuggestions() {\n return {\n type: CLOSE_SUGGESTIONS\n };\n};\n\nvar actionCreators = exports.actionCreators = {\n inputFocused: inputFocused,\n inputBlurred: inputBlurred,\n inputChanged: inputChanged,\n updateFocusedSuggestion: updateFocusedSuggestion,\n resetFocusedSuggestion: resetFocusedSuggestion,\n revealSuggestions: revealSuggestions,\n closeSuggestions: closeSuggestions\n};\n\nvar reducer = function reducer(state, action) {\n switch (action.type) {\n case INPUT_FOCUSED:\n return _extends({}, state, {\n isFocused: true,\n isCollapsed: !action.shouldRenderSuggestions\n });\n\n case INPUT_BLURRED:\n return _extends({}, state, {\n isFocused: false,\n focusedSectionIndex: null,\n focusedSuggestionIndex: null,\n valueBeforeUpDown: null,\n isCollapsed: !action.shouldRenderSuggestions\n });\n\n case INPUT_CHANGED:\n return _extends({}, state, {\n focusedSectionIndex: null,\n focusedSuggestionIndex: null,\n valueBeforeUpDown: null,\n isCollapsed: !action.shouldRenderSuggestions\n });\n\n case UPDATE_FOCUSED_SUGGESTION:\n {\n var sectionIndex = action.sectionIndex,\n suggestionIndex = action.suggestionIndex,\n prevValue = action.prevValue;\n var valueBeforeUpDown = state.valueBeforeUpDown;\n\n\n if (suggestionIndex === null) {\n valueBeforeUpDown = null;\n } else if (valueBeforeUpDown === null && typeof prevValue !== 'undefined') {\n valueBeforeUpDown = prevValue;\n }\n\n return _extends({}, state, {\n focusedSectionIndex: sectionIndex,\n focusedSuggestionIndex: suggestionIndex,\n valueBeforeUpDown: valueBeforeUpDown\n });\n }\n\n case RESET_FOCUSED_SUGGESTION:\n {\n return _extends({}, state, {\n focusedSectionIndex: null,\n focusedSuggestionIndex: null,\n valueBeforeUpDown: action.shouldResetValueBeforeUpDown ? null : state.valueBeforeUpDown\n });\n }\n\n case REVEAL_SUGGESTIONS:\n return _extends({}, state, {\n isCollapsed: false\n });\n\n case CLOSE_SUGGESTIONS:\n return _extends({}, state, {\n focusedSectionIndex: null,\n focusedSuggestionIndex: null,\n valueBeforeUpDown: null,\n isCollapsed: true\n });\n\n default:\n return state;\n }\n};\n\nexports.default = reducer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autosuggest/dist/redux.js\n// module id = 342\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n background: {\n backgroundAttachment: true,\n backgroundColor: true,\n backgroundImage: true,\n backgroundPositionX: true,\n backgroundPositionY: true,\n backgroundRepeat: true\n },\n backgroundPosition: {\n backgroundPositionX: true,\n backgroundPositionY: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n },\n outline: {\n outlineWidth: true,\n outlineStyle: true,\n outlineColor: true\n }\n};\n\nvar CSSProperty = {\n isUnitlessNumber: isUnitlessNumber,\n shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/CSSProperty.js\n// module id = 343\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PooledClass = require('./PooledClass');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\n\nvar CallbackQueue = function () {\n function CallbackQueue(arg) {\n _classCallCheck(this, CallbackQueue);\n\n this._callbacks = null;\n this._contexts = null;\n this._arg = arg;\n }\n\n /**\n * Enqueues a callback to be invoked when `notifyAll` is invoked.\n *\n * @param {function} callback Invoked when `notifyAll` is invoked.\n * @param {?object} context Context to call `callback` with.\n * @internal\n */\n\n\n CallbackQueue.prototype.enqueue = function enqueue(callback, context) {\n this._callbacks = this._callbacks || [];\n this._callbacks.push(callback);\n this._contexts = this._contexts || [];\n this._contexts.push(context);\n };\n\n /**\n * Invokes all enqueued callbacks and clears the queue. This is invoked after\n * the DOM representation of a component has been created or updated.\n *\n * @internal\n */\n\n\n CallbackQueue.prototype.notifyAll = function notifyAll() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n var arg = this._arg;\n if (callbacks && contexts) {\n !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i], arg);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n };\n\n CallbackQueue.prototype.checkpoint = function checkpoint() {\n return this._callbacks ? this._callbacks.length : 0;\n };\n\n CallbackQueue.prototype.rollback = function rollback(len) {\n if (this._callbacks && this._contexts) {\n this._callbacks.length = len;\n this._contexts.length = len;\n }\n };\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n\n\n CallbackQueue.prototype.reset = function reset() {\n this._callbacks = null;\n this._contexts = null;\n };\n\n /**\n * `PooledClass` looks for this.\n */\n\n\n CallbackQueue.prototype.destructor = function destructor() {\n this.reset();\n };\n\n return CallbackQueue;\n}();\n\nmodule.exports = PooledClass.addPoolingTo(CallbackQueue);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/CallbackQueue.js\n// module id = 344\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n return true;\n }\n if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;\n return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n /**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n createMarkupForID: function (id) {\n return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n },\n\n setAttributeForID: function (node, id) {\n node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n },\n\n createMarkupForRoot: function () {\n return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n },\n\n setAttributeForRoot: function (node) {\n node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\n },\n\n /**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\n createMarkupForProperty: function (name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n if (shouldIgnoreValue(propertyInfo, value)) {\n return '';\n }\n var attributeName = propertyInfo.attributeName;\n if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n return attributeName + '=\"\"';\n }\n return attributeName + '=' + quoteAttributeValueForBrowser(value);\n } else if (DOMProperty.isCustomAttribute(name)) {\n if (value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n }\n return null;\n },\n\n /**\n * Creates markup for a custom property.\n *\n * @param {string} name\n * @param {*} value\n * @return {string} Markup string, or empty string if the property was invalid.\n */\n createMarkupForCustomAttribute: function (name, value) {\n if (!isAttributeNameSafe(name) || value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n },\n\n /**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n setValueForProperty: function (node, name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, value);\n } else if (shouldIgnoreValue(propertyInfo, value)) {\n this.deleteValueForProperty(node, name);\n return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\n var attributeName = propertyInfo.attributeName;\n var namespace = propertyInfo.attributeNamespace;\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n if (namespace) {\n node.setAttributeNS(namespace, attributeName, '' + value);\n } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n node.setAttribute(attributeName, '');\n } else {\n node.setAttribute(attributeName, '' + value);\n }\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n setValueForAttribute: function (node, name, value) {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n if (value == null) {\n node.removeAttribute(name);\n } else {\n node.setAttribute(name, '' + value);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n /**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForAttribute: function (node, name) {\n node.removeAttribute(name);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\n }\n },\n\n /**\n * Deletes the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForProperty: function (node, name) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, undefined);\n } else if (propertyInfo.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\n }\n }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/DOMPropertyOperations.js\n// module id = 345\n// module chunks = 0","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMComponentFlags = {\n hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMComponentFlags.js\n// module id = 346\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n this._wrapperState.pendingUpdate = false;\n\n var props = this._currentElement.props;\n var value = LinkedValueUtils.getValue(props);\n\n if (value != null) {\n updateOptions(this, Boolean(props.multiple), value);\n }\n }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n var owner = inst._currentElement._owner;\n LinkedValueUtils.checkPropTypes('select', props, owner);\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n }\n }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n var selectedValue, i;\n var options = ReactDOMComponentTree.getNodeFromInstance(inst).options;\n\n if (multiple) {\n selectedValue = {};\n for (i = 0; i < propValue.length; i++) {\n selectedValue['' + propValue[i]] = true;\n }\n for (i = 0; i < options.length; i++) {\n var selected = selectedValue.hasOwnProperty(options[i].value);\n if (options[i].selected !== selected) {\n options[i].selected = selected;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n selectedValue = '' + propValue;\n for (i = 0; i < options.length; i++) {\n if (options[i].value === selectedValue) {\n options[i].selected = true;\n return;\n }\n }\n if (options.length) {\n options[0].selected = true;\n }\n }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n getHostProps: function (inst, props) {\n return _assign({}, props, {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n checkSelectPropTypes(inst, props);\n }\n\n var value = LinkedValueUtils.getValue(props);\n inst._wrapperState = {\n pendingUpdate: false,\n initialValue: value != null ? value : props.defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function (inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\n },\n\n postUpdateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // this value down\n inst._wrapperState.initialValue = undefined;\n\n var wasMultiple = inst._wrapperState.wasMultiple;\n inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n inst._wrapperState.pendingUpdate = false;\n updateOptions(inst, Boolean(props.multiple), value);\n } else if (wasMultiple !== Boolean(props.multiple)) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n }\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMSelect.js\n// module id = 347\n// module chunks = 0","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponentFactory: function (factory) {\n emptyComponentFactory = factory;\n }\n};\n\nvar ReactEmptyComponent = {\n create: function (instantiate) {\n return emptyComponentFactory(instantiate);\n }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactEmptyComponent.js\n// module id = 348\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar ReactFeatureFlags = {\n // When true, call console.time() before and .timeEnd() after each top-level\n // render (both initial renders and updates). Useful when looking at prod-mode\n // timeline profiles in Chrome, for example.\n logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactFeatureFlags.js\n// module id = 349\n// module chunks = 0","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar genericComponentClass = null;\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\n // This accepts a class that receives the tag string. This is a catch all\n // that can render any kind of tag.\n injectGenericComponentClass: function (componentClass) {\n genericComponentClass = componentClass;\n },\n // This accepts a text component class that takes the text string to be\n // rendered as props.\n injectTextComponentClass: function (componentClass) {\n textComponentClass = componentClass;\n }\n};\n\n/**\n * Get a host internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;\n return new genericComponentClass(element);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n return component instanceof textComponentClass;\n}\n\nvar ReactHostComponent = {\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactHostComponent.js\n// module id = 350\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMSelection = require('./ReactDOMSelection');\n\nvar containsNode = require('fbjs/lib/containsNode');\nvar focusNode = require('fbjs/lib/focusNode');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\n\nfunction isInDocument(node) {\n return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n hasSelectionCapabilities: function (elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n },\n\n getSelectionInformation: function () {\n var focusedElem = getActiveElement();\n return {\n focusedElem: focusedElem,\n selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n };\n },\n\n /**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n restoreSelection: function (priorSelectionInformation) {\n var curFocusedElem = getActiveElement();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n }\n focusNode(priorFocusedElem);\n }\n },\n\n /**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n getSelection: function (input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n // IE8 input.\n var range = document.selection.createRange();\n // There can only be one selection per document in IE, so it must\n // be in our element.\n if (range.parentElement() === input) {\n selection = {\n start: -range.moveStart('character', -input.value.length),\n end: -range.moveEnd('character', -input.value.length)\n };\n }\n } else {\n // Content editable or old IE textarea.\n selection = ReactDOMSelection.getOffsets(input);\n }\n\n return selection || { start: 0, end: 0 };\n },\n\n /**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n setSelection: function (input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n var range = input.createTextRange();\n range.collapse(true);\n range.moveStart('character', start);\n range.moveEnd('character', end - start);\n range.select();\n } else {\n ReactDOMSelection.setOffsets(input, offsets);\n }\n }\n};\n\nmodule.exports = ReactInputSelection;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactInputSelection.js\n// module id = 351\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMProperty = require('./DOMProperty');\nvar React = require('react/lib/React');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMContainerInfo = require('./ReactDOMContainerInfo');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n var minLen = Math.min(string1.length, string2.length);\n for (var i = 0; i < minLen; i++) {\n if (string1.charAt(i) !== string2.charAt(i)) {\n return i;\n }\n }\n return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction internalGetID(node) {\n // If node is something like a window, document, or text node, none of\n // which support attributes or a .getAttribute method, gracefully return\n // the empty string, as if the attribute were missing.\n return node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props.child;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context);\n ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container, safely) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndFlush();\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n container = container.documentElement;\n }\n\n // http://jsperf.com/emptying-a-node\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n return this.props.child;\n};\nTopLevelWrapper.isReactTopLevelWrapper = true;\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n * ReactMount.render(\n * component,\n * document.getElementById('container')\n * );\n *\n * <div id=\"container\"> <-- Supplied `container`.\n * <div data-reactid=\".3\"> <-- Rendered reactRoot of React\n * // ... component.\n * </div>\n * </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n\n TopLevelWrapper: TopLevelWrapper,\n\n /**\n * Used by devtools. The keys are not important.\n */\n _instancesByReactRootID: instancesByReactRootID,\n\n /**\n * This is a hook provided to support rendering React components while\n * ensuring that the apparent scroll position of its `container` does not\n * change.\n *\n * @param {DOMElement} container The `container` being rendered into.\n * @param {function} renderCallback This must be called once to do the render.\n */\n scrollMonitor: function (container, renderCallback) {\n renderCallback();\n },\n\n /**\n * Take a component that's already mounted into the DOM and replace its props\n * @param {ReactComponent} prevComponent component instance already in the DOM\n * @param {ReactElement} nextElement component instance to render\n * @param {DOMElement} container container to render into\n * @param {?function} callback function triggered on completion\n */\n _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\n * @param {ReactElement} nextElement element to render\n * @param {DOMElement} container container to render into\n * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n * @return {ReactComponent} nextComponent\n */\n _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case.\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\n\n // The initial render is synchronous but any updates that happen during\n // rendering, in componentWillMount or componentDidMount, will be batched\n // according to the current batching strategy.\n\n ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\n\n return componentInstance;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !React.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' :\n // Check if it quacks like an element\n nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n\n var nextWrappedElement = React.createElement(TopLevelWrapper, { child: nextElement });\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props.child;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\n } else {\n ReactMount.unmountComponentAtNode(container);\n }\n }\n\n var reactRootElement = getReactRootElementInContainer(container);\n var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n var rootElementSibling = reactRootElement;\n while (rootElementSibling) {\n if (internalGetID(rootElementSibling)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0;\n break;\n }\n rootElementSibling = rootElementSibling.nextSibling;\n }\n }\n }\n\n var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance();\n if (callback) {\n callback.call(component);\n }\n return component;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n render: function (nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\n *\n * @param {DOMElement} container DOM element containing a React component.\n * @return {boolean} True if a component was found in and unmounted from\n * `container`\n */\n unmountComponentAtNode: function (container) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (Strictly speaking, unmounting won't cause a\n // render but we still don't expect to be in a render call here.)\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\n // Check if the node being unmounted was rendered by React, but isn't a\n // root node.\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n // Check if the container itself is a React root node.\n var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, rootElement);\n return;\n } else {\n var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n var rootMarkup = rootElement.outerHTML;\n rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n var normalizedMarkup = markup;\n if (process.env.NODE_ENV !== 'production') {\n // because rootMarkup is retrieved from the DOM, various normalizations\n // will have occurred which will not be present in `markup`. Here,\n // insert markup into a <div> or <iframe> depending on the container\n // type to perform the same normalizations before comparing.\n var normalizer;\n if (container.nodeType === ELEMENT_NODE_TYPE) {\n normalizer = document.createElement('div');\n normalizer.innerHTML = markup;\n normalizedMarkup = normalizer.innerHTML;\n } else {\n normalizer = document.createElement('iframe');\n document.body.appendChild(normalizer);\n normalizer.contentDocument.write(markup);\n normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n document.body.removeChild(normalizer);\n }\n }\n\n var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\\n%s', difference) : _prodInvariant('42', difference) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : void 0;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but you didn\\'t use server rendering. We can\\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: hostNode._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactMount.js\n// module id = 352\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar React = require('react/lib/React');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ReactNodeTypes = {\n HOST: 0,\n COMPOSITE: 1,\n EMPTY: 2,\n\n getType: function (node) {\n if (node === null || node === false) {\n return ReactNodeTypes.EMPTY;\n } else if (React.isValidElement(node)) {\n if (typeof node.type === 'function') {\n return ReactNodeTypes.COMPOSITE;\n } else {\n return ReactNodeTypes.HOST;\n }\n }\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n }\n};\n\nmodule.exports = ReactNodeTypes;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactNodeTypes.js\n// module id = 353\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ViewportMetrics = {\n\n currentScrollLeft: 0,\n\n currentScrollTop: 0,\n\n refreshScrollValues: function (scrollPosition) {\n ViewportMetrics.currentScrollLeft = scrollPosition.x;\n ViewportMetrics.currentScrollTop = scrollPosition.y;\n }\n\n};\n\nmodule.exports = ViewportMetrics;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ViewportMetrics.js\n// module id = 354\n// module chunks = 0","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;\n\n if (current == null) {\n return next;\n }\n\n // Both are not empty. Warning: Never call x.concat(y) when you are not\n // certain that x is an Array (x could be a string with concat method).\n if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\n // A bit too dangerous to mutate `next`.\n return [current].concat(next);\n }\n\n return [current, next];\n}\n\nmodule.exports = accumulateInto;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/accumulateInto.js\n// module id = 355\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\n\nfunction forEachAccumulated(arr, cb, scope) {\n if (Array.isArray(arr)) {\n arr.forEach(cb, scope);\n } else if (arr) {\n cb.call(scope, arr);\n }\n}\n\nmodule.exports = forEachAccumulated;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/forEachAccumulated.js\n// module id = 356\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactNodeTypes = require('./ReactNodeTypes');\n\nfunction getHostComponentFromComposite(inst) {\n var type;\n\n while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n inst = inst._renderedComponent;\n }\n\n if (type === ReactNodeTypes.HOST) {\n return inst._renderedComponent;\n } else if (type === ReactNodeTypes.EMPTY) {\n return null;\n }\n}\n\nmodule.exports = getHostComponentFromComposite;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getHostComponentFromComposite.js\n// module id = 357\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n if (!contentKey && ExecutionEnvironment.canUseDOM) {\n // Prefer textContent to innerText because many browsers support both but\n // SVG <text> elements don't support innerText even when <div> does.\n contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n }\n return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getTextContentAccessor.js\n// module id = 358\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactHostComponent = require('./ReactHostComponent');\n\nvar getNextDebugID = require('react/lib/getNextDebugID');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function (element) {\n this.construct(element);\n};\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n var instance;\n\n if (node === null || node === false) {\n instance = ReactEmptyComponent.create(instantiateReactComponent);\n } else if (typeof node === 'object') {\n var element = node;\n var type = element.type;\n if (typeof type !== 'function' && typeof type !== 'string') {\n var info = '';\n if (process.env.NODE_ENV !== 'production') {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + 'it\\'s defined in.';\n }\n }\n info += getDeclarationErrorAddendum(element._owner);\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type, info) : _prodInvariant('130', type == null ? type : typeof type, info) : void 0;\n }\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactHostComponent.createInternalComponent(element);\n } else if (isInternalComponentType(element.type)) {\n // This is temporarily available for custom components that are not string\n // representations. I.e. ART. Once those are updated to use the string\n // representation, we can drop this code path.\n instance = new element.type(element);\n\n // We renamed this. Allow the old name for compat. :(\n if (!instance.getHostNode) {\n instance.getHostNode = instance.getNativeNode;\n }\n } else {\n instance = new ReactCompositeComponentWrapper(element);\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactHostComponent.createInstanceForText(node);\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n }\n\n // These two fields are used by the DOM and ART diffing algorithms\n // respectively. Instead of using expandos on components, we should be\n // storing the state needed by the diffing algorithms elsewhere.\n instance._mountIndex = 0;\n instance._mountImage = null;\n\n if (process.env.NODE_ENV !== 'production') {\n instance._debugID = shouldHaveDebugID ? getNextDebugID() : 0;\n }\n\n // Internal instances should fully constructed at this point, so they should\n // not get any new fields added to them at this point.\n if (process.env.NODE_ENV !== 'production') {\n if (Object.preventExtensions) {\n Object.preventExtensions(instance);\n }\n }\n\n return instance;\n}\n\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nmodule.exports = instantiateReactComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/instantiateReactComponent.js\n// module id = 359\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\n\nvar supportedInputTypes = {\n 'color': true,\n 'date': true,\n 'datetime': true,\n 'datetime-local': true,\n 'email': true,\n 'month': true,\n 'number': true,\n 'password': true,\n 'range': true,\n 'search': true,\n 'tel': true,\n 'text': true,\n 'time': true,\n 'url': true,\n 'week': true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isTextInputElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/isTextInputElement.js\n// module id = 360\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setInnerHTML = require('./setInnerHTML');\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function (node, text) {\n if (node.nodeType === 3) {\n node.nodeValue = text;\n return;\n }\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/setTextContent.js\n// module id = 361\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n if (children._isReactElement) {\n addendum = ' It looks like you\\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/traverseAllChildren.js\n// module id = 362\n// module chunks = 0","module.exports = require('./lib')\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-pullrefresh/index.js\n// module id = 363\n// module chunks = 0","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport React, { Component, createElement } from 'react';\nimport { isValidElementType } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { storeShape, subscriptionShape } from '../utils/PropTypes';\nvar prefixUnsafeLifecycleMethods = typeof React.forwardRef !== \"undefined\";\nvar hotReloadingVersion = 0;\nvar dummyState = {};\n\nfunction noop() {}\n\nfunction makeSelectorStateful(sourceSelector, store) {\n // wrap the selector in an object that tracks its results between runs.\n var selector = {\n run: function runComponentSelector(props) {\n try {\n var nextProps = sourceSelector(store.getState(), props);\n\n if (nextProps !== selector.props || selector.error) {\n selector.shouldComponentUpdate = true;\n selector.props = nextProps;\n selector.error = null;\n }\n } catch (error) {\n selector.shouldComponentUpdate = true;\n selector.error = error;\n }\n }\n };\n return selector;\n}\n\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory, // options object:\n_ref) {\n var _contextTypes, _childContextTypes;\n\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\"]);\n\n var subscriptionKey = storeKey + 'Subscription';\n var version = hotReloadingVersion++;\n var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = storeShape, _contextTypes[subscriptionKey] = subscriptionShape, _contextTypes);\n var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = subscriptionShape, _childContextTypes);\n return function wrapWithConnect(WrappedComponent) {\n invariant(isValidElementType(WrappedComponent), \"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + JSON.stringify(WrappedComponent)));\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n withRef: withRef,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent // TODO Actually fix our use of componentWillReceiveProps\n\n /* eslint-disable react/no-deprecated */\n\n });\n\n var Connect =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Connect, _Component);\n\n function Connect(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.version = version;\n _this.state = {};\n _this.renderCount = 0;\n _this.store = props[storeKey] || context[storeKey];\n _this.propsMode = Boolean(props[storeKey]);\n _this.setWrappedInstance = _this.setWrappedInstance.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n invariant(_this.store, \"Could not find \\\"\" + storeKey + \"\\\" in either the context or props of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a <Provider>, \") + (\"or explicitly pass \\\"\" + storeKey + \"\\\" as a prop to \\\"\" + displayName + \"\\\".\"));\n\n _this.initSelector();\n\n _this.initSubscription();\n\n return _this;\n }\n\n var _proto = Connect.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref3;\n\n // If this component received store from props, its subscription should be transparent\n // to any descendants receiving store+subscription from context; it passes along\n // subscription passed to it. Otherwise, it shadows the parent subscription, which allows\n // Connect to control ordering of notifications to flow top-down.\n var subscription = this.propsMode ? null : this.subscription;\n return _ref3 = {}, _ref3[subscriptionKey] = subscription || this.context[subscriptionKey], _ref3;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n if (!shouldHandleStateChanges) return; // componentWillMount fires during server side rendering, but componentDidMount and\n // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount.\n // Otherwise, unsubscription would never take place during SSR, causing a memory leak.\n // To handle the case where a child component may have triggered a state change by\n // dispatching an action in its componentWillMount, we have to re-run the select and maybe\n // re-render.\n\n this.subscription.trySubscribe();\n this.selector.run(this.props);\n if (this.selector.shouldComponentUpdate) this.forceUpdate();\n }; // Note: this is renamed below to the UNSAFE_ version in React >=16.3.0\n\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n this.selector.run(nextProps);\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate() {\n return this.selector.shouldComponentUpdate;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.subscription = null;\n this.notifyNestedSubs = noop;\n this.store = null;\n this.selector.run = noop;\n this.selector.shouldComponentUpdate = false;\n };\n\n _proto.getWrappedInstance = function getWrappedInstance() {\n invariant(withRef, \"To access the wrapped instance, you need to specify \" + (\"{ withRef: true } in the options argument of the \" + methodName + \"() call.\"));\n return this.wrappedInstance;\n };\n\n _proto.setWrappedInstance = function setWrappedInstance(ref) {\n this.wrappedInstance = ref;\n };\n\n _proto.initSelector = function initSelector() {\n var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions);\n this.selector = makeSelectorStateful(sourceSelector, this.store);\n this.selector.run(this.props);\n };\n\n _proto.initSubscription = function initSubscription() {\n if (!shouldHandleStateChanges) return; // parentSub's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey];\n this.subscription = new Subscription(this.store, parentSub, this.onStateChange.bind(this)); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `this.subscription` will then be null. An\n // extra null check every change can be avoided by copying the method onto `this` and then\n // replacing it with a no-op on unmount. This can probably be avoided if Subscription's\n // listeners logic is changed to not call listeners that have been unsubscribed in the\n // middle of the notification loop.\n\n this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription);\n };\n\n _proto.onStateChange = function onStateChange() {\n this.selector.run(this.props);\n\n if (!this.selector.shouldComponentUpdate) {\n this.notifyNestedSubs();\n } else {\n this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate;\n this.setState(dummyState);\n }\n };\n\n _proto.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() {\n // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it\n // needs to notify nested subs. Once called, it unimplements itself until further state\n // changes occur. Doing it this way vs having a permanent `componentDidUpdate` that does\n // a boolean check every time avoids an extra method call most of the time, resulting\n // in some perf boost.\n this.componentDidUpdate = undefined;\n this.notifyNestedSubs();\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.subscription) && this.subscription.isSubscribed();\n };\n\n _proto.addExtraProps = function addExtraProps(props) {\n if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props; // make a shallow copy so that fields added don't leak to the original selector.\n // this is especially important for 'ref' since that's a reference back to the component\n // instance. a singleton memoized selector would then be holding a reference to the\n // instance, preventing the instance from being garbage collected, and that would be bad\n\n var withExtras = _extends({}, props);\n\n if (withRef) withExtras.ref = this.setWrappedInstance;\n if (renderCountProp) withExtras[renderCountProp] = this.renderCount++;\n if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription;\n return withExtras;\n };\n\n _proto.render = function render() {\n var selector = this.selector;\n selector.shouldComponentUpdate = false;\n\n if (selector.error) {\n throw selector.error;\n } else {\n return createElement(WrappedComponent, this.addExtraProps(selector.props));\n }\n };\n\n return Connect;\n }(Component);\n\n if (prefixUnsafeLifecycleMethods) {\n // Use UNSAFE_ event name where supported\n Connect.prototype.UNSAFE_componentWillReceiveProps = Connect.prototype.componentWillReceiveProps;\n delete Connect.prototype.componentWillReceiveProps;\n }\n /* eslint-enable react/no-deprecated */\n\n\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n Connect.childContextTypes = childContextTypes;\n Connect.contextTypes = contextTypes;\n Connect.propTypes = contextTypes;\n\n if (process.env.NODE_ENV !== 'production') {\n // Use UNSAFE_ event name where supported\n var eventName = prefixUnsafeLifecycleMethods ? 'UNSAFE_componentWillUpdate' : 'componentWillUpdate';\n\n Connect.prototype[eventName] = function componentWillUpdate() {\n var _this2 = this;\n\n // We are hot reloading!\n if (this.version !== version) {\n this.version = version;\n this.initSelector(); // If any connected descendants don't hot reload (and resubscribe in the process), their\n // listeners will be lost when we unsubscribe. Unfortunately, by copying over all\n // listeners, this does mean that the old versions of connected descendants will still be\n // notified of state changes; however, their onStateChange function is a no-op so this\n // isn't a huge deal.\n\n var oldListeners = [];\n\n if (this.subscription) {\n oldListeners = this.subscription.listeners.get();\n this.subscription.tryUnsubscribe();\n }\n\n this.initSubscription();\n\n if (shouldHandleStateChanges) {\n this.subscription.trySubscribe();\n oldListeners.forEach(function (listener) {\n return _this2.subscription.listeners.subscribe(listener);\n });\n }\n }\n };\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/components/connectAdvanced.js\n// module id = 364\n// module chunks = 0","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n// \n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n// \n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n// \n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n// \n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n// \n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/connect/wrapMapToProps.js\n// module id = 365\n// module chunks = 0","import PropTypes from 'prop-types';\nexport var subscriptionShape = PropTypes.shape({\n trySubscribe: PropTypes.func.isRequired,\n tryUnsubscribe: PropTypes.func.isRequired,\n notifyNestedSubs: PropTypes.func.isRequired,\n isSubscribed: PropTypes.func.isRequired\n});\nexport var storeShape = PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/utils/PropTypes.js\n// module id = 366\n// module chunks = 0","import isPlainObject from './isPlainObject';\nimport warning from './warning';\nexport default function verifyPlainObject(value, displayName, methodName) {\n if (!isPlainObject(value)) {\n warning(methodName + \"() in \" + displayName + \" must return a plain object. Instead received \" + value + \".\");\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/utils/verifyPlainObject.js\n// module id = 367\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport { bool, object, string, func, oneOfType, shape, elementType } from 'prop-types';\nimport invariant from 'invariant';\nimport { routerShape } from './PropTypes';\nimport { ContextSubscriber } from './ContextUtils';\n\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\n// TODO: De-duplicate against hasAnyProperties in createTransitionManager.\nfunction isEmptyObject(object) {\n for (var p in object) {\n if (Object.prototype.hasOwnProperty.call(object, p)) return false;\n }return true;\n}\n\nfunction resolveToLocation(to, router) {\n return typeof to === 'function' ? to(router.location) : to;\n}\n\n/**\n * A <Link> is used to create an <a> element that links to a route.\n * When that route is active, the link gets the value of its\n * activeClassName prop.\n *\n * For example, assuming you have the following route:\n *\n * <Route path=\"/posts/:postID\" component={Post} />\n *\n * You could use the following component to link to that route:\n *\n * <Link to={`/posts/${post.id}`} />\n */\nvar Link = createReactClass({\n displayName: 'Link',\n\n mixins: [ContextSubscriber('router')],\n\n contextTypes: {\n router: routerShape\n },\n\n propTypes: {\n to: oneOfType([string, object, func]),\n activeStyle: object,\n activeClassName: string,\n onlyActiveOnIndex: bool.isRequired,\n onClick: func,\n target: string,\n innerRef: oneOfType([string, func, shape({ current: elementType })])\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n onlyActiveOnIndex: false,\n style: {}\n };\n },\n handleClick: function handleClick(event) {\n if (this.props.onClick) this.props.onClick(event);\n\n if (event.defaultPrevented) return;\n\n var router = this.context.router;\n\n !router ? process.env.NODE_ENV !== 'production' ? invariant(false, '<Link>s rendered outside of a router context cannot navigate.') : invariant(false) : void 0;\n\n if (isModifiedEvent(event) || !isLeftClickEvent(event)) return;\n\n // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n /* istanbul ignore if: untestable with Karma */\n if (this.props.target) return;\n\n event.preventDefault();\n\n router.push(resolveToLocation(this.props.to, router));\n },\n render: function render() {\n var _props = this.props,\n to = _props.to,\n activeClassName = _props.activeClassName,\n activeStyle = _props.activeStyle,\n onlyActiveOnIndex = _props.onlyActiveOnIndex,\n innerRef = _props.innerRef,\n props = _objectWithoutProperties(_props, ['to', 'activeClassName', 'activeStyle', 'onlyActiveOnIndex', 'innerRef']);\n\n // Ignore if rendered outside the context of router to simplify unit testing.\n\n\n var router = this.context.router;\n\n\n if (router) {\n // If user does not specify a `to` prop, return an empty anchor tag.\n if (!to) {\n return React.createElement('a', _extends({}, props, { ref: innerRef }));\n }\n\n var toLocation = resolveToLocation(to, router);\n props.href = router.createHref(toLocation);\n\n if (activeClassName || activeStyle != null && !isEmptyObject(activeStyle)) {\n if (router.isActive(toLocation, onlyActiveOnIndex)) {\n if (activeClassName) {\n if (props.className) {\n props.className += ' ' + activeClassName;\n } else {\n props.className = activeClassName;\n }\n }\n\n if (activeStyle) props.style = _extends({}, props.style, activeStyle);\n }\n }\n }\n\n return React.createElement('a', _extends({}, props, { onClick: this.handleClick, ref: innerRef }));\n }\n});\n\nexport default Link;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/Link.js\n// module id = 368\n// module chunks = 0","export function isPromise(obj) {\n return obj && typeof obj.then === 'function';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/PromiseUtils.js\n// module id = 369\n// module chunks = 0","import createReactClass from 'create-react-class';\nimport { string, object } from 'prop-types';\nimport invariant from 'invariant';\nimport { createRouteFromReactElement as _createRouteFromReactElement } from './RouteUtils';\nimport { formatPattern } from './PatternUtils';\nimport { falsy } from './InternalPropTypes';\n\n/**\n * A <Redirect> is used to declare another URL path a client should\n * be sent to when they request a given URL.\n *\n * Redirects are placed alongside routes in the route configuration\n * and are traversed in the same manner.\n */\n/* eslint-disable react/require-render-return */\nvar Redirect = createReactClass({\n displayName: 'Redirect',\n\n statics: {\n createRouteFromReactElement: function createRouteFromReactElement(element) {\n var route = _createRouteFromReactElement(element);\n\n if (route.from) route.path = route.from;\n\n route.onEnter = function (nextState, replace) {\n var location = nextState.location,\n params = nextState.params;\n\n\n var pathname = void 0;\n if (route.to.charAt(0) === '/') {\n pathname = formatPattern(route.to, params);\n } else if (!route.to) {\n pathname = location.pathname;\n } else {\n var routeIndex = nextState.routes.indexOf(route);\n var parentPattern = Redirect.getRoutePattern(nextState.routes, routeIndex - 1);\n var pattern = parentPattern.replace(/\\/*$/, '/') + route.to;\n pathname = formatPattern(pattern, params);\n }\n\n replace({\n pathname: pathname,\n query: route.query || location.query,\n state: route.state || location.state\n });\n };\n\n return route;\n },\n getRoutePattern: function getRoutePattern(routes, routeIndex) {\n var parentPattern = '';\n\n for (var i = routeIndex; i >= 0; i--) {\n var route = routes[i];\n var pattern = route.path || '';\n\n parentPattern = pattern.replace(/\\/*$/, '/') + parentPattern;\n\n if (pattern.indexOf('/') === 0) break;\n }\n\n return '/' + parentPattern;\n }\n },\n\n propTypes: {\n path: string,\n from: string, // Alias for path\n to: string.isRequired,\n query: object,\n state: object,\n onEnter: falsy,\n children: falsy\n },\n\n /* istanbul ignore next: sanity check */\n render: function render() {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<Redirect> elements are for router configuration only and should not be rendered') : invariant(false) : void 0;\n }\n});\n\nexport default Redirect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/Redirect.js\n// module id = 370\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexport function createRouterObject(history, transitionManager, state) {\n var router = _extends({}, history, {\n setRouteLeaveHook: transitionManager.listenBeforeLeavingRoute,\n isActive: transitionManager.isActive\n });\n\n return assignRouterState(router, state);\n}\n\nexport function assignRouterState(router, _ref) {\n var location = _ref.location,\n params = _ref.params,\n routes = _ref.routes;\n\n router.location = location;\n router.params = params;\n router.routes = routes;\n\n return router;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/RouterUtils.js\n// module id = 371\n// module chunks = 0","import useQueries from 'history/lib/useQueries';\nimport useBasename from 'history/lib/useBasename';\nimport baseCreateMemoryHistory from 'history/lib/createMemoryHistory';\n\nexport default function createMemoryHistory(options) {\n // signatures and type checking differ between `useQueries` and\n // `createMemoryHistory`, have to create `memoryHistory` first because\n // `useQueries` doesn't understand the signature\n var memoryHistory = baseCreateMemoryHistory(options);\n var createHistory = function createHistory() {\n return memoryHistory;\n };\n var history = useQueries(useBasename(createHistory))(options);\n return history;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/createMemoryHistory.js\n// module id = 372\n// module chunks = 0","import useRouterHistory from './useRouterHistory';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport default function createRouterHistory(createHistory) {\n var history = void 0;\n if (canUseDOM) history = useRouterHistory(createHistory)();\n return history;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/createRouterHistory.js\n// module id = 373\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from './routerWarning';\nimport computeChangedRoutes from './computeChangedRoutes';\nimport getTransitionUtils from './TransitionUtils';\nimport _isActive from './isActive';\nimport getComponents from './getComponents';\nimport matchRoutes from './matchRoutes';\n\nfunction hasAnyProperties(object) {\n for (var p in object) {\n if (Object.prototype.hasOwnProperty.call(object, p)) return true;\n }return false;\n}\n\nexport default function createTransitionManager(history, routes) {\n var state = {};\n\n var _getTransitionUtils = getTransitionUtils(),\n runEnterHooks = _getTransitionUtils.runEnterHooks,\n runChangeHooks = _getTransitionUtils.runChangeHooks,\n runLeaveHooks = _getTransitionUtils.runLeaveHooks;\n\n // Signature should be (location, indexOnly), but needs to support (path,\n // query, indexOnly)\n\n\n function isActive(location, indexOnly) {\n location = history.createLocation(location);\n\n return _isActive(location, indexOnly, state.location, state.routes, state.params);\n }\n\n var partialNextState = void 0;\n\n function match(location, callback) {\n if (partialNextState && partialNextState.location === location) {\n // Continue from where we left off.\n finishMatch(partialNextState, callback);\n } else {\n matchRoutes(routes, location, function (error, nextState) {\n if (error) {\n callback(error);\n } else if (nextState) {\n finishMatch(_extends({}, nextState, { location: location }), callback);\n } else {\n callback();\n }\n });\n }\n }\n\n function finishMatch(nextState, callback) {\n var _computeChangedRoutes = computeChangedRoutes(state, nextState),\n leaveRoutes = _computeChangedRoutes.leaveRoutes,\n changeRoutes = _computeChangedRoutes.changeRoutes,\n enterRoutes = _computeChangedRoutes.enterRoutes;\n\n runLeaveHooks(leaveRoutes, state);\n\n // Tear down confirmation hooks for left routes\n leaveRoutes.filter(function (route) {\n return enterRoutes.indexOf(route) === -1;\n }).forEach(removeListenBeforeHooksForRoute);\n\n // change and enter hooks are run in series\n runChangeHooks(changeRoutes, state, nextState, function (error, redirectInfo) {\n if (error || redirectInfo) return handleErrorOrRedirect(error, redirectInfo);\n\n runEnterHooks(enterRoutes, nextState, finishEnterHooks);\n });\n\n function finishEnterHooks(error, redirectInfo) {\n if (error || redirectInfo) return handleErrorOrRedirect(error, redirectInfo);\n\n // TODO: Fetch components after state is updated.\n getComponents(nextState, function (error, components) {\n if (error) {\n callback(error);\n } else {\n // TODO: Make match a pure function and have some other API\n // for \"match and update state\".\n callback(null, null, state = _extends({}, nextState, { components: components }));\n }\n });\n }\n\n function handleErrorOrRedirect(error, redirectInfo) {\n if (error) callback(error);else callback(null, redirectInfo);\n }\n }\n\n var RouteGuid = 1;\n\n function getRouteID(route) {\n var create = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n return route.__id__ || create && (route.__id__ = RouteGuid++);\n }\n\n var RouteHooks = Object.create(null);\n\n function getRouteHooksForRoutes(routes) {\n return routes.map(function (route) {\n return RouteHooks[getRouteID(route)];\n }).filter(function (hook) {\n return hook;\n });\n }\n\n function transitionHook(location, callback) {\n matchRoutes(routes, location, function (error, nextState) {\n if (nextState == null) {\n // TODO: We didn't actually match anything, but hang\n // onto error/nextState so we don't have to matchRoutes\n // again in the listen callback.\n callback();\n return;\n }\n\n // Cache some state here so we don't have to\n // matchRoutes() again in the listen callback.\n partialNextState = _extends({}, nextState, { location: location });\n\n var hooks = getRouteHooksForRoutes(computeChangedRoutes(state, partialNextState).leaveRoutes);\n\n var result = void 0;\n for (var i = 0, len = hooks.length; result == null && i < len; ++i) {\n // Passing the location arg here indicates to\n // the user that this is a transition hook.\n result = hooks[i](location);\n }\n\n callback(result);\n });\n }\n\n /* istanbul ignore next: untestable with Karma */\n function beforeUnloadHook() {\n // Synchronously check to see if any route hooks want\n // to prevent the current window/tab from closing.\n if (state.routes) {\n var hooks = getRouteHooksForRoutes(state.routes);\n\n var message = void 0;\n for (var i = 0, len = hooks.length; typeof message !== 'string' && i < len; ++i) {\n // Passing no args indicates to the user that this is a\n // beforeunload hook. We don't know the next location.\n message = hooks[i]();\n }\n\n return message;\n }\n }\n\n var unlistenBefore = void 0,\n unlistenBeforeUnload = void 0;\n\n function removeListenBeforeHooksForRoute(route) {\n var routeID = getRouteID(route);\n if (!routeID) {\n return;\n }\n\n delete RouteHooks[routeID];\n\n if (!hasAnyProperties(RouteHooks)) {\n // teardown transition & beforeunload hooks\n if (unlistenBefore) {\n unlistenBefore();\n unlistenBefore = null;\n }\n\n if (unlistenBeforeUnload) {\n unlistenBeforeUnload();\n unlistenBeforeUnload = null;\n }\n }\n }\n\n /**\n * Registers the given hook function to run before leaving the given route.\n *\n * During a normal transition, the hook function receives the next location\n * as its only argument and can return either a prompt message (string) to show the user,\n * to make sure they want to leave the page; or `false`, to prevent the transition.\n * Any other return value will have no effect.\n *\n * During the beforeunload event (in browsers) the hook receives no arguments.\n * In this case it must return a prompt message to prevent the transition.\n *\n * Returns a function that may be used to unbind the listener.\n */\n function listenBeforeLeavingRoute(route, hook) {\n var thereWereNoRouteHooks = !hasAnyProperties(RouteHooks);\n var routeID = getRouteID(route, true);\n\n RouteHooks[routeID] = hook;\n\n if (thereWereNoRouteHooks) {\n // setup transition & beforeunload hooks\n unlistenBefore = history.listenBefore(transitionHook);\n\n if (history.listenBeforeUnload) unlistenBeforeUnload = history.listenBeforeUnload(beforeUnloadHook);\n }\n\n return function () {\n removeListenBeforeHooksForRoute(route);\n };\n }\n\n /**\n * This is the API for stateful environments. As the location\n * changes, we update state and call the listener. We can also\n * gracefully handle errors and redirects.\n */\n function listen(listener) {\n function historyListener(location) {\n if (state.location === location) {\n listener(null, state);\n } else {\n match(location, function (error, redirectLocation, nextState) {\n if (error) {\n listener(error);\n } else if (redirectLocation) {\n history.replace(redirectLocation);\n } else if (nextState) {\n listener(null, nextState);\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Location \"%s\" did not match any routes', location.pathname + location.search + location.hash) : void 0;\n }\n });\n }\n }\n\n // TODO: Only use a single history listener. Otherwise we'll end up with\n // multiple concurrent calls to match.\n\n // Set up the history listener first in case the initial match redirects.\n var unsubscribe = history.listen(historyListener);\n\n if (state.location) {\n // Picking up on a matchContext.\n listener(null, state);\n } else {\n historyListener(history.getCurrentLocation());\n }\n\n return unsubscribe;\n }\n\n return {\n isActive: isActive,\n match: match,\n listenBeforeLeavingRoute: listenBeforeLeavingRoute,\n listen: listen\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/createTransitionManager.js\n// module id = 374\n// module chunks = 0","import useQueries from 'history/lib/useQueries';\nimport useBasename from 'history/lib/useBasename';\n\nexport default function useRouterHistory(createHistory) {\n return function (options) {\n var history = useQueries(useBasename(createHistory))(options);\n return history;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/useRouterHistory.js\n// module id = 375\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar lowPriorityWarning = require('./lowPriorityWarning');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\n }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'forceUpdate');\n }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function () {\n lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n return undefined;\n }\n });\n }\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = {\n Component: ReactComponent,\n PureComponent: ReactPureComponent\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactBaseClasses.js\n// module id = 376\n// module chunks = 0","/**\n * Copyright (c) 2016-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 */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction isNative(fn) {\n // Based on isNative() from Lodash\n var funcToString = Function.prototype.toString;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var reIsNative = RegExp('^' + funcToString\n // Take an example native function source for comparison\n .call(hasOwnProperty\n // Strip regex characters so we can use it for regex\n ).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&'\n // Remove hasOwnProperty from the template to make it generic\n ).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n try {\n var source = funcToString.call(fn);\n return reIsNative.test(source);\n } catch (err) {\n return false;\n }\n}\n\nvar canUseCollections =\n// Array.from\ntypeof Array.from === 'function' &&\n// Map\ntypeof Map === 'function' && isNative(Map) &&\n// Map.prototype.keys\nMap.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&\n// Set\ntypeof Set === 'function' && isNative(Set) &&\n// Set.prototype.keys\nSet.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);\n\nvar setItem;\nvar getItem;\nvar removeItem;\nvar getItemIDs;\nvar addRoot;\nvar removeRoot;\nvar getRootIDs;\n\nif (canUseCollections) {\n var itemMap = new Map();\n var rootIDSet = new Set();\n\n setItem = function (id, item) {\n itemMap.set(id, item);\n };\n getItem = function (id) {\n return itemMap.get(id);\n };\n removeItem = function (id) {\n itemMap['delete'](id);\n };\n getItemIDs = function () {\n return Array.from(itemMap.keys());\n };\n\n addRoot = function (id) {\n rootIDSet.add(id);\n };\n removeRoot = function (id) {\n rootIDSet['delete'](id);\n };\n getRootIDs = function () {\n return Array.from(rootIDSet.keys());\n };\n} else {\n var itemByKey = {};\n var rootByKey = {};\n\n // Use non-numeric keys to prevent V8 performance issues:\n // https://github.com/facebook/react/pull/7232\n var getKeyFromID = function (id) {\n return '.' + id;\n };\n var getIDFromKey = function (key) {\n return parseInt(key.substr(1), 10);\n };\n\n setItem = function (id, item) {\n var key = getKeyFromID(id);\n itemByKey[key] = item;\n };\n getItem = function (id) {\n var key = getKeyFromID(id);\n return itemByKey[key];\n };\n removeItem = function (id) {\n var key = getKeyFromID(id);\n delete itemByKey[key];\n };\n getItemIDs = function () {\n return Object.keys(itemByKey).map(getIDFromKey);\n };\n\n addRoot = function (id) {\n var key = getKeyFromID(id);\n rootByKey[key] = true;\n };\n removeRoot = function (id) {\n var key = getKeyFromID(id);\n delete rootByKey[key];\n };\n getRootIDs = function () {\n return Object.keys(rootByKey).map(getIDFromKey);\n };\n}\n\nvar unmountedIDs = [];\n\nfunction purgeDeep(id) {\n var item = getItem(id);\n if (item) {\n var childIDs = item.childIDs;\n\n removeItem(id);\n childIDs.forEach(purgeDeep);\n }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n return '\\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction getDisplayName(element) {\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n}\n\nfunction describeID(id) {\n var name = ReactComponentTreeHook.getDisplayName(id);\n var element = ReactComponentTreeHook.getElement(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName;\n if (ownerID) {\n ownerName = ReactComponentTreeHook.getDisplayName(ownerID);\n }\n process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeHook = {\n onSetChildren: function (id, nextChildIDs) {\n var item = getItem(id);\n !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.childIDs = nextChildIDs;\n\n for (var i = 0; i < nextChildIDs.length; i++) {\n var nextChildID = nextChildIDs[i];\n var nextChild = getItem(nextChildID);\n !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;\n !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;\n !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n if (nextChild.parentID == null) {\n nextChild.parentID = id;\n // TODO: This shouldn't be necessary but mounting a new root during in\n // componentWillMount currently causes not-yet-mounted components to\n // be purged from our tree data so their parent id is missing.\n }\n !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0;\n }\n },\n onBeforeMountComponent: function (id, element, parentID) {\n var item = {\n element: element,\n parentID: parentID,\n text: null,\n childIDs: [],\n isMounted: false,\n updateCount: 0\n };\n setItem(id, item);\n },\n onBeforeUpdateComponent: function (id, element) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.element = element;\n },\n onMountComponent: function (id) {\n var item = getItem(id);\n !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.isMounted = true;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n addRoot(id);\n }\n },\n onUpdateComponent: function (id) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.updateCount++;\n },\n onUnmountComponent: function (id) {\n var item = getItem(id);\n if (item) {\n // We need to check if it exists.\n // `item` might not exist if it is inside an error boundary, and a sibling\n // error boundary child threw while mounting. Then this instance never\n // got a chance to mount, but it still gets an unmounting event during\n // the error boundary cleanup.\n item.isMounted = false;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n removeRoot(id);\n }\n }\n unmountedIDs.push(id);\n },\n purgeUnmountedComponents: function () {\n if (ReactComponentTreeHook._preventPurging) {\n // Should only be used for testing.\n return;\n }\n\n for (var i = 0; i < unmountedIDs.length; i++) {\n var id = unmountedIDs[i];\n purgeDeep(id);\n }\n unmountedIDs.length = 0;\n },\n isMounted: function (id) {\n var item = getItem(id);\n return item ? item.isMounted : false;\n },\n getCurrentStackAddendum: function (topElement) {\n var info = '';\n if (topElement) {\n var name = getDisplayName(topElement);\n var owner = topElement._owner;\n info += describeComponentFrame(name, topElement._source, owner && owner.getName());\n }\n\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n info += ReactComponentTreeHook.getStackAddendumByID(id);\n return info;\n },\n getStackAddendumByID: function (id) {\n var info = '';\n while (id) {\n info += describeID(id);\n id = ReactComponentTreeHook.getParentID(id);\n }\n return info;\n },\n getChildIDs: function (id) {\n var item = getItem(id);\n return item ? item.childIDs : [];\n },\n getDisplayName: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element) {\n return null;\n }\n return getDisplayName(element);\n },\n getElement: function (id) {\n var item = getItem(id);\n return item ? item.element : null;\n },\n getOwnerID: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element || !element._owner) {\n return null;\n }\n return element._owner._debugID;\n },\n getParentID: function (id) {\n var item = getItem(id);\n return item ? item.parentID : null;\n },\n getSource: function (id) {\n var item = getItem(id);\n var element = item ? item.element : null;\n var source = element != null ? element._source : null;\n return source;\n },\n getText: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (typeof element === 'string') {\n return element;\n } else if (typeof element === 'number') {\n return '' + element;\n } else {\n return null;\n }\n },\n getUpdateCount: function (id) {\n var item = getItem(id);\n return item ? item.updateCount : 0;\n },\n\n\n getRootIDs: getRootIDs,\n getRegisteredIDs: getItemIDs,\n\n pushNonStandardWarningStack: function (isCreatingElement, currentSource) {\n if (typeof console.reactStack !== 'function') {\n return;\n }\n\n var stack = [];\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n try {\n if (isCreatingElement) {\n stack.push({\n name: id ? ReactComponentTreeHook.getDisplayName(id) : null,\n fileName: currentSource ? currentSource.fileName : null,\n lineNumber: currentSource ? currentSource.lineNumber : null\n });\n }\n\n while (id) {\n var element = ReactComponentTreeHook.getElement(id);\n var parentID = ReactComponentTreeHook.getParentID(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null;\n var source = element && element._source;\n stack.push({\n name: ownerName,\n fileName: source ? source.fileName : null,\n lineNumber: source ? source.lineNumber : null\n });\n id = parentID;\n }\n } catch (err) {\n // Internal state is messed up.\n // Stop building the stack (it's just a nice to have).\n }\n\n console.reactStack(stack);\n },\n popNonStandardWarningStack: function () {\n if (typeof console.reactStackEnd !== 'function') {\n return;\n }\n console.reactStackEnd();\n }\n};\n\nmodule.exports = ReactComponentTreeHook;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactComponentTreeHook.js\n// module id = 377\n// module chunks = 0","/**\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 */\n\n'use strict';\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactElementSymbol.js\n// module id = 378\n// module chunks = 0","/**\n * Copyright (c) 2015-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\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback) {},\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactNoopUpdateQueue.js\n// module id = 379\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n try {\n // $FlowFixMe https://github.com/facebook/flow/issues/285\n Object.defineProperty({}, 'x', { get: function () {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/canDefineProperty.js\n// module id = 380\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar repeat = exports.repeat = function repeat(str, times) {\n return new Array(times + 1).join(str);\n};\n\nvar pad = exports.pad = function pad(num, maxLength) {\n return repeat(\"0\", maxLength - num.toString().length) + num;\n};\n\nvar formatTime = exports.formatTime = function formatTime(time) {\n return pad(time.getHours(), 2) + \":\" + pad(time.getMinutes(), 2) + \":\" + pad(time.getSeconds(), 2) + \".\" + pad(time.getMilliseconds(), 3);\n};\n\n// Use performance API if it's available in order to get better precision\nvar timer = exports.timer = typeof performance !== \"undefined\" && performance !== null && typeof performance.now === \"function\" ? performance : Date;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-logger/lib/helpers.js\n// module id = 381\n// module chunks = 0","import { KEY_PREFIX, REHYDRATE } from './constants';\nimport createAsyncLocalStorage from './defaults/asyncLocalStorage';\nimport purgeStoredState from './purgeStoredState';\nimport stringify from 'json-stringify-safe';\n\nexport default function createPersistor(store, config) {\n // defaults\n var serializer = config.serialize === false ? function (data) {\n return data;\n } : defaultSerializer;\n var deserializer = config.serialize === false ? function (data) {\n return data;\n } : defaultDeserializer;\n var blacklist = config.blacklist || [];\n var whitelist = config.whitelist || false;\n var transforms = config.transforms || [];\n var debounce = config.debounce || false;\n var keyPrefix = config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX;\n\n // pluggable state shape (e.g. immutablejs)\n var stateInit = config._stateInit || {};\n var stateIterator = config._stateIterator || defaultStateIterator;\n var stateGetter = config._stateGetter || defaultStateGetter;\n var stateSetter = config._stateSetter || defaultStateSetter;\n\n // storage with keys -> getAllKeys for localForage support\n var storage = config.storage || createAsyncLocalStorage('local');\n if (storage.keys && !storage.getAllKeys) {\n storage.getAllKeys = storage.keys;\n }\n\n // initialize stateful values\n var lastState = stateInit;\n var paused = false;\n var storesToProcess = [];\n var timeIterator = null;\n\n store.subscribe(function () {\n if (paused) return;\n\n var state = store.getState();\n\n stateIterator(state, function (subState, key) {\n if (!passWhitelistBlacklist(key)) return;\n if (stateGetter(lastState, key) === stateGetter(state, key)) return;\n if (storesToProcess.indexOf(key) !== -1) return;\n storesToProcess.push(key);\n });\n\n var len = storesToProcess.length;\n\n // time iterator (read: debounce)\n if (timeIterator === null) {\n timeIterator = setInterval(function () {\n if (paused && len === storesToProcess.length || storesToProcess.length === 0) {\n clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = storesToProcess.shift();\n var storageKey = createStorageKey(key);\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key);\n }, stateGetter(store.getState(), key));\n if (typeof endState !== 'undefined') storage.setItem(storageKey, serializer(endState), warnIfSetError(key));\n }, debounce);\n }\n\n lastState = state;\n });\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return false;\n if (blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function adhocRehydrate(incoming) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var state = {};\n if (options.serial) {\n stateIterator(incoming, function (subState, key) {\n try {\n var data = deserializer(subState);\n var value = transforms.reduceRight(function (interState, transformer) {\n return transformer.out(interState, key);\n }, data);\n state = stateSetter(state, key, value);\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn('Error rehydrating data for key \"' + key + '\"', subState, err);\n }\n });\n } else state = incoming;\n\n store.dispatch(rehydrateAction(state));\n return state;\n }\n\n function createStorageKey(key) {\n return '' + keyPrefix + key;\n }\n\n // return `persistor`\n return {\n rehydrate: adhocRehydrate,\n pause: function pause() {\n paused = true;\n },\n resume: function resume() {\n paused = false;\n },\n purge: function purge(keys) {\n return purgeStoredState({ storage: storage, keyPrefix: keyPrefix }, keys);\n }\n };\n}\n\nfunction warnIfSetError(key) {\n return function setError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.warn('Error storing data for key:', key, err);\n }\n };\n}\n\nfunction defaultSerializer(data) {\n return stringify(data, null, null, function (k, v) {\n if (process.env.NODE_ENV !== 'production') return null;\n throw new Error('\\n redux-persist: cannot process cyclical state.\\n Consider changing your state structure to have no cycles.\\n Alternatively blacklist the corresponding reducer key.\\n Cycle encounted at key \"' + k + '\" with value \"' + v + '\".\\n ');\n });\n}\n\nfunction defaultDeserializer(serial) {\n return JSON.parse(serial);\n}\n\nfunction rehydrateAction(data) {\n return {\n type: REHYDRATE,\n payload: data\n };\n}\n\nfunction defaultStateIterator(collection, callback) {\n return Object.keys(collection).forEach(function (key) {\n return callback(collection[key], key);\n });\n}\n\nfunction defaultStateGetter(state, key) {\n return state[key];\n}\n\nfunction defaultStateSetter(state, key, value) {\n state[key] = value;\n return state;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/createPersistor.js\n// module id = 382\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport setImmediate from '../utils/setImmediate';\n\nvar noStorage = function noStorage() {\n /* noop */return null;\n};\nif (process.env.NODE_ENV !== 'production') {\n noStorage = function noStorage() {\n console.error('redux-persist asyncLocalStorage requires a global localStorage object. Either use a different storage backend or if this is a universal redux application you probably should conditionally persist like so: https://gist.github.com/rt2zz/ac9eb396793f95ff3c3b');\n return null;\n };\n}\n\nfunction _hasStorage(storageType) {\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) !== 'object' || !(storageType in window)) {\n return false;\n }\n\n try {\n var storage = window[storageType];\n var testKey = 'redux-persist ' + storageType + ' test';\n storage.setItem(testKey, 'test');\n storage.getItem(testKey);\n storage.removeItem(testKey);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') console.warn('redux-persist ' + storageType + ' test failed, persistence will be disabled.');\n return false;\n }\n return true;\n}\n\nfunction hasLocalStorage() {\n return _hasStorage('localStorage');\n}\n\nfunction hasSessionStorage() {\n return _hasStorage('sessionStorage');\n}\n\nfunction getStorage(type) {\n if (type === 'local') {\n return hasLocalStorage() ? window.localStorage : { getItem: noStorage, setItem: noStorage, removeItem: noStorage, getAllKeys: noStorage };\n }\n if (type === 'session') {\n return hasSessionStorage() ? window.sessionStorage : { getItem: noStorage, setItem: noStorage, removeItem: noStorage, getAllKeys: noStorage };\n }\n}\n\nexport default function (type, config) {\n var storage = getStorage(type);\n return {\n getAllKeys: function getAllKeys(cb) {\n return new Promise(function (resolve, reject) {\n try {\n var keys = [];\n for (var i = 0; i < storage.length; i++) {\n keys.push(storage.key(i));\n }\n setImmediate(function () {\n cb && cb(null, keys);\n resolve(keys);\n });\n } catch (e) {\n cb && cb(e);\n reject(e);\n }\n });\n },\n getItem: function getItem(key, cb) {\n return new Promise(function (resolve, reject) {\n try {\n var s = storage.getItem(key);\n setImmediate(function () {\n cb && cb(null, s);\n resolve(s);\n });\n } catch (e) {\n cb && cb(e);\n reject(e);\n }\n });\n },\n setItem: function setItem(key, string, cb) {\n return new Promise(function (resolve, reject) {\n try {\n storage.setItem(key, string);\n setImmediate(function () {\n cb && cb(null);\n resolve();\n });\n } catch (e) {\n cb && cb(e);\n reject(e);\n }\n });\n },\n removeItem: function removeItem(key, cb) {\n return new Promise(function (resolve, reject) {\n try {\n storage.removeItem(key);\n setImmediate(function () {\n cb && cb(null);\n resolve();\n });\n } catch (e) {\n cb && cb(e);\n reject(e);\n }\n });\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/defaults/asyncLocalStorage.js\n// module id = 383\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { KEY_PREFIX } from './constants';\nimport createAsyncLocalStorage from './defaults/asyncLocalStorage';\n\nexport default function getStoredState(config, onComplete) {\n var storage = config.storage || createAsyncLocalStorage('local');\n var deserializer = config.serialize === false ? function (data) {\n return data;\n } : defaultDeserializer;\n var blacklist = config.blacklist || [];\n var whitelist = config.whitelist || false;\n var transforms = config.transforms || [];\n var keyPrefix = config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX;\n\n // fallback getAllKeys to `keys` if present (LocalForage compatability)\n if (storage.keys && !storage.getAllKeys) storage = _extends({}, storage, { getAllKeys: storage.keys });\n\n var restoredState = {};\n var completionCount = 0;\n\n storage.getAllKeys(function (err, allKeys) {\n if (err) {\n if (process.env.NODE_ENV !== 'production') console.warn('redux-persist/getStoredState: Error in storage.getAllKeys');\n complete(err);\n }\n\n var persistKeys = allKeys.filter(function (key) {\n return key.indexOf(keyPrefix) === 0;\n }).map(function (key) {\n return key.slice(keyPrefix.length);\n });\n var keysToRestore = persistKeys.filter(passWhitelistBlacklist);\n\n var restoreCount = keysToRestore.length;\n if (restoreCount === 0) complete(null, restoredState);\n keysToRestore.forEach(function (key) {\n storage.getItem(createStorageKey(key), function (err, serialized) {\n if (err && process.env.NODE_ENV !== 'production') console.warn('redux-persist/getStoredState: Error restoring data for key:', key, err);else restoredState[key] = rehydrate(key, serialized);\n completionCount += 1;\n if (completionCount === restoreCount) complete(null, restoredState);\n });\n });\n });\n\n function rehydrate(key, serialized) {\n var state = null;\n\n try {\n var data = deserializer(serialized);\n state = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key);\n }, data);\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn('redux-persist/getStoredState: Error restoring data for key:', key, err);\n }\n\n return state;\n }\n\n function complete(err, restoredState) {\n onComplete(err, restoredState);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return false;\n if (blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function createStorageKey(key) {\n return '' + keyPrefix + key;\n }\n\n if (typeof onComplete !== 'function' && !!Promise) {\n return new Promise(function (resolve, reject) {\n onComplete = function onComplete(err, restoredState) {\n if (err) reject(err);else resolve(restoredState);\n };\n });\n }\n}\n\nfunction defaultDeserializer(serial) {\n return JSON.parse(serial);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/getStoredState.js\n// module id = 384\n// module chunks = 0","import { KEY_PREFIX } from './constants';\n\nexport default function purgeStoredState(config, keys) {\n var storage = config.storage;\n var keyPrefix = config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX;\n\n // basic validation\n if (Array.isArray(config)) throw new Error('redux-persist: purgeStoredState requires config as a first argument (found array). An array of keys is the optional second argument.');\n if (!storage) throw new Error('redux-persist: config.storage required in purgeStoredState');\n\n if (typeof keys === 'undefined') {\n // if keys is not defined, purge all keys\n return new Promise(function (resolve, reject) {\n storage.getAllKeys(function (err, allKeys) {\n if (err) {\n if (process.env.NODE_ENV !== 'production') console.warn('redux-persist: error during purgeStoredState in storage.getAllKeys');\n reject(err);\n } else {\n resolve(purgeStoredState(config, allKeys.filter(function (key) {\n return key.indexOf(keyPrefix) === 0;\n }).map(function (key) {\n return key.slice(keyPrefix.length);\n })));\n }\n });\n });\n } else {\n // otherwise purge specified keys\n return Promise.all(keys.map(function (key) {\n return storage.removeItem('' + keyPrefix + key, warnIfRemoveError(key));\n }));\n }\n}\n\nfunction warnIfRemoveError(key) {\n return function removeError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.warn('Error storing data for key:', key, err);\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/purgeStoredState.js\n// module id = 385\n// module chunks = 0","var hasNativeSupport = typeof global !== 'undefined' && typeof global.setImmediate !== 'undefined';\nvar setImmediate = hasNativeSupport ? function (fn, ms) {\n return global.setImmediate(fn, ms);\n} : function (fn, ms) {\n return setTimeout(fn, ms);\n};\n\nexport default setImmediate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/utils/setImmediate.js\n// module id = 386\n// module chunks = 0","/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nexport default function compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(undefined, arguments));\n };\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux/es/compose.js\n// module id = 387\n// module chunks = 0","import isPlainObject from 'lodash-es/isPlainObject';\nimport $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nexport var ActionTypes = {\n INIT: '@@redux/INIT'\n\n /**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n};export default function createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux/es/createStore.js\n// module id = 388\n// module chunks = 0","/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nexport default function warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux/es/utils/warning.js\n// module id = 389\n// module chunks = 0","\"use strict\";\n\n// ES3 safe\nvar _undefined = void 0;\n\nmodule.exports = function (value) { return value !== _undefined && value !== null; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/type/value/is.js\n// module id = 390\n// module chunks = 0","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_baseCreate.js\n// module id = 391\n// module chunks = 0","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_baseIteratee.js\n// module id = 392\n// module chunks = 0","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_chainResult.js\n// module id = 393\n// module chunks = 0","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key]; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_collectNonEnumProps.js\n// module id = 394\n// module chunks = 0","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_createEscaper.js\n// module id = 395\n// module chunks = 0","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_createIndexFinder.js\n// module id = 396\n// module chunks = 0","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_createPredicateIndexFinder.js\n// module id = 397\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_createReduce.js\n// module id = 398\n// module chunks = 0","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_createSizePropertyCheck.js\n// module id = 399\n// module chunks = 0","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_escapeMap.js\n// module id = 400\n// module chunks = 0","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_executeBound.js\n// module id = 401\n// module chunks = 0","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_shallowProperty.js\n// module id = 402\n// module chunks = 0","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/before.js\n// module id = 403\n// module chunks = 0","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/bind.js\n// module id = 404\n// module chunks = 0","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/clone.js\n// module id = 405\n// module chunks = 0","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/constant.js\n// module id = 406\n// module chunks = 0","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/defaults.js\n// module id = 407\n// module chunks = 0","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/delay.js\n// module id = 408\n// module chunks = 0","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/difference.js\n// module id = 409\n// module chunks = 0","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/extend.js\n// module id = 410\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/find.js\n// module id = 411\n// module chunks = 0","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/findKey.js\n// module id = 412\n// module chunks = 0","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/findLastIndex.js\n// module id = 413\n// module chunks = 0","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/functions.js\n// module id = 414\n// module chunks = 0","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/get.js\n// module id = 415\n// module chunks = 0","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/indexOf.js\n// module id = 416\n// module chunks = 0","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/initial.js\n// module id = 417\n// module chunks = 0","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/invert.js\n// module id = 418\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isArrayBuffer.js\n// module id = 419\n// module chunks = 0","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isBoolean.js\n// module id = 420\n// module chunks = 0","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isMatch.js\n// module id = 421\n// module chunks = 0","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isNaN.js\n// module id = 422\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isNumber.js\n// module id = 423\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isSymbol.js\n// module id = 424\n// module chunks = 0","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isTypedArray.js\n// module id = 425\n// module chunks = 0","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isUndefined.js\n// module id = 426\n// module chunks = 0","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/iteratee.js\n// module id = 427\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/max.js\n// module id = 428\n// module chunks = 0","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/noop.js\n// module id = 429\n// module chunks = 0","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/pick.js\n// module id = 430\n// module chunks = 0","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/random.js\n// module id = 431\n// module chunks = 0","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/rest.js\n// module id = 432\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport clone from './clone.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/sample.js\n// module id = 433\n// module chunks = 0","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/sortedIndex.js\n// module id = 434\n// module chunks = 0","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/templateSettings.js\n// module id = 435\n// module chunks = 0","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/toPath.js\n// module id = 436\n// module chunks = 0","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/uniq.js\n// module id = 437\n// module chunks = 0","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/unzip.js\n// module id = 438\n// module chunks = 0","module.exports = function(originalModule) {\r\n\tif(!originalModule.webpackPolyfill) {\r\n\t\tvar module = Object.create(originalModule);\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"exports\", {\r\n\t\t\tenumerable: true,\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/harmony-module.js\n// module id = 439\n// module chunks = 0","/* global STRIPE_KEY */\r\n// Node modules\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport {Router, Route, IndexRoute, useRouterHistory} from 'react-router';\r\nimport {createHistory} from 'history';\r\nimport {Provider} from 'react-redux';\r\nimport store from './store.js';\r\nimport GA from 'react-ga4';\r\nimport _ from 'underscore';\r\nimport Utils from '../common/js/utils.js';\r\nimport axios from 'axios';\r\nimport 'babel-polyfill';\r\n\r\nglobal._ = _;\r\nglobal.GA = GA;\r\nglobal.Utils = Utils;\r\nglobal.appName = 'mto-parent';\r\n\r\nGA.initialize('G-JHSRE7YDXS');\r\n\r\n// Common routes\r\nimport AboutUs from '../common/routes/AboutUs/AboutUs';\r\nimport Accounts from '../common/routes/Accounts/Accounts';\r\n\r\nimport Forgot from '../common/routes/Forgot/Forgot';\r\n//import NotFound from '../common/routes/NotFound/NotFound';\r\nimport Privacy from '../common/routes/Privacy/Privacy';\r\nimport Receipts from '../common/routes/Receipts/Receipts';\r\nimport Register from '../common/routes/Register/Register';\r\nimport Reports from '../common/routes/Reports/Reports';\r\nimport Root from '../common/routes/Root/Root';\r\nimport Settings from '../common/routes/Settings/Settings';\r\nimport Support from '../common/routes/Support/Support';\r\nimport Terms from '../common/routes/Terms/Terms';\r\nimport PublicAboutUs from '../common/routes/PublicAboutUs/PublicAboutUs';//\r\nimport SignOutSuccess from '../common/routes/SignedOutSuccess/SignedOutSuccess.jsx';\r\n\r\n// Parent app routes\r\nimport Dashboard from './routes/Dashboard/Dashboard';\r\nimport ScheduleDeposit from './routes/ScheduleDeposit/ScheduleDeposit';\r\nimport Fees from './routes/Fees/Fees';\r\n\r\n// Sass\r\nimport '../common/scss/index.scss';\r\nimport '../common/scss/animations.scss';\r\nimport '../common/scss/themes.scss';\r\nimport '../common/scss/text-scale.scss';\r\n\r\nconst onRouteChange = () => {\r\n $('.modal.in').removeClass('fade').modal('hide');\r\n window.scrollTo(0, 0);\r\n};\r\n\r\nconst logPageView = () => {\r\n GA.set({\r\n page: window.location.pathname\r\n });\r\n GA.send({\r\n hitType: 'pageview',\r\n page: window.location.pathname});\r\n};\r\n\r\ntry {\r\n global.stripe = new Stripe(STRIPE_KEY);\r\n} catch (err) {\r\n global.stripe = undefined;\r\n}\r\n\r\n//Set up common Axios headers\r\naxios.defaults.headers.common = {\r\n 'Client-Source': Utils.isApp() ? window.Capacitor.getPlatform() : CLIENT_SOURCE\r\n};\r\n\r\nfunction onDeviceReady(e) {\r\n APP_BASE = window.Capacitor.getServerUrl();\r\n\r\n renderApp(APP_BASE);\r\n\r\n //dynamically handle orientation events for android devices, ios devices are set in Info.list\r\n if(window.Capacitor.getPlatform() == 'android') {\r\n (\r\n async () => {\r\n await window.Capacitor.Plugins.ScreenOrientation.orientation()\r\n .then((result) => {\r\n if(result.type == 'portrait-primary' || result.type == 'landscape-secondary') {\r\n window.Capacitor.Plugins.ScreenOrientation.lock({orientation: 'portrait'});\r\n }\r\n })\r\n }\r\n )();\r\n }\r\n}\r\n\r\nfunction renderApp(routerBase) {\r\n const history = useRouterHistory(createHistory)({basename: routerBase});\r\n\r\n ReactDOM.render(\r\n <Provider store={store}>\r\n <Router history={history} onUpdate={logPageView}>\r\n <Route path=\"/register\" component={Register} />\r\n <Route path=\"/forgot\" component={Forgot} />\r\n <Route path=\"/support\" component={Support} />\r\n <Route path=\"/privacy\" component={Privacy} />\r\n <Route path=\"/terms\" component={Terms} />\r\n <Route path=\"/public\" component={PublicAboutUs} />\r\n <Route path=\"/signoutsuccess\" component={SignOutSuccess} />\r\n <Route\r\n path=\"/\"\r\n component={Root}\r\n onChange={onRouteChange}\r\n >\r\n <IndexRoute name=\"home\" component={Dashboard}/>\r\n <Route path=\"/about\" component={AboutUs} />\r\n <Route path=\"/deposit\" component={ScheduleDeposit} />\r\n <Route path=\"/fees\" component={Fees} />\r\n <Route path=\"/accounts\" component={Accounts} />\r\n <Route path=\"/reports\" component={Reports} />\r\n <Route path=\"/receipts\" component={Receipts} />\r\n <Route path=\"/settings\" component={Settings} />\r\n <Route path=\"*\" component={Dashboard} />\r\n </Route>\r\n </Router>\r\n </Provider>, document.querySelector('#react-entry'));\r\n}\r\n\r\nif(Utils.isApp()) {\r\n //When hosted as a mobile app, update APP_BASE when device is ready\r\n onDeviceReady();\r\n} else {\r\n renderApp(APP_BASE);\r\n}\n\n\n// WEBPACK FOOTER //\n// app/parent/index.jsx","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}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/assertThisInitialized.js\n// module id = 441\n// module chunks = 0","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/setPrototypeOf.js\n// module id = 442\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/axios.js\n// module id = 443\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/cancel/CancelToken.js\n// module id = 444\n// module chunks = 0","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/Axios.js\n// module id = 445\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/InterceptorManager.js\n// module id = 446\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/dispatchRequest.js\n// module id = 447\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.response = response;\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/enhanceError.js\n// module id = 448\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/settle.js\n// module id = 449\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/core/transformData.js\n// module id = 450\n// module chunks = 0","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/btoa.js\n// module id = 451\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/buildURL.js\n// module id = 452\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/combineURLs.js\n// module id = 453\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/cookies.js\n// module id = 454\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/isAbsoluteURL.js\n// module id = 455\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/isURLSameOrigin.js\n// module id = 456\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/normalizeHeaderName.js\n// module id = 457\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/parseHeaders.js\n// module id = 458\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/axios/lib/helpers/spread.js\n// module id = 459\n// module chunks = 0","import axios from 'axios';\r\nimport axiosRetry from 'axios-retry';\r\nimport * as types from '../constants/ReportConstants.js';\r\nimport Utils from '../js/utils.js';\r\nimport {version} from '../../version.json';\r\n\r\naxiosRetry(axios, {retries: 3, retryCondition: (error) => {\r\n if (error.response.status === 500) return true;\r\n return false;\r\n}});\r\n\r\nconst currentTime = new Date();\r\n\r\nlet reportCall = axios.create({\r\n baseURL: APP_API + 'Report/',\r\n headers: {\r\n 'API-Changeset': API_CHANGESET,\r\n 'Version': version,\r\n 'Content-Type': 'application/json',\r\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\r\n }\r\n});\r\n\r\nexport function fetchCafeteriaReport(from, to, patronID, complex) {\r\n return function(dispatch) {\r\n dispatch({type: types.FETCH_CAFE_REPORT});\r\n reportSetToken();\r\n reportCall.post('/GenerateCafeteriaAccountStatement', {\r\n fromDate: from,\r\n toDate: to,\r\n patronID: patronID,\r\n complexView: complex\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(fetchCafeteriaReportSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(fetchCafeteriaReportFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction fetchCafeteriaReportSuccess(report) {\r\n GA.event({\r\n category: 'Report',\r\n action: 'Created',\r\n label: 'Cafeteria'\r\n });\r\n return {\r\n type: types.FETCH_CAFE_REPORT_SUCCESS,\r\n payload: report\r\n };\r\n}\r\n\r\nfunction fetchCafeteriaReportFailure() {\r\n return {\r\n type: types.FETCH_CAFE_REPORT_FAILURE\r\n };\r\n}\r\n\r\nexport function fetchTransactionReport(from, to) {\r\n return function(dispatch) {\r\n dispatch({type: types.FETCH_TRANS_REPORT});\r\n reportSetToken();\r\n reportCall.post('/GenerateOnlineTransactionHistory', {\r\n fromDate: from,\r\n toDate: to\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(fetchTransactionReportSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(fetchTransactionReportFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction fetchTransactionReportSuccess(report) {\r\n GA.event({\r\n category: 'Report',\r\n action: 'Created',\r\n label: 'Transaction'\r\n });\r\n return {\r\n type: types.FETCH_TRANS_REPORT_SUCCESS,\r\n payload: report\r\n };\r\n}\r\n\r\nfunction fetchTransactionReportFailure() {\r\n return {\r\n type: types.FETCH_TRANS_REPORT_FAILURE\r\n };\r\n}\r\n\r\nexport function getReportsByToken() {\r\n return function(dispatch) {\r\n dispatch({type: types.GET_REPORTS});\r\n reportSetToken();\r\n reportCall.post('/GetReportsByUserToken')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getReportsByTokenSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getReportsByTokenFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction getReportsByTokenSuccess(reports) {\r\n return {\r\n type: types.GET_REPORTS_SUCCESS,\r\n payload: reports\r\n };\r\n}\r\n\r\nfunction getReportsByTokenFailure() {\r\n return {\r\n type: types.GET_REPORTS_FAILURE\r\n };\r\n}\r\n\r\nexport function getReportPDF(reportID) {\r\n return function(dispatch) {\r\n dispatch({type: types.GET_REPORT_PDF});\r\n reportSetToken();\r\n reportCall.post('/GetReportPdfUrl', {\r\n reportID: reportID\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(getReportPDFSuccess(response.data));\r\n }\r\n })\r\n .catch(function(error) {\r\n Utils.dispatchError(error, dispatch);\r\n dispatch(getReportPDFFailure());\r\n });\r\n };\r\n}\r\n\r\nfunction getReportPDFSuccess(pdf) {\r\n // let baseURL = \"data:application/pdf;base64,\" + escape(pdf.reportBase64);\r\n let baseURL = APP_API + 'ReportPdf/' + pdf.urlCode;\r\n Utils.openLink(baseURL, '_blank');\r\n\r\n return {\r\n type: types.GET_REPORT_PDF_SUCCESS\r\n };\r\n}\r\n\r\nfunction getReportPDFFailure() {\r\n return {\r\n type: types.GET_REPORT_PDF_FAILURE\r\n };\r\n}\r\n\r\nexport function reportSetToken(token = Utils.checkForToken()) {\r\n reportCall.defaults.headers.common['User-Token'] = token;\r\n return token;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/actions/ReportAction.js","import axios from 'axios';\r\nimport Utils from '../../common/js/utils.js';\r\nimport {version} from '../../version.json';\r\nimport * as types from '../constants/TestConstants.js';\r\n\r\nconst currentTime = new Date();\r\n\r\nlet testCall = axios.create({\r\n baseURL: APP_API + 'Test/',\r\n headers: {\r\n 'API-Changeset': API_CHANGESET,\r\n 'Version': version,\r\n 'Content-Type': 'application/json',\r\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\r\n }\r\n});\r\n\r\nfunction setToken(token = Utils.checkForToken()) {\r\n testCall.defaults.headers.common['User-Token'] = token;\r\n return token;\r\n}\r\n\r\nexport function runLowBalanceAlerts() {\r\n return function(dispatch) {\r\n setToken();\r\n testCall.post('/RunLowBalanceTask')\r\n .then(response => {\r\n dispatch(testSuccess(types.RUN_LOW_BAL_ALERTS_SUCCESS, response));\r\n })\r\n .catch(error => {\r\n Utils.dispatchError(error, dispatch);\r\n });\r\n };\r\n}\r\n\r\nfunction testSuccess(type, payload) {\r\n console.log({\r\n test: type,\r\n payload: payload\r\n });\r\n let msg = \"Test Response Success\";\r\n switch(type) {\r\n case types.RUN_LOW_BAL_ALERTS_SUCCESS:\r\n msg = payload.data.result;\r\n break;\r\n default: {\r\n break;\r\n }\r\n }\r\n\r\n Utils.updateModal('confirm', {\r\n msg: msg\r\n });\r\n}\n\n\n// WEBPACK FOOTER //\n// app/common/actions/TestAction.js","import React from 'react';\r\n\r\nimport AboutUsContents from '../../components/AboutComponents/Contents/AboutUsContents.jsx';\r\n\r\nclass AboutUs extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <h4 className=\"sr-only\">About</h4>\r\n <button\r\n className=\"about-button collapsed dropdown\"\r\n role=\"tab\"\r\n id=\"aboutUs-heading\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"report-accordion\"\r\n aria-expanded=\"false\"\r\n data-target=\"#aboutUs\"\r\n >\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right balance-caret\"></i>\r\n About\r\n </h4>\r\n </div>\r\n </button>\r\n <div\r\n id=\"aboutUs\"\r\n className=\"report-option collapse\"\r\n role=\"tabpanel\"\r\n aria-labelledby=\"aboutUs-heading\"\r\n style={{height: 'auto !important'}}\r\n >\r\n <hr />\r\n <AboutUsContents />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default AboutUs;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/AboutUs.jsx","import React from 'react';\r\nimport {withRouter} from 'react-router';\r\nimport CancelAccountContents from '../../components/AboutComponents/Contents/CancelAccountContents.jsx';\r\n\r\nclass CancelAccount extends React.Component {\r\n\r\n componentDidMount() {\r\n if(this.props.location.query['open'] === 'cancelaccount') {\r\n $('#deleteaccount').addClass('show');\r\n $(\"html\").animate(\r\n {\r\n scrollTop: $(\"#deleteaccount-heading\").offset().top\r\n },\r\n 800 //speed\r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <h4 className=\"sr-only\">Cancel Account & Delete Data</h4>\r\n <button\r\n className=\"about-button collapsed dropdown\"\r\n role=\"tab\"\r\n id=\"deleteaccount-heading\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"report-accordion\"\r\n aria-expanded=\"false\"\r\n data-target=\"#deleteaccount\"\r\n >\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right balance-caret\"></i>\r\n Cancel Account & Delete Data\r\n </h4>\r\n </div>\r\n </button>\r\n <div\r\n id=\"deleteaccount\"\r\n className=\"report-option collapse\"\r\n role=\"tabpanel\"\r\n aria-labelledby=\"deleteaccount-heading\"\r\n style={{height: 'auto !important'}}\r\n >\r\n <hr/>\r\n <CancelAccountContents />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst cancelAccountRouter = withRouter(CancelAccount);\r\nexport default cancelAccountRouter;\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/CancelAccount.jsx","import React from 'react';\r\n\r\nimport ChangeNotesContents from '../../components/AboutComponents/Contents/ChangeNotesContents.jsx';\r\n\r\nclass ChangeNotes extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <h4 className=\"sr-only\">Program Change Notes</h4>\r\n <button\r\n className=\"about-button collapsed dropdown\"\r\n role=\"tab\"\r\n id=\"changeNotes-heading\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"report-accordion\"\r\n aria-expanded=\"false\"\r\n data-target=\"#changeNotes\"\r\n >\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right balance-caret\"></i>\r\n Program Change Notes\r\n </h4>\r\n </div>\r\n </button>\r\n <div\r\n id=\"changeNotes\"\r\n className=\"report-option collapse\"\r\n role=\"tabpanel\"\r\n aria-labelledby=\"changeNotes-heading\"\r\n style={{height: 'auto !important'}}\r\n >\r\n <hr/>\r\n <ChangeNotesContents />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default ChangeNotes;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/ChangeNotes.jsx","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport {version, env, buildDate} from '../../../../version.json';\r\nimport './Contents.scss';\r\nimport { getDatabaseVersion } from '../../../actions/AboutAction.js';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n authPersist: store.auth,\r\n databaseVersion: store.about.databaseVersion,\r\n userPersist: store.user,\r\n };\r\n};\r\n\r\nclass AboutUsContents extends React.Component {\r\n static propTypes = {\r\n authPersist: PropTypes.object,\r\n databaseVersion: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired,\r\n userPersist: PropTypes.object,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.props.dispatch(getDatabaseVersion());\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"document-content\">\r\n <div className=\"container\">\r\n <div className=\"about-container-row\">\r\n <img className=\"float-left img-fluid img-header\" id=\"about-clock\" src=\"img/About_Clock.png\" alt=\"MyMealTime\"/>\r\n <span className=\"about-container-header\">My MealTime</span>\r\n <div className=\"version-info\">\r\n {\r\n _.isUndefined(this.props.authPersist) ? null :\r\n this.props.authPersist.isAuthenticated ?\r\n <div>\r\n UI Version: {version} {env === \"MTO2PRD\" ? \"\" : env} ({buildDate})<br/>\r\n API Version: {_.isUndefined(this.props.authPersist.apiInfo) ? null : this.props.authPersist.apiInfo[\"api-version\"]}<br/>\r\n {_.isUndefined(this.props.databaseVersion) ? null : 'DB Version: ' + this.props.databaseVersion}<br/>\r\n Current user: {_.isUndefined(this.props.userPersist.userInfo.username) ? null : this.props.userPersist.userInfo.username}<br/>\r\n </div> : null\r\n }\r\n </div>\r\n <span >A Product of <a href=\"#CLMHomePage\" onClick={(e) => {\r\n e.preventDefault();\r\n Utils.openLink(\"http://www.mealtimeclm.com\", \"_system\");\r\n }}><u>The CLM Group, Inc.</u><br/> </a></span>\r\n </div>\r\n </div>\r\n <div className=\"container\">\r\n <div className=\"about-container-row\">\r\n <p>Proudly family-owned and operated in Portland, Oregon, The CLM Group Inc. designs, develops, and supports software products and platforms for public and private schools and universities. For over 30 years, school food service professionals and business managers have relied on MealTime for student account management, point of sale service, and accurate reporting. Every day, schools throughout the United States use MealTime to provide outstanding service to millions of students!</p>\r\n </div>\r\n\r\n <div className=\"about-container-row\">\r\n <img className=\"img-float img-fluid\" id=\"about-stripe\" src=\"img/About_Stripe.png\" alt=\"stripe\"/>\r\n <p>{'My MealTime’s payment services are powered by '}\r\n <a href=\"#stripeHomePage\" onClick={(e) => {\r\n e.preventDefault();\r\n Utils.openLink(\"https://stripe.com/\", \"_system\");}}><u>Stripe</u></a>\r\n {', which processes billions of dollars every year for over 100,000 businesses and organizations like Habitat for Humanity, NPR, Facebook, Pinterest, Blue Apron, Twitter, Kickstarter, Salesforce, Lyft. Stripe has been audited by a PCI-certified auditor and is certified to PCI Service Provider Level 1. This is the most stringent level of certification available in the payments industry. '}\r\n <a href=\"#stripeSecurityPage\" onClick={(e) => {\r\n e.preventDefault();\r\n Utils.openLink(\"https://stripe.com/docs/security/stripe\", \"_system\");}}><u>Click here</u></a>\r\n {' for more information about Stripe’s industry-leading security features.'}</p>\r\n </div>\r\n </div>\r\n <br/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(AboutUsContents);\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/Contents/AboutUsContents.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {withRouter} from 'react-router';\nimport Loader from '../../Loader/Loader.jsx';\nimport { cancelUser } from '../../../actions/UserAction.js';\nimport {clearAllErrors, validationError} from '../../../actions/ErrorAction.js';\n\nimport './Contents.scss';\n\nconst mapStateToProps = store => {\n return {\n loading: store.user.loading,\n validationErrors: store.error.validationErrors,\n userInfo: store.user.userInfo,\n isAuthenticated: store.auth.isAuthenticated\n };\n};\n\nclass DeleteAccountContents extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n $('.gen-modal').modal('hide');\n }\n\n componentDidMount() {\n this.cancelAccountBtn.disabled = true;\n }\n\n enableCancelAccountBtn(e) {\n this.cancelAccountBtn.disabled = !e.currentTarget.checked;\n }\n\n togglePass(e) {\n let group = e.currentTarget.parentElement;\n let input = group.querySelector('input');\n\n if (input.type === 'password') {\n input.type = 'text';\n } else if (input.type === 'text') {\n input.type = 'password';\n }\n }\n\n cancelAccount(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.dispatch(clearAllErrors());\n const errors = [];\n const elements = this.deleteForm.elements;\n const username = elements.loginCancelUsername.value;\n const pwd = elements.loginCancelPassword.value;\n const acknowledged = elements.acknowledgeCancel.checked;\n\n if (pwd === '' || username === '') {\n if (username === '') {\n errors.push({\n errorCode: 'UsernameRequired',\n errorMessage: 'Username is required.'\n });\n };\n\n if (pwd === '') {\n errors.push({\n errorCode: 'CredentialsPasswordRequired',\n errorMessage: 'Password is required.'\n });\n }\n\n if (!_.isEmpty(errors)) this.props.dispatch(validationError(errors));\n } else {\n this.props.dispatch(cancelUser({\n acknowledged: acknowledged,\n username: username,\n password: pwd\n }, \n this.props.router,\n this.props.userInfo.username));\n }\n return false;\n }\n\n render() {\n const {loading, validationErrors} = this.props;\n const usernameError = Utils.getErrorsByID(validationErrors, 'username');\n const pwdError = Utils.getErrorsByID(validationErrors, 'authError');\n\n return (\n <div className=\"document-content\">\n <div>\n <p><span>We’re sorry to see you go. You may cancel your account and delete your data by verifying your account credentials below. Please note: </span></p>\n <p><span>What will be deleted:</span></p>\n <ul>\n <li>Your contact information</li>\n <li>Your scheduled payments</li>\n </ul>\n <p><span>What can not be deleted but will be obfuscated and rendered unusable:</span></p>\n <ul>\n <li>Your account username</li>\n <li>Your account password</li>\n <li>Your primary account email address</li>\n </ul>\n <p><span>What must be retained:</span></p>\n <ul>\n <li>Payment records required by law</li>\n <li>Student accounts in MealTime used for meal services</li>\n </ul>\n\n <div className=\"card-block\">\n <form\n ref={node => this.deleteForm = node}\n noValidate=\"novalidate\"\n style={{padding: '8px'}}\n id={'delete-account-form'}\n >\n <label className=\"form-check-label form-check-label-checkbox\" htmlFor=\"acknowledgeCancel\">\n <input\n type=\"checkbox\"\n id=\"acknowledgeCancel\"\n className=\"form-check-input\"\n aria-label=\"Acknowledge Account Deletion\"\n onChange={this.enableCancelAccountBtn.bind(this)}\n ref={node => this.acceptAck = node}\n disabled={loading}/>\n I understand that this change is immediate and unrecoverable, and that no technical support will be available for my account once this process completes.\n </label>\n\n <div className={\"form-group del-acc \" + (_.isUndefined(usernameError.username) ? '' : ' has-danger')}>\n <label htmlFor=\"loginCancelUsername\">Username</label>\n <input\n id=\"loginCancelUsername\"\n type=\"text\"\n className=\"form-control\"\n autoFocus\n aria-required=\"true\"\n disabled={loading}\n />\n {\n _.isUndefined(usernameError.username) ?\n null :\n <div className=\"form-control-feedback small\">\n {usernameError.username}\n </div>\n }\n </div>\n\n <div className={\"form-group del-acc \" + (_.isUndefined(pwdError.authError) ? '' : ' has-danger')}>\n <label htmlFor=\"loginCancelPassword\">Password</label>\n <div className=\"input-group\">\n <input\n id=\"loginCancelPassword\"\n type=\"password\"\n className=\"form-control pass-inp\"\n aria-invalid={!_.isEmpty(this.props.error)}\n aria-required=\"true\"\n disabled={loading}/>\n <button\n type=\"button\"\n className=\"input-group-addon see-pass\"\n title=\"View password\"\n onClick={this.togglePass.bind(this)}\n disabled={loading}\n >\n <i className=\"fa fa-eye\" aria-hidden=\"true\"></i>\n </button>\n </div>\n {\n _.isUndefined(pwdError.authError) ?\n null :\n <div className=\"form-control-feedback small\">\n {pwdError.authError}\n </div>\n }\n </div>\n\n <button\n id=\"cancelAccountBtn\"\n ref={node => this.cancelAccountBtn = node}\n className=\"btn btn-danger delete\"\n onClick={this.cancelAccount.bind(this)}\n >\n {loading ? <Loader/> : \"Cancel My Account\"}\n </button>\n </form>\n </div>\n </div>\n </div>\n );\n }\n}\n\nDeleteAccountContents.propTypes = {\n dispatch: PropTypes.func,\n loading: PropTypes.bool\n};\n\nconst deleteAccountRouter = withRouter(DeleteAccountContents);\nexport default connect(mapStateToProps)(deleteAccountRouter);\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/Contents/CancelAccountContents.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {getChangeNotes} from '../../../../common/actions/AboutAction.js';\r\nimport Loader from '../../../../common/components/Loader/Loader.jsx';\r\nimport {version, buildDate} from '../../../../version.json';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n loading: store.about.loading,\r\n changeNotes: store.about.changeNotes\r\n };\r\n};\r\n\r\nclass ChangeNotesContents extends React.Component {\r\n static propTypes = {\r\n changeNotes: PropTypes.array.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n dispatch: PropTypes.func.isRequired\r\n }\r\n\r\n componentWillMount() {\r\n this.props.dispatch(getChangeNotes());\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"document-content\">\r\n {\r\n _.map(this.props.changeNotes, note => {\r\n return (\r\n <div key={note.changeNoteId}>\r\n <p><strong>Version {_.isEmpty(note.version) ? version : note.version} ({_.isEmpty(note.date) ? buildDate : note.date})</strong></p>\r\n <p>{note.description}</p>\r\n {\r\n _.isEmpty(note.notes) ?\r\n null :\r\n <ul>\r\n {\r\n _.map(note.notes, itm => {\r\n return (<li key={Math.random()}>{itm}</li>);\r\n })\r\n }\r\n </ul>\r\n }\r\n <hr/>\r\n </div>\r\n );\r\n })\r\n }\r\n {\r\n _.isEmpty(this.props.changeNotes) && this.props.loading ?\r\n <Loader/> :\r\n _.isEmpty(this.props.changeNotes) && !this.props.loading ?\r\n <div className=\"end-of-list text-muted\">\r\n NOTHING TO DISPLAY\r\n </div> :\r\n <div className=\"end-of-list text-muted\">\r\n END OF LIST\r\n </div>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ChangeNotesContents);\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/Contents/ChangeNotesContents.jsx","import React from 'react';\r\nimport {Link} from 'react-router';\r\n\r\nclass FAQContents extends React.Component {\r\n render() {\r\n let forgot = {pathname: '/', state: {forgot: true}};\r\n return (\r\n <div className=\"document-content\">\r\n <p className=\"question\"><strong><span>Where do I get my student’s ID or PassCode to add them to my account?</span></strong></p>\r\n\r\n <p><span>Your student’s ID will likely be printed on official correspondence (such as registration forms) from the school or school district. If you have not received a letter with your student’s ID or (for participating schools) PassCode, please contact your school or school district for assistance.</span></p>\r\n\r\n <p className=\"question\"><strong><span>I need help with my student’s cafeteria account or account balance</span></strong></p>\r\n\r\n <p><span>Please contact your student’s school or school district for assistance. MyMealTime.com is a service that connects you to your student’s account information only. Any account changes, balance adjustments, or refunds must be made through the school or school district. </span></p>\r\n\r\n <p className=\"question\"><strong><span>I can’t remember my username or password</span></strong></p>\r\n\r\n <p>\r\n <span>\r\n If you have forgotten your username or password we can send login assistance to the email address you used when you registered for your account.\r\n <Link to={forgot}>\r\n <span>\r\n {\" Click here to request an email with your credentials. \"}\r\n </span>\r\n </Link>\r\n </span>\r\n </p>\r\n\r\n <p><span>If you no longer have access to this email address, please call MealTime Support at 800.755.0904 between the hours of 5am to 5pm Pacific, Monday through Friday.</span></p>\r\n\r\n <p className=\"question\"><strong><span><span>I am using the correct username and/or password, but it is </span></span></strong><strong><span>not accepted</span></strong></p>\r\n\r\n <p>\r\n <span>\r\n <span>\r\n MyMealTime.com requires that cookies and SSL be enabled in your browser.  If you are attempting to access the site through a third-party link,\r\n <Link to=\"/\">\r\n <span>\r\n {\" try clicking here to login instead.\"}\r\n </span>\r\n </Link>\r\n </span>\r\n </span>\r\n </p>\r\n\r\n <p className=\"question\"><span><strong><span>My payment method has been declined</span></strong></span></p>\r\n\r\n <p><span><span>Please contact your bank or card issuer for more information.</span></span></p>\r\n\r\n <p className=\"question\"><span><strong><span>I made a deposit, but I can’t see it on my student’s account</span></strong></span></p>\r\n\r\n <p>\r\n <span>\r\n <span>\r\n Most schools will receive your deposit and post it to your student’s cafeteria account within 5 minutes.  Some schools may only synchronize once or twice per day, which means it may take 24 hours to show up here. You can always check your\r\n <Link to=\"/receipts\">\r\n <span>\r\n {\" receipts \"}\r\n </span>\r\n </Link>\r\n to make sure the payment was accepted if you’re not sure.\r\n </span>\r\n </span>\r\n </p>\r\n\r\n <p className=\"question\"><span><strong><span>I want to withdraw my student's funds or request a refund</span></strong></span></p>\r\n\r\n <p><span><span>Please contact your school or school district to arrange for funds on your student's cafeteria account to be withdrawn and returned to you according to their specific policy.</span></span></p>\r\n\r\n <p className=\"question\"><span><strong><span>Is there a fee to use MyMealTime.com?</span></strong></span></p>\r\n\r\n <p><span><span>You can add students, check account balances, and set reminders at no cost to you. The only fees you may incur are directly related to adding funds to your student’s cafeteria account.</span></span></p>\r\n\r\n <p className=\"question\"><span><strong><span>Why is there a fee to add funds to a student’s cafeteria account?</span></strong></span></p>\r\n\r\n <p><span><span>Service fees are attached to every electronic purchase, payment, or deposit you make, whether it’s shopping for a new sweater or funding your student’s cafeteria account.  These fees are normally hidden in the cost of the goods and services you buy.  Some schools or school districts choose to subsidize all or part of them. Others may ask that you pay the fees so that the convenience of this service does not impact their operating budget.</span></span></p>\r\n\r\n <p><span><span>Federal law requires a school to accept in-person cash deposits with no additional fees, so please contact your school or school district to make other arrangements to fund your student’s account if you prefer.</span></span></p>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default FAQContents;\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/Contents/FAQContents.jsx","import React from 'react';\r\nimport './Contents.scss';\r\n\r\nclass PrivacyPolicyContents extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"document-content\">\r\n <div>\r\n <p className=\"doc-header\">MealTime - The CLM Group, Inc.</p>\r\n <p className=\"doc-header\">Privacy and Digital Millennium Copyright Act (“DMCA”) Policy</p>\r\n\r\n <p > </p>\r\n\r\n <p>Last revised: December 1, 2017</p>\r\n\r\n <p className=\"num-list\">1.         <u>Who We Are and the Purpose of This Privacy & DMCA Policy</u>.</p>\r\n\r\n <p>MealTime | CLM Group, Inc. is a corporation organized in the State of Oregon (collectively, “<strong>MealTime</strong>,” “<strong>The CLM Group</strong>,” “<strong>Company</strong>,”<strong> </strong>“<strong>us</strong>,”<strong> </strong>or “<strong>we</strong>”).  MealTime respects your privacy and is committed to protecting it through our compliance with this Privacy and DMCA Policy (“<strong>Policy</strong>”), our Terms of Use, and applicable statutes and regulations.  The Policy applies to only to the websites maintained by MealTime, which include, but are not limited to http://www.mealtimeclm.com, https://www.mymealtime.com/, our call center, mobile applications, software as a service (“SaaS”), or other operating platforms through which you choose to access or transmit data (collectively,  the “Website”).</p>\r\n\r\n <p>This Policy describes the types of information we may collect from you or that you may provide when you visit the Website and provides notice of MealTime’s enforcement of the DMCA.  You should review this Policy and MealTime’s Terms of Use before you consent to the collection and use of your personal data gathered through the Website in accordance with this Policy.  Other practices may be used with respect to information we gather through other means of communication.  If you do not agree with our policies and practices, you have the choice of not using our Website.</p>\r\n\r\n <p><strong>IF YOU ARE UNDER THE AGE OF 13, STOP NOW.  READ PARAGRAPH 7, ENTITLED, “<u><span className=\"has-error\">Children under the Age of 13</span></u>” IMMEDIATELY.  Do not provide any information about yourself to us, such as your name, address, telephone number, e-mail address or any avatar, screen name, or user name you may use.</strong></p>\r\n\r\n <p>All users over the age of 13 should review the entirety of MealTime’s Policy and the Terms of Use before you consent to the collection and use of your personal data; or post content that may infringe on a work protected by copyright.  By using the Website, you are accepting and consenting to MealTime’s policies and practices as explained in this Policy.  MealTime may change the Policy from time to time.  You should check the Policy periodically for updates.  If we make material changes to the Policy, we will notify you by e-mail or by posting a conspicuous notice on the Website.  Your continued use of the Website after we make changes will indicate your acceptance of those changes.</p>\r\n\r\n <p>You may ask questions about our Policy or proactively withdraw your consent for us to collect, use, share or maintain your information at any time by contacting us at: Privacy@MealTimeCLM.com or at 10200 SW Greenburg Rd, Suite 360, Portland, OR 97223.  Restricting the use of your personal information <em>before</em> MealTime uses it in the manner described in the Policy is a better practice than attempting to “delete” or “recover” information that has already been shared.</p>\r\n\r\n <p> </p>\r\n\r\n <p className=\"num-list\">2.         <u>Information We Collect about You and How We Collect It</u>.</p>\r\n\r\n <p><span >            <u className=\"non-num-list\">Biometric Data</u>. </span>In addition to numeric keypads that require the entry of a customer PIN, MealTime offers Finger Scanners to our clients for point-of-sale customer identification.  In order to use our Finger Scanners, you must provide a fingerprint or another unique physical characteristic. The Finger Scanner only saves mathematical points within the user’s print instead of the entire print.  Limiting the data to points ensures that the Finger Scanners cannot be used to identify the user—instead; the biometric data is limited to authenticating the user by matching his or her print with the one used to establish the account.  Your biometric data essentially can be used only taken together, meaning, additional information about you is required to identify you. See, the section below for more information about “aggregated” information.</p>\r\n\r\n <p><span >            <u className=\"non-num-list\">Personal Information</u>.  </span>We collect several types of data from and about users of our Website, including their names, physical and email addresses and other information that can be acquired through a search of public records or an internet search (“<strong>Personal Data</strong>”).  Unique information that can be used to identify you, such as your financial records, driver’s license number, credit card numbers or the combination of your name, address and social security number, for example, is Personally Identifiable Information (“<strong>PII</strong>”).  We collect Personal Data and PII from third parties, such as your students’ schools, government subsidy programs, your Free & Reduced Application, and directly from you when you knowingly provide it for various purposes, including registering on the Website, applying to participate in our payment options, submitting comments or feedback about MealTime.  MealTime saves financial information you submit for purposes of applying for certain benefits, such as free or reduced meals. </p>\r\n\r\n <p>            <u className=\"non-num-list\"><span >Publically Posted Information</span></u><span >.  </span>You also may provide information to be published or displayed (hereinafter, <strong>“posted”</strong>) in public areas of the Website or on blogs, Facebook, Twitter or other public social network sites that may be linked to the Website (collectively, “<strong>User Contributions</strong>”).  You post and transmit your User Contributions on our Website or through links on our Website (“<strong>Linked Sites</strong>”) at your own risk.  We cannot control the actions of other users of the Website or entities that maintain or use the Linked Sites.  Therefore, we cannot, and do not, guarantee that your PII or User Contributions will not be viewed, reproduced, altered or distributed by unauthorized persons when you publically post personal information.  Third parties control and establish their own privacy policies for the Linked Sites—this Policy does not apply to Linked Sites.  It is your responsibility to read the privacy policies of all Linked Sites routinely to understand how those unrelated third parties collect and treat your PII and User Contributions.  Please note that, even when you delete your account, the posts, comments and <span>messages you submit through the Services may still be viewable or available on our servers.</span></p>\r\n\r\n <p>            <u className=\"non-num-list\"><span >Aggregated Information/Use of Cookies</span></u><span >.</span>  MealTime collects “aggregated” information through automatic data collection technologies such as cookies, web beacons and other technologies.  Cookies are placed on your hard drive in order to save statistical data about you.  “Aggregated” information is statistical and cannot be used to identify an individual without additional information.  We use aggregated data to improve your experience and the quality of the services we provide to you, and personalize content and advertisements based on your past use of the Website.  Examples of the aggregated data MealTime collects include your preferred language, communication data and the resources that you access and use on the Website; and information about your computer and internet connection, including your IP address, the date and time you accessed our Website, your operating system and browser type.  Unless you disable cookies from tracking you, when you visit the Website, MealTime may associate you with your previous visits to the Website to deliver a better and more personalized service to you.  You may affirmatively decline cookies by proactively using the appropriate feature of your internet browser.  Please note that if you choose to remove or reject cookies, you may not be able to access or use all of the services on the Website. </p>\r\n\r\n <p> </p>\r\n\r\n <p className=\"num-list\">3.         <u>How We Use Your PII</u>.</p>\r\n\r\n <p>To provide services, products and promotional emails about sales, special offers and new technology, including announcing software updates and patches, and product recalls;</p>\r\n\r\n <p>To process orders, respond to your communications, create, develop, operate, deliver, and improve our products, services, content and advertising, and for loss prevention and anti-fraud purposes, including identifying attempted access to your accounts by unauthorized parties;</p>\r\n\r\n <p>To use your PII in any manner that complies with the use described to you when you provided your PII, and/or for any other purpose to which you consent, including the enforcement of your rights under the DMCA.</p>\r\n\r\n <p>All PII collected by, or provided to, us is stored for the period of time in which you remain a registered user of the Website, and for the period of time during which the storage and processing of your PII is necessary in relation to the purposes for which it was collected or provided.  We may also use PII to comply with our legal or contractual third party obligations, or to prosecute or defend any legal claims.</p>\r\n\r\n <p>We also use your PII to perform our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing, collecting and paying through third party electronic payment processors and/or financial institutions (“<strong>ESPs</strong>”) to process such financial transactions.  By accepting this Policy, you expressly consent to the sharing of your PII necessary to process transactions with ESPs. </p>\r\n\r\n <p> </p>\r\n\r\n <p className=\"num-list\">4.         <u>How, Why and with Whom MealTime Shares Aggregated Information, Personal Data and PII</u>.</p>\r\n\r\n <p><span >            <u className=\"non-num-list\">Aggregated Information</u>.  </span>“Aggregated” information is statistical and cannot be used to identify an individual without additional information.  We may disclose aggregated information about our clients and end-users as well as information that does not identify any individual, without restriction.  We may use the automatically collected data to estimate our audience size and usage patterns; store information about your preferences, allow us to customize our Website and platforms according to your individual interests; speed up your searches; and recognize you when you return to our Website and platforms.  MealTime does not share any of your Personal Data or PII with advertisers.</p>\r\n\r\n <p>If you would like more information about sharing aggregated information across websites and your choices to limit third-party service providers’ access to your use of other websites, please visit http://www.networkadvertising.org/managing/opt_out.asp.  Although our Website currently does not have a mechanism to recognize the various web browser Do Not Track signals, we offer our users choices to manage their preferences proactively, as set forth in section, <strong className=\"num-list\"><u>Rights Concerning Personal Data, PII and Account Details</u>.  </strong>To learn more about browser tracking signals and Do Not Track, please visit http://www.allaboutdnt.org/.</p>\r\n\r\n <p>            <u className=\"non-num-list\"><span >Personal Data</span></u><span >.  </span>We may disclose Personal Data that we collect or you provide for any purpose disclosed by us to you when you provide the information and consent to MealTime using it for the stated purpose.  We may disclose aggregated information or Personal Data to, but not limited to, the following entities:</p>\r\n\r\n <p>Companies that provide services such as customer service, payment processing (ESPs, for example), order fulfillment, product delivery, research collection, and customer satisfaction assessment.  MealTime requires the companies, contractors, and service providers we use to support our business (“<strong>Third Parties</strong>”) to keep your Personal Data and PII confidential and use it only for the purposes for which we disclose it to them. </p>\r\n\r\n <p>A buyer or other successor in the event of the merger, divestiture, restructuring, reorganization, dissolution or other sale or transfer of some or all of MealTime’s assets, whether as a going concern or as part of bankruptcy, liquidation or similar proceeding, in which Personal Data held by MealTime about our Website and platform users is among the assets transferred.</p>\r\n\r\n <p>            <u className=\"non-num-list\"><span >PII</span></u><span >.  </span>We may also disclose your PII:</p>\r\n\r\n <p>To comply with any court order, law or legal process, including responding to any government or regulatory request;</p>\r\n\r\n <p>Enforce or apply our Terms of Use and other agreements, including for billing, payment and collection purposes; or</p>\r\n\r\n <p>To protect the rights, property, or safety of MealTime, our customers or others if we believe disclosure is necessary or appropriate.</p>\r\n\r\n <p className=\"num-list\">5.         <u>International Transfers of Personal Data</u>.</p>\r\n\r\n <p>To the extent that MealTime enters into a contractual relationship with a Third Party located outside the United States, we may transfer your Personal Data to the country in which the Third Party operates or resides.  Any international Third Parties must comply with the same security standards MealTime requires of its domestic partners. If you are located outside the United States, you must provide your unambiguous informed consent to the transfer of your Personal Data and PII to the United States.</p>\r\n\r\n <p className=\"num-list\">6.         <u>California Privacy Rights</u>.</p>\r\n\r\n <p>California law entitles residents to ask us for a notice describing what categories of Personal Information we share with Third Parties or with affiliates of MealTime.  MealTime does not provide any PII to Third Parties for their own direct marketing purposes.  If you want to request a notice or have any questions about our privacy practices, please contact us at:</p>\r\n\r\n <p>Privacy@MealTimeCLM.com or at 10200 SW Greenburg Rd, Suite 360, Portland, OR 97223.</p>\r\n\r\n <p > </p>\r\n\r\n <p className=\"num-list\">7.         <u>Children under the Age of 13</u>.</p>\r\n\r\n <p><strong>CHILDREN UNDER 13 YEARS OF AGE CANNOT USE THE WEBSITE WITHOUT THE VERIFIED CONSENT OF A PARENT OR GUARDIAN.  </strong>MealTime does not knowingly collect Personal Data from children under 13.  If you are under 13, <strong><span className=\"has-error\">do not</span></strong>: </p>\r\n\r\n <ul>\r\n <li>Register or provide any information about yourself to us, such as your name, address, telephone number, e-mail address or any avatar, screen name or user name you may use to MealTime or any Third Parties through the Website, which includes, mobile applications, SaaS, and other platforms;</li>\r\n <li>Use any of the interactive or public comment features of this Website;</li>\r\n <li>Purchase any item or service through the Website; or</li>\r\n <li>Use or provide any information on this Website or on or through any of its features.</li>\r\n </ul>\r\n\r\n <p>If a child under the age of 13 wants to use the Website, a parent or guardian of that child should contact MealTime and provide the required verifiable consent before permitting your child to access our Website.  If we learn we have collected or received Personal Data from a child under 13 without prior verification of parental or guardian consent, we will delete that information.  If you believe we might have any information from or about a child under 13 without verified parental consent, please contact us at Privacy@MealTimeCLM.com or at 10200 SW Greenburg Rd, Suite 360, Portland, OR 97223.  We will permit you to review the Personal Data we have received prior to our destruction of it. </p>\r\n\r\n <p> </p>\r\n\r\n <p className=\"num-list\">8.         <u>Copyright Protection under the DMCA/Repeat Infringer Removal Policy</u>.</p>\r\n\r\n <p>We will respond to legitimate requests under the DMCA and we retain the right to remove user content on the MealTime Website that we deem to be infringing the copyright of others.  If you become aware of user content on the Website, that infringes your copyright rights, you may submit a properly formatted DMCA request (see 17 U.S.C. § 512) to MealTime.  Misrepresentations of infringement can result in liability for monetary damages.  You should consult an attorney before taking any action pursuant to the DMCA.  A DMCA request can be sent to us via the contact information below:</p>\r\n\r\n <p> </p>\r\n <p>\r\n Copyright Agent<br/>\r\n 10200 SW Greenburg Rd, Suite 360<br/>\r\n Portland, OR 97223<br/>\r\n Copyright@MealTimeCLM.com.\r\n </p>\r\n <p> </p>\r\n\r\n <p>Please send our Copyright Agent the following information:</p>\r\n\r\n <p> </p>\r\n\r\n <ul>\r\n <li>The electronic or physical signature of the owner of the copyright or the person authorized to act on the owner’s behalf;</li>\r\n <li>Identification of the copyrighted work claimed to have been infringed, or a representative list of such works;</li>\r\n <li>The URL or Internet location of the materials claimed to be infringing or to be the subject of infringing activity, or information reasonably sufficient to permit us to locate the material;</li>\r\n <li>Your name, address, telephone number and email address;</li>\r\n <li>A statement by you that you have a good faith belief that the disputed use of the material is not authorized by the copyright owner, its agent or the law; and</li>\r\n <li>A statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or are authorized to act on the copyright owner's behalf.</li>\r\n </ul>\r\n\r\n <p > </p>\r\n\r\n <p>            <span className=\"non-num-list\"><u>Your Right to File a Counter-Notice</u>.</span>  If we remove your user content in response to a copyright or trademark notice, we will notify you at the email address you provided to MealTime and offer to provide you with a copy of the notice.  If you believe your user content was wrongly removed due to a mistake or misidentification of the material, you can file a counter-notice with us that includes the following:</p>\r\n\r\n <p> </p>\r\n\r\n <ul>\r\n <li>Your physical or electronic signature;</li>\r\n <li>Identification of the material that has been removed or to which access has been disabled and where the material was located online before it was removed or access to it was disabled;</li>\r\n <li>A statement by you, under penalty of perjury, that you have a good faith belief that the material was removed or disabled as a result of mistake or misidentification of the material to be removed or disabled; and</li>\r\n <li>Your name, address, and telephone number, and a statement that you consent to the jurisdiction of federal district court for the judicial district in which the address is located, or if your address is outside of the United States, for any judicial district in which the service provider may be found, and that you will accept service of process from the person who provided notification under DMCA 512 subsection (c)(1)(c) or an agent of such person.</li>\r\n </ul>\r\n\r\n <p > </p>\r\n\r\n <p>Upon receiving a counter-notice, we will forward it to the complaining party and tell them we will restore your content within 10 business days.  If that party does not notify us that they have filed an action to enjoin your use of that content on the Website before that period passes, we will consider restoring your user content to the site.</p>\r\n\r\n <p>            <u className=\"non-num-list\">Removal of Repeat Infringers.</u>  MealTime has a policy to close permanently the accounts of users we identify as repeat infringers.  We apply this policy at our discretion and in appropriate circumstances, such as when a user has repeatedly been charged with infringing the copyrights or other intellectual property rights of others.</p>\r\n\r\n <p className=\"num-list\">9.         <u>Data Security / Legal Disclaimer</u>.</p>\r\n\r\n <p>MealTime maintains reasonable administrative, technical and physical safeguards to secure your Personal Data and PII from accidental loss and from unauthorized access, use, alteration or disclosure.  Only employees and Third Parties that require access to your Personal Data or PII to complete their job duties have access to your information. The safety and security of your PII also depends on you.  Where we have given you (or where you have chosen) a password for access to certain parts of the Website, you are responsible for keeping your password, user name, PIN or any other manner used to access your account confidential. If you have reason to believe your account with MealTime has been compromised, you are responsible for reporting the suspected unauthorized access or use to us.</p>\r\n\r\n <p>Unfortunately, because of the complex and constantly changing nature of technology and business, the transmission of information via the internet is not completely secure.  Although we do our best to protect your PII, we cannot guarantee the security of your Personal Data or PII transmitted to our Website.  Any transmission of PII is at your own risk.  We are not responsible for circumvention of any privacy settings or security measures contained on the Website. </p>\r\n\r\n <p>We offer our services “AS-IS” and “AS-AVAILABLE,” without liability of any kind.  We are not responsible for events beyond our direct control.  We will not be liable for any indirect, incidental, consequential or punitive damages relating to the use or release of your Personal Information.  Refer to the <strong><span >Terms of Use</span></strong> for additional limitations on liability. </p>\r\n\r\n <p> </p>\r\n\r\n <p className=\"num-list\">10.       <u>Changes to Our Privacy & DMCA Policy</u>.</p>\r\n\r\n <p>MealTime posts any changes we make to our Privacy & DMCA Policy on this page.  If we make material changes to how we treat your Personal Information or enforce the DMCA, we will notify you by e-mail or through a notice posted on the Website.  The date this Policy was last revised is identified on the website.  You are responsible for ensuring we have an up-to-date, active, and deliverable e-mail address for you to ensure we can notify you of changes to the Policy.  You should also periodically visit our Website to review any changes to this Policy.</p>\r\n\r\n <p className=\"num-list\">11.       <u>Rights Concerning Personal Data, PII, and Account Details</u>.</p>\r\n\r\n <p>We respect your need to be able to access, revise, or remove the Personal Data and PII that you have provided to us.  If you have registered online, you may access and update your information at any time by logging into your account.  You may also ask MealTime to update your information in your account by writing to us at the contact information set out below (subject to certain exceptions and as prescribed by law) or by email at Support@mealtimeclm.com<span >,</span> Privacy@MealTimeCLM.com, or Sales@mealtimeclm.com. We also provide telephone numbers on our “Contact Us” link on our Website. We may request certain Personal Data or PII to verify the identity of the individual seeking access to records that contain your information. </p>\r\n\r\n <p>You can stop receiving email communications from us at any time by selecting the “unsubscribe” text link provided at the bottom of all email communications or contacting us as indicated below.  However, MealTime must provide you information about your account, including notifying you of requests for password changes, account balances, and the status of your requests for customer service. You may exercise your legal rights regarding your information, and withdraw your consent for MealTime to use your information, as set out in the applicable laws of the State of Oregon, United States of America, or in the law of your state or country of residence, and ask any questions about this Policy and MealTime’s other privacy practices, by contacting us at: Privacy@MealTimeCLM.com or at 10200 SW Greenburg Rd, Suite 360, Portland, OR 97223.  You have the right to complain to a supervisory privacy authority in the jurisdiction of your residence.</p>\r\n\r\n <p className=\"num-list\">12.       <u>Security</u>.</p>\r\n\r\n <p>The information MealTime collects from or about you is stored in secure operating environments that are inaccessible to the public and accessible only to employees who must review your information to do their jobs. When possible, MealTime encrypts your PII when conducting your transaction. While MealTime takes reasonable steps to safeguard your personal information once we receive it, no transmission of data over the Internet or any other public network is guaranteed to be 100% secure. As a result, MealTime cannot ensure or warrant the security of any information you transmit to us or information we transmit to you from the Website.  MealTime protects your personal information in accordance with the laws of the State of Oregon, United States, which may not be at the same level of protection legally required in other jurisdictions.</p>\r\n\r\n <p> </p>\r\n\r\n <p className=\"num-list\">13.       <u>Governing Law & Jurisdiction</u>. </p>\r\n\r\n <p>By using the Website, you agree that the laws of the State of Oregon shall govern any disputes, without regard to its conflict of laws principles, including privacy or defamation issues or other concerns.  Further, you agree that the courts of Washington County, Oregon will have jurisdiction over all matters arising out of or related to the use of the Website.</p>\r\n\r\n <p> </p>\r\n\r\n <p className=\"num-list\">14.       <u>Contact Us</u>. </p>\r\n\r\n <p>If you have any questions about MealTime’s Privacy and DMCA Policy, please email us at: Privacy@MealTimeCLM.com or Copyright@MealTimeCLM.com.</p>\r\n\r\n <p> </p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PrivacyPolicyContents;\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/Contents/PrivacyPolicyContents.jsx","import React from 'react';\r\n\r\nimport FAQContents from '../../components/AboutComponents/Contents/FAQContents.jsx';\r\n\r\nclass FAQ extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <h4 className=\"sr-only\">Frequently asked questions</h4>\r\n <button\r\n className=\"about-button collapsed dropdown\"\r\n role=\"tab\"\r\n id=\"faq-heading\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"report-accordion\"\r\n aria-expanded=\"false\"\r\n data-target=\"#faq\"\r\n >\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right balance-caret\"></i>\r\n FAQ\r\n </h4>\r\n </div>\r\n </button>\r\n <div\r\n id=\"faq\"\r\n className=\"report-option collapse\"\r\n role=\"tabpanel\"\r\n aria-labelledby=\"faq-heading\"\r\n style={{height: 'auto !important'}}\r\n >\r\n <hr/>\r\n <FAQContents />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default FAQ;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/FAQ.jsx","import React from 'react';\r\n\r\nimport PrivacyPolicyContents from '../../components/AboutComponents/Contents/PrivacyPolicyContents.jsx';\r\n\r\nclass PrivacyPolicy extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <h4 className=\"sr-only\">Privacy Policy</h4>\r\n <button\r\n className=\"about-button collapsed dropdown\"\r\n role=\"tab\"\r\n id=\"privacyPolicy-heading\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"report-accordion\"\r\n aria-expanded=\"false\"\r\n data-target=\"#privacyPolicy\"\r\n >\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right balance-caret\"></i>\r\n Privacy Policy\r\n </h4>\r\n </div>\r\n </button>\r\n <div\r\n id=\"privacyPolicy\"\r\n className=\"report-option collapse\"\r\n role=\"tabpanel\"\r\n aria-labelledby=\"privacyPolicy-heading\"\r\n style={{height: 'auto !important'}}\r\n >\r\n <hr/>\r\n <PrivacyPolicyContents />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PrivacyPolicy;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/PrivacyPolicy.jsx","import React from 'react';\r\nimport TermsOfUseContents from './Contents/TermOfUseContents.jsx';\r\n\r\nclass TermsOfUse extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <h4 className=\"sr-only\">Terms Of Use</h4>\r\n <button\r\n className=\"about-button collapsed dropdown\"\r\n role=\"tab\"\r\n id=\"termsOfUse-heading\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#report-accordion\"\r\n aria-expanded=\"false\"\r\n data-target=\"#termsOfUse\"\r\n >\r\n <div className=\"card-header\">\r\n <h4 className=\"card-title\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right balance-caret\"></i>\r\n Terms Of Use\r\n </h4>\r\n </div>\r\n </button>\r\n <div\r\n id=\"termsOfUse\"\r\n className=\"report-option collapse\"\r\n role=\"tabpanel\"\r\n aria-labelledby=\"termsOfUse-heading\"\r\n style={{height: 'auto !important'}}\r\n >\r\n <hr/>\r\n <TermsOfUseContents />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default TermsOfUse;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/AboutComponents/TermsOfUse.jsx","import React from 'react';\r\nimport './AppBanner.scss';\r\n\r\nclass AppBanner extends React.Component {\r\n\r\n openMTAO(e) {\r\n window.open(MTAO_URL, '_blank');\r\n }\r\n\r\n render() {\r\n const schoolYear = Utils.getSchoolYear();\r\n return (\r\n <div className=\"fixed-top banner\">\r\n <div className=\"banner-content\">\r\n <button\r\n id=\"bannerButton\"\r\n className=\"btn btn-sm btn-secondary\"\r\n type=\"button\"\r\n onClick={this.openMTAO.bind(this)}>\r\n Click here\r\n </button>\r\n <span>\r\n {\" to apply for free meals for the \" + schoolYear.schoolStartYear + \"-\" + schoolYear.schoolEndYear + \" school year! \"}\r\n </span>\r\n <small><i>(participating schools only)</i></small>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default AppBanner;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/AppBanner/AppBanner.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Link} from 'react-router';\r\n\r\nimport {\r\n loadPatron,\r\n loadAccount,\r\n fetchTransactions,\r\n fetchDepositsByAccount,\r\n fetchDepositsByPatron,\r\n fetchDepositsByAccountSuccess,\r\n fetchDepositsByPatronSuccess,\r\n fetchTransactionsSuccess\r\n} from '../../../common/actions/PatronsAction.js';\r\n//import {generalError} from '../../../common/actions/ErrorAction.js';\r\nimport ToolTip from '../ToolTip/ToolTip.jsx';\r\n\r\nimport './Card.scss';\r\n\r\n/**\r\n * Card that goes on the home page to represent account\r\n * Lots of different TYPES of cards though. Might be smart to make different types.\r\n */\r\nclass Card extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n items: PropTypes.array.isRequired,\r\n loadedAccount: PropTypes.object,\r\n loadedPatron: PropTypes.object,\r\n patron: PropTypes.object.isRequired,\r\n userPatron: PropTypes.object.isRequired\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.acctID = this.props.patron.patronAccountNum;\r\n // These shouldn't change without having to leave the page\r\n // so I feel comfortable defining them here\r\n this.prevSchStr = 'None';\r\n this.schStr = 'None';\r\n }\r\n\r\n alreadyInCart() {\r\n let deposits = _.filter(this.props.items, item => {\r\n return item.type === 'deposit';\r\n });\r\n // Cart item ids stored as strings to accommodate for fees\r\n const depPos = _.findIndex(deposits, {id: this.acctID.toString()});\r\n return (depPos !== -1);\r\n }\r\n\r\n // Shows deposit info for account\r\n showAccount(e) {\r\n this.props.dispatch(loadAccount(this.props.patron));\r\n\r\n const acctNum = this.props.patron.patronAccountNum;\r\n\r\n // No sense calling for the deposits if they're unavailable but lets update our props\r\n if (!this.props.patron.lastPosDepositDateTimeUnavailable) {\r\n // Temporary account numbers are used for identification, will be negative\r\n if (_.isNull(acctNum) || acctNum < 0) {\r\n // Get by patron ID\r\n this.props.dispatch(fetchDepositsByPatron(this.props.patron.defaultPatronID));\r\n } else {\r\n // Get by account number\r\n const district = this.props.patron.districtLocationSeed;\r\n this.props.dispatch(fetchDepositsByAccount(acctNum, district));\r\n }\r\n } else {\r\n this.props.dispatch(fetchDepositsByAccountSuccess([]));\r\n this.props.dispatch(fetchDepositsByPatronSuccess([]));\r\n }\r\n\r\n if (Utils.isMobile()) {\r\n Utils.updateModal('student');\r\n let m = $('.gen-modal').modal({\r\n backdrop: 'static'\r\n });\r\n // Scroll the table to the top\r\n m.one('hidden.bs.modal', () => {\r\n $('.table-responsive').scrollTop(0);\r\n });\r\n m.one('shown.bs.modal', () => {\r\n $('.table-responsive').scrollTop(0);\r\n });\r\n } else {\r\n // Make sure Student Info is in view\r\n let checkpoint = e.target;\r\n window.scrollTo(0, 0);\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint\r\n }}));\r\n }\r\n }\r\n\r\n //TODO: Refactor Opens the deposit modal\r\n openDepositModal(e) {\r\n //explicitly add focus to capture last focused item\r\n e.currentTarget.focus();\r\n\r\n let names = _.pluck(this.props.patron.patrons, 'firstName');\r\n // Don't bother for...empty accounts?\r\n if (_.isEmpty(names)) return;\r\n\r\n const nameStr = Utils.multiNameString(names);\r\n const districtName = _.pluck(this.props.patron.patrons, 'districtName');\r\n let checkingAccountIDs = _.pluck(this.props.patron.patrons, 'posCheckingAccountID');\r\n checkingAccountIDs = _.without(checkingAccountIDs, null);\r\n //let activeCheckingAccounts = _.pluck(this.props.patron.patrons, 'posCheckingAccountActive');\r\n\r\n let result = Utils.canDeposit(this.props.patron);\r\n\r\n if(!result.canDeposit) {\r\n Utils.updateModal('confirm', {\r\n msg: result.msg\r\n });\r\n return;\r\n }\r\n\r\n if(result.reason === 'inActiveMPowerStudent') {\r\n Utils.updateModal('confirm', {\r\n header: nameStr + \"'s account is currently inactive\",\r\n msg: result.msg,\r\n okTitle: \"Yes, Continue\",\r\n context: \"inActiveMPowerStudent\",\r\n cancelable: true,\r\n clickHandler: () => {\r\n Utils.updateModal('deposit', {\r\n name: nameStr,\r\n districtName: (_.isEmpty(districtName) ? '' : districtName[0]),\r\n acctID: this.acctID,\r\n patronID: this.props.patron.defaultPatronID,\r\n checkingAccountID: checkingAccountIDs[0]\r\n });\r\n }\r\n });\r\n return;\r\n }\r\n\r\n Utils.updateModal('deposit', {\r\n name: nameStr,\r\n districtName: (_.isEmpty(districtName) ? '' : districtName[0]),\r\n acctID: this.acctID,\r\n patronID: this.props.patron.defaultPatronID,\r\n checkingAccountID: checkingAccountIDs[0]\r\n });\r\n return;\r\n }\r\n\r\n preventModal(e) {\r\n e.stopPropagation();\r\n }\r\n\r\n triggerRover(e) {\r\n let checkpoint = e.target;\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-app-body',\r\n checkpoint: checkpoint,\r\n routeChange: \"deposit\"\r\n }}));\r\n }\r\n\r\n render() {\r\n let studentBarcode = document.getElementById(\"barcode\");\r\n const student = this.props.patron.patrons[0];\r\n this.facilityActive = (student.schoolActive && this.props.patron.districtActive);\r\n this.disallowDeposits = (!student.patronActive && !student.schoolMT5);\r\n const balance = (_.isNull(this.props.patron.balance)) ? null : this.props.patron.balance.toFixed(2);\r\n const ableToMakeDeposit = ((this.facilityActive && !this.disallowDeposits) && !this.props.patron.paymentsProhibited);\r\n let canDepositResult = Utils.canDeposit(this.props.patron);\r\n\r\n // Check for previous deposit\r\n let prevSchDate = new Date(Date.parse(this.props.patron.lastPosDepositDateTime));\r\n if (!_.isNull(this.props.patron.lastPosDepositDateTime) && prevSchDate.toString() !== \"Invalid Date\") {\r\n let prevSchStrFormatted = Utils.dateFormat(Utils.convertFromDatetime(this.props.patron.lastPosDepositDateTime));\r\n this.prevSchStr = (prevSchStrFormatted.includes('NaN')) ? 'None' : prevSchStrFormatted;\r\n }\r\n\r\n // Check for scheduled deposit\r\n let schStrDate = new Date(Date.parse(this.props.userPatron.nextScheduledDepositDate));\r\n if (!_.isNull(this.props.userPatron.nextScheduledDepositDate) && schStrDate.toString() !== \"Invalid Date\") {\r\n let schStrFormatted = Utils.dateFormat(Utils.convertFromDatetime(this.props.userPatron.nextScheduledDepositDate));\r\n this.schStr = (schStrFormatted.includes('NaN')) ? 'None' : schStrFormatted;\r\n }\r\n\r\n return (\r\n <div\r\n className=\"card student-card\"\r\n data-acct={this.acctID}\r\n ref={node => this.node = node}\r\n >\r\n <h4 className=\"sr-only\">\r\n {\"Cafeteria Account for \" + Utils.nameFormat(_.pluck(this.props.patron.patrons, 'fullName'))}\r\n </h4>\r\n <div className=\"card-header\">\r\n <button\r\n className=\"btn-link pull-left\"\r\n onClick={this.showAccount.bind(this)}\r\n id={Utils.setElementId(\"cab-\" + this.acctID)}\r\n >\r\n <h4 className=\"balance-text\" role=\"none\">\r\n Cafeteria Account Balance\r\n </h4>\r\n </button>\r\n {\r\n canDepositResult.showBalance ?\r\n //make sure balance is really available, we can change utils but would be more work and testing\r\n _.isNull(balance) ?\r\n <div className=\"tooltip-info pull-right\">\r\n <ToolTip\r\n toolTipClassName = {\"fa fa-question-circle-o fa-2x mystery-balance\"}\r\n title=\"The requested information from your school is temporarily unavailable, but should return shortly. For immediate assistance, please contact the food service officials at your school or school district.\"\r\n direction=\"left\"\r\n />\r\n </div> :\r\n <h3 className=\"balance-amount pull-right\" role=\"none\">\r\n {'$' + balance}\r\n </h3> :\r\n <div className=\"tooltip-info pull-right\">\r\n <ToolTip\r\n toolTipClassName = {\"fa fa-question-circle-o fa-2x mystery-balance\"}\r\n title = {canDepositResult.msg}\r\n direction=\"left\"\r\n />\r\n </div>\r\n }\r\n </div>\r\n\r\n <hr className=\"ci\"/>\r\n\r\n <div className=\"list-group\">\r\n {_.map(this.props.patron.patrons, stu => {\r\n return <Student\r\n key={stu.patronID}\r\n student={stu}\r\n balance={this.props.patron.balance}\r\n acctID={this.acctID}\r\n loadedPatron={this.props.loadedPatron}\r\n dispatch={this.props.dispatch}\r\n ableToViewInfo={ableToMakeDeposit || !this.props.patron.lastPosDepositDateTimeUnavailable}\r\n //disabledFunc={this.showDisabledMessage.bind(this)}\r\n />;\r\n })}\r\n </div>\r\n <div className=\"card-footer\">\r\n <div className=\"list-group last-activity pull-left\">\r\n <button className=\"btn-link list-group-item-text\"\r\n id={Utils.setElementId(\"last-activity-\" + this.acctID)}\r\n onClick={this.showAccount.bind(this)}\r\n >\r\n <small className=\"date\">\r\n Last online deposit sync: {this.prevSchStr}\r\n </small>\r\n </button>\r\n {\r\n _.isNull(studentBarcode) ?\r\n <div className=\"btn btn-link list-group-item-text\"\r\n id={Utils.setElementId(\"next-sch-\" + this.acctID)}\r\n onClickCapture={this.triggerRover.bind(this)}\r\n >\r\n <small className=\"next\">\r\n <Link to=\"/deposit\">Next scheduled deposit: {this.schStr}</Link>\r\n </small>\r\n </div> :\r\n <button className=\"btn btn-link\">\r\n <small className=\"list-group-item-text next\">\r\n Next scheduled deposit: {this.schStr}\r\n </small>\r\n </button>\r\n }\r\n </div>\r\n <button\r\n onClick={this.openDepositModal.bind(this)}\r\n className={\"btn btn-success pull-right\"}\r\n id={Utils.setElementId(\"add-edit-\" + this.acctID)}\r\n >\r\n {\r\n this.alreadyInCart() ?\r\n 'Edit $' :\r\n 'Add $'\r\n }\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Student component, for use on the dashboard.\r\n * Handles all the events for the students info.\r\n */\r\nclass Student extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.dateStr = '';\r\n if (this.props.student.patronActive) {\r\n if (!this.props.student.schoolActive) {\r\n this.dateStr = this.props.student.schoolName + ' is no longer accepting deposits.';\r\n } else if (_.isNull(this.props.student.lastPosSaleDateTime)) {\r\n // Transaction info cannot be reached\r\n if (this.props.student.lastPosSaleDateTimeUnavailable) {\r\n this.dateStr = this.props.student.schoolName + ' is temporarily unavailable';\r\n } else { // Reachable, but no data exists\r\n this.dateStr = 'Student does not have any transaction data';\r\n }\r\n } else { // Transaction data exists!\r\n const d = Utils.convertFromDatetime(this.props.student.lastPosSaleDateTime);\r\n this.dateStr = 'Last Transaction: ' + Utils.dateFormat(d, false);\r\n }\r\n } else {\r\n this.dateStr = 'Student is not currently active';\r\n }\r\n }\r\n\r\n changeInfo(e) {\r\n e.currentTarget.focus();\r\n\r\n this.props.dispatch(loadPatron({\r\n ...this.props.student,\r\n acctID: this.props.acctID,\r\n balance: this.props.balance\r\n }));\r\n\r\n if (!this.props.student.lastPosSaleDateTimeUnavailable) {\r\n this.props.dispatch(fetchTransactions(this.props.student.patronID));\r\n } else {\r\n this.props.dispatch(fetchTransactionsSuccess([]));\r\n }\r\n\r\n if (Utils.isMobile()) {\r\n Utils.updateModal('student');\r\n let m = $('.gen-modal').modal({\r\n backdrop: 'static'\r\n });\r\n m.one('hidden.bs.modal', () => {\r\n $('.table-responsive').scrollTop(0);\r\n });\r\n m.one('shown.bs.modal', () => {\r\n $('.table-responsive').scrollTop(0);\r\n });\r\n } else {\r\n let checkpoint = e.target;\r\n window.scrollTo(0, 0);\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint\r\n }}));\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className={\"list-group-item student\" + (this.props.student.patronActive ? \" active-student\" : \" inactive-student\")}>\r\n <button\r\n id={Utils.setElementId(\"chevron-\" + this.props.student.fullName)}\r\n className=\"btn-link\"\r\n onClick={this.changeInfo.bind(this)}>\r\n <h4 className=\"list-group-item-text name\" role=\"none\">\r\n {this.props.student.fullName}\r\n <i className=\"caret-left fa fa-lg fa-chevron-circle-right\"></i>\r\n </h4>\r\n </button>\r\n <div className=\"stu-school\">\r\n <small\r\n className=\"btn-link list-group-item-text text-muted date\">\r\n {this.props.student.schoolName}\r\n </small>\r\n </div>\r\n <div className=\"last-stu-activity\">\r\n <button className=\"btn-link\"\r\n id={Utils.setElementId(\"last-stu-activity-\" + this.props.student.fullName)}\r\n onClick={this.changeInfo.bind(this)}>\r\n <small className=\"list-group-item-text text-muted date\">{this.dateStr}</small>\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nStudent.propTypes = {\r\n acctID: PropTypes.number.isRequired,\r\n balance: PropTypes.number,\r\n dispatch: PropTypes.func.isRequired,\r\n loadedPatron: PropTypes.object.isRequired,\r\n student: PropTypes.object.isRequired\r\n};\r\n\r\nexport default Card;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Card/Card.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport {withRouter} from 'react-router';\n\nimport Loader from '../../../common/components/Loader/Loader.jsx';\nimport PaymentInfo from '../../../common/components/PaymentInfo/PaymentInfo.jsx';\nimport ToolTip from '../ToolTip/ToolTip.jsx';\n\nimport {removeFromCart, checkout, updatePayment} from '../../actions/CartAction.js';\n\nimport {clearValidationErrors} from '../../actions/ErrorAction.js';\n\nimport './Cart.scss';\n\nconst mapStateToProps = store => {\n return {\n allMethods: store.trans.methods, // I feel like we shouldn't have to grab all the payment methods here\n checkoutSuccess: store.cart.checkoutSuccess,\n defaultPayment: store.trans.defaultPayment,\n fee: store.cart.fee,\n items: store.cart.items,\n loading: store.cart.loading,\n memos: store.cart.memos,\n paymentMethod: store.cart.paymentMethod,\n total: store.cart.total,\n validationErrors: store.error.validationErrors\n };\n};\n\nclass Cart extends React.Component {\n static propTypes = {\n allMethods: PropTypes.array,\n checkoutSuccess: PropTypes.bool,\n defaultPayment: PropTypes.string,\n dispatch: PropTypes.func.isRequired,\n fee: PropTypes.object.isRequired,\n items: PropTypes.array.isRequired,\n loading: PropTypes.bool.isRequired,\n memos: PropTypes.array.isRequired,\n paymentMethod: PropTypes.string,\n total: PropTypes.number.isRequired,\n validationErrors: PropTypes.array,\n router: PropTypes.object\n }\n\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.checkoutMethod = _.throttle(this.checkout, 5000, {trailing: false});\n }\n\n componentDidMount() {\n this._isMounted = true;\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.checkoutSuccess) {\n Utils.vibrate(250);\n if (nextProps.paymentMethod.includes('tok_')) this.props.dispatch(updatePayment(this.props.defaultPayment));\n }\n\n if (!_.isEmpty(nextProps.validationErrors) && nextProps.items.length === 0) {\n this.props.dispatch(clearValidationErrors());\n }\n }\n\n addPayment(e) {\n // Utils.updateModal('new-payment', {cart: true});\n Utils.updateModal('new-payment', {context: 'cart'});\n }\n\n createCartItems(items) {\n let itemJsx = [];\n for (let item of items) {\n itemJsx.push(<ReceiptItem key={Math.random()}\n dispatch={this.props.dispatch}\n id={item.id}\n thing={item.label}\n price={item.amount}\n type={item.type}/>\n );\n }\n return itemJsx;\n }\n\n // Switch modal to success view\n checkout(e) {\n this.clicked = true;\n this.props.dispatch(clearValidationErrors());\n\n if((this.props.total) >= 200) {\n Utils.updateModal('cart-confirm', {\n items: this.props.items,\n memos: this.props.memos,\n paymentMethod: this.props.paymentMethod,\n total: this.props.total,\n fee: this.props.fee.totalUserFeeAmount, \n router: this.props.router\n });\n } else {\n this.props.dispatch(checkout(\n this.props.items,\n this.props.memos,\n this.props.paymentMethod,\n this.props.router\n ));\n }\n }\n\n resetPaymentErrors(e) {\n this.props.dispatch(clearValidationErrors());\n }\n\n render() {\n // let deposits = this.getDeposits(this.props.items);\n let deposits = _.filter(this.props.items, item => {\n return item.type === 'deposit';\n });\n\n let fees = _.filter(this.props.items, item => {\n return item.type === 'fee';\n });\n\n let cartEmpty = this.props.items.length === 0;\n\n return (\n <div id=\"cart-body\" className=\"confirm-amount\">\n {\n deposits.length > 0 ?\n <div className=\"subtotal-header dep-header\">\n Cafeteria Account Deposits\n </div> :\n null\n }\n {\n this.createCartItems(deposits)\n }\n {\n fees.length > 0 ?\n <div className=\"subtotal-header fee-header\">\n School Fee Payments\n </div> :\n null\n }\n {this.createCartItems(fees)}\n {\n cartEmpty ?\n <div className=\"empty-text\">Your cart is empty</div> :\n <ReceiptItem thing={\"Fee\"} price={this.props.fee.totalUserFeeAmount} />\n }\n <hr />\n {\n cartEmpty ?\n null :\n <ReceiptItem thing={\"Total\"} price={this.props.total + this.props.fee.totalUserFeeAmount} />\n }\n {\n _.isEmpty(this.props.paymentMethod) ?\n <button className=\"btn-link faux-link\" onClick={this.addPayment}>\n + Add a payment method\n </button> :\n null\n }\n {\n cartEmpty || _.isEmpty(this.props.paymentMethod || this.props.defaultPayment === \"\") || _.isEmpty(this.props.allMethods) ?\n null :\n <div onClick={this.resetPaymentErrors.bind(this)}\n role=\"button\"\n tabIndex=\"-1\"\n aria-hidden=\"true\" >\n <PaymentInfo\n //method={Utils.getPaymentByStripeID(this.props.allMethods, this.props.defaultPayment)}\n method={Utils.getPaymentByStripeID(this.props.allMethods, this.props.paymentMethod)}\n edit={true}\n />\n </div>\n }\n {\n this.props.total < this.props.fee.minDepositAmount && !cartEmpty ?\n <div className=\"mo-money\">\n A ${this.props.fee.minDepositAmount} minimum is required to complete this transaction.\n </div> :\n null\n }\n {\n // TODO Hack: I haven't seen more than one error that the API returns from a checkout.\n // This will work for now. But in a case a multiple errors returned by the API this will only display the first error.\n // Only displaying error message. There are mnore details in the debug info\n _.isEmpty(this.props.validationErrors) ?\n null :\n <div className=\"has-error\">\n {this.props.validationErrors[0].message}\n </div>\n }\n <div className=\"cart-btns\">\n {\n cartEmpty ||\n this.props.total < this.props.fee.minDepositAmount ||\n _.isEmpty(this.props.paymentMethod) ?\n null :\n <div className=\"full-cart\">\n <button\n type=\"button\"\n className=\"btn btn-success btn-block btn-big confirm-button checkout\"\n onClick={this.checkoutMethod.bind(this)}\n disabled={this.props.loading || !_.isEmpty(this.props.validationErrors)}\n >\n {\n this.props.loading ?\n <Loader/> :\n \"Complete Transaction\"\n }\n </button>\n </div>\n }\n <button className=\"btn btn-grey btn-block confirm-button continue-shop\"\n data-dismiss=\"modal\"\n onClick={this.resetPaymentErrors.bind(this)}>\n Continue Shopping\n </button>\n </div>\n </div>\n );\n }\n}\n\n/**\n * List item for the subtotal view.\n * Useful for creating list items programatically.\n */\nclass ReceiptItem extends React.Component {\n constructor(props) {\n super(props);\n this.thingClass = \"thing\";\n this.receiptClass = 'receipt-item';\n\n if (this.props.thing === 'Total') {\n this.thingClass = this.thingClass.concat(' subtotal-header');\n this.receiptClass = this.receiptClass.concat(' lf-item total-item');\n } else if (this.props.thing === 'Fee') {\n this.receiptClass = this.receiptClass.concat(' lf-item fee-text');\n }\n }\n\n removeItem(e) {\n this.props.dispatch(removeFromCart(this.props.id));\n }\n\n render() {\n let tooltipReceipt = \"Your school or school district may choose to subsidize some, all, or none of the costs of providing this convenient service. Alternately, you may pay with cash or check in person at your student’s school at no additional cost to you. Please contact your school or school district for more information.\";\n return (\n <div\n className={this.receiptClass}\n data-uID={this.props.id}\n data-type={this.props.type}\n ref={node => this.item = node}\n >\n <div className={this.thingClass}>\n {this.props.thing}\n {\n this.props.thing === 'Fee' ?\n <ToolTip\n title={tooltipReceipt}\n direction=\"right\"\n /> :\n null\n }\n </div>\n <div className=\"price\">\n ${this.props.price.toFixed(2)}\n {\n this.props.thing === \"Fee\" || this.props.thing === \"Total\" ?\n null :\n <button className=\"btn-link\"\n onClick={this.removeItem.bind(this)}\n aria-label=\"Remove item from cart\"\n >\n <i\n className=\"fa fa-times-circle remove-x\"\n title=\"Remove item from cart\"\n aria-hidden=\"true\"\n >\n </i>\n </button>\n }\n </div>\n </div>\n );\n }\n}\n\nReceiptItem.propTypes = {\n dispatch: PropTypes.func,\n // Fee IDs are strings, deposits are numbers\n id: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string\n ]),\n price: PropTypes.number,\n thing: PropTypes.string,\n type: PropTypes.string\n};\n\n//export default connect(mapStateToProps)(Cart);\nconst cartRouter = withRouter(Cart);\nexport default connect(mapStateToProps)(cartRouter);\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Cart/Cart.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {loadAccount} from '../../actions/PatronsAction.js';\r\n\r\nimport './ExistingAccount.scss';\r\n\r\n/**\r\n * Pre-existing account cards\r\n */\r\nclass ExistingAccount extends React.Component {\r\n handleClick(e) {\r\n //explicitly add focus to capture last focused item\r\n e.currentTarget.focus();\r\n let checkpoint = e.target;\r\n\r\n this.props.dispatch(loadAccount(this.props.account));\r\n document.dispatchEvent(new Event('update-acct-info'));\r\n\r\n if (Utils.isMobile()) {\r\n Utils.updateModal('account');\r\n } else {\r\n document.dispatchEvent(new Event('show-account-info'));\r\n window.scrollTo(0, 0);\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint\r\n }}));\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n className=\"card exist-card\"\r\n data-acct={this.props.account.patronAccountNum}>\r\n <h4 className=\"sr-only\">\r\n {\r\n this.props.account.patrons.length > 1 ?\r\n 'Manage Shared Cafeteria Account for ' + this.props.account.patrons.length + ' students' :\r\n 'Manage Cafeteria Account for ' + this.props.account.patrons[0].fullName\r\n }\r\n </h4>\r\n <div className=\"card-header\">\r\n <button id={Utils.setElementId('existing-acct-' + this.props.account.patronAccountNum)} className=\"btn btn-primary btn-sm pull-right\"\r\n onClick={this.handleClick.bind(this)}>Edit</button>\r\n <div className=\"card-title\">\r\n <h4 role=\"none\">\r\n {\r\n this.props.account.patrons.length > 1 ?\r\n 'Shared Cafeteria Account' :\r\n 'Cafeteria Account'\r\n }\r\n </h4>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n {_.map(this.props.account.patrons, stu => {\r\n return <ExistingStudent\r\n key={stu.patronID}\r\n name={stu.fullName}\r\n school={stu.schoolName}\r\n />;\r\n })}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nExistingAccount.propTypes = {\r\n account: PropTypes.object.isRequired,\r\n dispatch: PropTypes.func.isRequired\r\n};\r\n\r\n/**\r\n * Student contained within existing acccount\r\n */\r\nclass ExistingStudent extends React.Component {\r\n render() {\r\n return (\r\n <div>\r\n <strong>{this.props.name}</strong>\r\n <span> | {this.props.school}</span>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nExistingStudent.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n school: PropTypes.string.isRequired\r\n};\r\n\r\nexport default ExistingAccount;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/ExistingAccount/ExistingAccount.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {removeFromCart, validateFeeDeposit} from '../../actions/CartAction.js';\r\nimport ToolTip from '../../../common/components/ToolTip/ToolTip.jsx';\r\nimport {validationError, clearValidationErrors} from '../../../common/actions/ErrorAction.js';\r\n\r\nimport './FeeCard.scss';\r\n\r\n/**\r\n * Card that contains all the fee controls\r\n */\r\nexport class FeeCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.priced = false;\r\n this.collapseClasses = 'collapse fee-collapse fee-' + this.props.fee.subAccountID;\r\n this.feeID = this.props.fee.subAccountID;\r\n this.hasInvalidAmount = false;\r\n this.noFeeEntered = false;\r\n\r\n if (!this.props.condensed) this.collapseClasses = this.collapseClasses + ' in';\r\n if (this.props.amount) this.priced = true;\r\n }\r\n\r\n componentDidMount() {\r\n $('.fee-field').on(\"transitionend MSTransitionEnd webkitTransitionEnd oTransitionEnd\",\r\n function(e) {\r\n $(this).removeClass('info-missing');\r\n });\r\n\r\n $('.fee-collapse').on('show.bs.collapse', this.animateOpen);\r\n $('.fee-collapse').on('hide.bs.collapse', this.animateClose);\r\n\r\n $(this.memo).on('keyup input', this.resizeTextarea);\r\n }\r\n\r\n componentWillUnmount() {\r\n $('.fee-collapse').on('show.bs.collapse', this.animateOpen);\r\n $('.fee-collapse').on('hide.bs.collapse', this.animateClose);\r\n\r\n $(this.memo).off('keyup input', this.resizeTextarea);\r\n }\r\n\r\n resizeTextarea = () => {\r\n $(this.memo).css('height', 'auto').css('height', this.memo.scrollHeight);\r\n }\r\n\r\n animateOpen(e) {\r\n let $elem = $(e.currentTarget.parentElement);\r\n let $caret = $elem.find('.caret-right');\r\n\r\n // Remove closed classes, add open classes\r\n $caret.removeClass('active-caret-closed').addClass('active-caret-open');\r\n // Rotate 90 deg until further notice\r\n $caret.addClass('fa-rotate-90');\r\n }\r\n\r\n animateClose(e) {\r\n let $elem = $(e.currentTarget.parentElement);\r\n let $caret = $elem.find('.caret-right');\r\n\r\n // Find open arrow, close it\r\n $caret.removeClass('active-caret-open fa-rotate-90').addClass('active-caret-closed');\r\n }\r\n\r\n createLabel(quantity, studentName, label) {\r\n const qty = _.isNull(quantity) ? 0 : Number(quantity);\r\n\r\n if (qty === 0) {\r\n return studentName + ' - ' + label;\r\n }\r\n\r\n return studentName + ' - ' + qty + ' ' + label;\r\n }\r\n\r\n /**\r\n * validate fee amount and update UI gracefully\r\n * we could use refs here but will leave it for now\r\n * @param {*} students Student section DOM\r\n * @param {*} card Fee card DOM\r\n */\r\n validateFeeAmount(students, card) {\r\n this.props.dispatch(clearValidationErrors());\r\n for (let student of students) {\r\n let amount = student.querySelector('.fee-input').value;\r\n\r\n if (Utils.isInValidAmount(amount) && amount !== '') {\r\n this.hasInvalidAmount = true;\r\n\r\n this.props.dispatch(validationError([{\r\n errorCode: \"InvalidFeeAmount\",\r\n errorMessage: \"Each amount must be between $1.00 and $50,000.00\"\r\n }]));\r\n break;\r\n } else if (amount !== '') {\r\n this.noFeeEntered = false;\r\n }\r\n }\r\n\r\n if(this.hasInvalidAmount) {\r\n const fields = card.find('.fee-field');\r\n fields.addClass('info-missing');\r\n fields.one('webkitAnimationEnd oanimationend msAnimationEnd animationend',\r\n function(e) {\r\n fields.removeClass('info-missing');\r\n }\r\n );\r\n }\r\n\r\n this.forceUpdate();\r\n }\r\n\r\n validateFeeDeposits(students, card, memo) {\r\n let feeItem = {\r\n checkingAccountID: this.props.fee.checkingAccountID,\r\n subAccountID: this.props.fee.subAccountID,\r\n patronDeposits: [],\r\n cartItems: []\r\n };\r\n\r\n for (let student of students) {\r\n let amount = student.querySelector('.fee-input').value;\r\n if (!amount) continue;\r\n\r\n let name = student.querySelector('.fee-student').textContent;\r\n let label = card.find('.fee-title').text();\r\n let uID = this.feeID + '.' + student.dataset.patronid;\r\n let $selector = student.querySelector('.fee-qty');\r\n let quantity = $selector === null ? '' : $selector.selectedOptions[0].value;\r\n\r\n let item = {\r\n type: \"fee\",\r\n amount: Number(amount),\r\n checkingAccountID: this.props.fee.checkingAccountID,\r\n patronID: Number(student.dataset.patronid),\r\n subAccountID: this.props.fee.subAccountID,\r\n patronAccountNum: Number(student.dataset.acctid), // Need this for deleting by account\r\n id: uID,\r\n label: this.createLabel(quantity, name, label),\r\n priceEach: this.props.fee.priceEach,\r\n quantity: _.isEmpty(quantity) ? null : Number(quantity)\r\n };\r\n\r\n if (Number(amount) === 0) {\r\n this.props.dispatch(removeFromCart(uID));\r\n continue;\r\n } else {\r\n feeItem.patronDeposits.push({\r\n patronID: student.dataset.patronid,\r\n depositAmount: Number(amount)\r\n });\r\n\r\n feeItem.cartItems.push(item);\r\n }\r\n }\r\n\r\n this.props.dispatch(validateFeeDeposit(feeItem, this.props.router, this.props.dispatch, memo));\r\n }\r\n\r\n /**\r\n * This could use some refactoring if performance is becoming an issue\r\n * @param {event} e Firing event\r\n */\r\n addSchoolFeeToCart(e) {\r\n this.hasInvalidAmount = false;\r\n this.noFeeEntered = true;\r\n\r\n const $card = $(e.currentTarget).parents('.fee-card');\r\n let $students = $card.find('.student-fee');\r\n\r\n this.validateFeeAmount($students, $card);\r\n\r\n if(!this.hasInvalidAmount && !this.noFeeEntered) {\r\n let $memo = {\r\n id: this.props.fee.subAccountID,\r\n body: \"\"\r\n };\r\n\r\n if (this.props.fee.showMemo) {\r\n $memo = {\r\n id: this.props.fee.subAccountID,\r\n body: this.memo.value\r\n };\r\n }\r\n this.validateFeeDeposits($students, $card, $memo);\r\n }\r\n }\r\n\r\n render() {\r\n let isDistrict = _.isNull(this.props.fee.schoolLocationID);\r\n let feeLocale = isDistrict ? this.props.fee.districtName : this.props.fee.schoolName;\r\n let descriptionArray = Utils.stringToArray(this.props.fee.feeDescription, /\\n/g);\r\n let i = 0;\r\n return (\r\n <div\r\n className=\"card fee-card card-swap-padding\"\r\n data-amount={this.props.amount}\r\n data-feeid={this.props.fee.subAccountID}\r\n >\r\n <h4 className=\"sr-only\">{\"Fee: \" + this.props.fee.feeName + \" for \" + feeLocale}</h4>\r\n <button\r\n className=\"fee-button dropdown\"\r\n data-toggle=\"collapse\"\r\n data-target={\".fee-\" + this.props.fee.subAccountID}\r\n >\r\n <div className=\"card-header\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right balance-caret\"></i>\r\n <h4 className=\"card-title fee-title\">{this.props.fee.feeName}</h4>\r\n <div className=\"fee-school text-muted\">{feeLocale}</div>\r\n </div>\r\n </button>\r\n\r\n <div className={this.collapseClasses} ref={collapse => this.collapse = collapse} role=\"tabpanel\">\r\n <hr />\r\n {\r\n _.map(descriptionArray, desc => {\r\n i++;\r\n return <small className=\"fee-des\" key={this.props.fee.feeName + i.toString()}>{desc}<br/></small>;\r\n })\r\n }\r\n <div className=\"card-block\">\r\n {this.props.feePatrons}\r\n { this.hasInvalidAmount ? <div className=\"small error-text-fees\">Each amount must be between $1.00 and $50,000.00</div> : null}\r\n {\r\n this.props.fee.showMemo ?\r\n <textarea\r\n rows=\"1\"\r\n defaultValue={\r\n _.isEmpty(this.props.existingMemo) ?\r\n '' :\r\n this.props.existingMemo.body\r\n }\r\n placeholder={\"Note to \" + (isDistrict ? \"District\" : \"School\") + \" (Optional)\"}\r\n ref={node => this.memo = node}\r\n ></textarea> :\r\n null\r\n }\r\n </div>\r\n <div className=\"card-footer\">\r\n <button\r\n onClick={this.addSchoolFeeToCart.bind(this)}\r\n className=\"btn btn-success\"\r\n >\r\n {\r\n this.props.inCart ?\r\n 'Update Cart' :\r\n 'Add to Cart'\r\n }\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nFeeCard.propTypes = {\r\n amount: PropTypes.number,\r\n condensed: PropTypes.bool.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n existingMemo: PropTypes.object,\r\n fee: PropTypes.object.isRequired,\r\n feePatrons: PropTypes.array.isRequired,\r\n inCart: PropTypes.bool,\r\n router: PropTypes.object\r\n};\r\n\r\n/**\r\n * Input for fee total for each student\r\n */\r\nexport class StudentInput extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n this.quantity = '0';\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if(this.props.inCart !== nextProps.inCart) {\r\n this.feeAmount.value = _.isNumber(nextProps.inCart) ? nextProps.inCart.toFixed(2) : '';\r\n\r\n if(nextProps.quantity) {\r\n this.quantity = _.isNumber(nextProps.inCart) ? (nextProps.inCart / nextProps.amount) : '0';\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n let amount;\r\n let qty;\r\n if (this.props.inCart) {\r\n amount = this.props.inCart.toFixed(2);\r\n qty = Number(this.props.inCart) / this.props.amount;\r\n } else {\r\n amount = '';\r\n qty = 0;\r\n }\r\n if (_.isNumber(this.props.amount)) {\r\n this.quantity = qty;\r\n }\r\n this.feeAmount.value = amount;\r\n }\r\n\r\n componentDidUpdate() {\r\n if( this.qtyDropdown != null && this.qtyDropdown.value !== this.quantity) {\r\n this.qtyDropdown.value = this.quantity;\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n updateSubtotal(e) {\r\n let selection = e.currentTarget.selectedOptions[0].value;\r\n let subtotal = Number(selection) * this.props.amount;\r\n\r\n this.feeAmount.value = subtotal.toFixed(2);\r\n this.quantity = selection;\r\n }\r\n\r\n // Lets the user continue to update the amount on non-priced fees\r\n onChange(e) {\r\n if (this._isMounted) {\r\n Utils.moneyOnly(e);\r\n }\r\n }\r\n\r\n render() {\r\n this.quantity = _.isNumber(this.props.inCart) ? (this.props.inCart / this.props.amount) : '0';\r\n return (\r\n <div\r\n className=\"student-fee\"\r\n data-acctID={this.props.acctID}\r\n data-patronID={this.props.patronID}\r\n ref={node => this.node = node}\r\n >\r\n {\r\n this.props.isInActiveMpower ?\r\n <div className=\"fee-student font-italic text-muted\">{this.props.name + \" (Inactive)\"}</div> :\r\n <div className=\"fee-student\">{this.props.name}</div>\r\n }\r\n <div className=\"pull-right amt-select\">\r\n {\r\n this.props.isInActiveMpower ?\r\n <ToolTip\r\n toolTipClassName={\"fa fa-question-circle-o icon-right\"}\r\n title={`Fees paid for students with an enrollment status of \"inactive\" will still reach \r\n their school. Please contact the school regarding your student's enrollment status.`}\r\n direction=\"bottom\"\r\n /> :\r\n null\r\n }\r\n {\r\n _.isNumber(this.props.amount) ?\r\n <div className=\"qty\">\r\n <label\r\n htmlFor=\"qtySelect\">QTY:\r\n </label>\r\n <select\r\n id=\"qtySelect\"\r\n ref={node => this.qtyDropdown = node}\r\n className=\"btn btn-secondary btn-sm fee-qty form-control-sm a\"\r\n onChangeCapture={this.updateSubtotal.bind(this)}\r\n defaultValue={this.quantity}\r\n >\r\n {\r\n _.map([...Array(this.props.quantity + 1).keys()], num => {\r\n return <option\r\n key = {num}\r\n className = \"dropdown-item\"\r\n value = {num}\r\n >{num}\r\n </option>;\r\n })\r\n }\r\n </select>\r\n </div> :\r\n null\r\n }\r\n <div className=\"input-group input-group-sm fee-field\">\r\n <span className=\"input-group-addon\">$</span>\r\n <input\r\n type=\"text\"\r\n className=\"form-control fee-input dollar-input\"\r\n step=\"any\"\r\n disabled={_.isNumber(this.props.amount)}\r\n defaultValue={_.isNumber(this.props.inCart) ? this.props.inCart.toFixed(2) : ''}\r\n onChange={this.onChange.bind(this)}\r\n onBlur={Utils.normalizeInput}\r\n ref={node => this.feeAmount = node}\r\n />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nStudentInput.propTypes = {\r\n acctID: PropTypes.number.isRequired,\r\n amount: PropTypes.number,\r\n inCart: PropTypes.number,\r\n isInActiveMpower: PropTypes.bool,\r\n name: PropTypes.string.isRequired,\r\n patronID: PropTypes.number.isRequired,\r\n quantity: PropTypes.number\r\n};\r\n\r\nexport default FeeCard;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/FeeCard/FeeCard.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport './FeeInfo.scss';\r\n\r\nclass FeeInfo extends React.Component {\r\n render() {\r\n return (\r\n <div id=\"fee-info\" className=\"card\">\r\n <h3>Fees Paid</h3>\r\n <FeeTable fees={this.props.feesPaid}/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nFeeInfo.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n feesPaid: PropTypes.array.isRequired\r\n};\r\n\r\nclass FeeTable extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"table-responsive\">\r\n <table className=\"table table-striped table-body\" >\r\n <thead className=\"table-header\">\r\n <tr>\r\n <th className=\"fb\" scope=\"col\">Date</th>\r\n <th className=\"fc\" scope=\"col\">Fee</th>\r\n <th className=\"fd\" scope=\"col\">Amount</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {\r\n _.map(this.props.fees, fee => {\r\n return <FeeTR\r\n key={fee.depositDetailID}\r\n fee={fee}\r\n />;\r\n })\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nFeeTable.propTypes = {\r\n fees: PropTypes.array.isRequired\r\n};\r\n\r\nclass FeeTR extends React.Component {\r\n render() {\r\n let fee = this.props.fee;\r\n let feeDate = Utils.convertFromDatetime(fee.transDateTime);\r\n return (\r\n <tr>\r\n <td className=\"fb\">{Utils.dateFormat(feeDate, false)} <small className=\"text-nowrap\">{Utils.timeFormat(feeDate)}</small></td>\r\n <td className=\"fc\">{Utils.formatSchoolFeeLabels('fee', fee)} - <small className=\"text-muted\">{fee.patronNames}</small></td>\r\n <td className=\"fd\">${fee.depositAmount.toFixed(2)}</td>\r\n </tr>\r\n );\r\n }\r\n}\r\n\r\nFeeTR.propTypes = {\r\n fee: PropTypes.object.isRequired\r\n};\r\n\r\nexport default FeeInfo;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/FeeInfo/FeeInfo.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst checkedProps = [\r\n 'tag',\r\n 'isEnabled',\r\n 'focalPointId',\r\n 'triggerElement',\r\n 'focusOn',\r\n 'persistFocus',\r\n\r\n 'callback',\r\n 'event',\r\n 'restore',\r\n 'checkpoints',\r\n 'trapEnabled'\r\n];\r\n\r\nclass FocusRover extends React.Component {\r\n static defaultProps = {\r\n tag: 'div',\r\n isEnabled: false,\r\n focalPointId: null,\r\n triggerElement: null,\r\n focusOn: '',\r\n persistFocus: false,\r\n\r\n callback: null,\r\n event: null,\r\n restore: false,\r\n checkpoints: [],\r\n trapEnabled: false\r\n };\r\n\r\n static propTypes = {\r\n children: PropTypes.array.isRequired,\r\n tag: PropTypes.string.isRequired,\r\n isEnabled: PropTypes.bool.isRequired,\r\n focalPointId: PropTypes.string.isRequired,\r\n triggerElement: PropTypes.object,\r\n focusOn: PropTypes.string.isRequired,\r\n persistFocus: PropTypes.bool.isRequired,\r\n\r\n callback: PropTypes.func,\r\n event: PropTypes.object,\r\n restore: PropTypes.bool,\r\n checkpoints: PropTypes.array,\r\n trapEnabled: PropTypes.bool\r\n }\r\n\r\n setNode = el => {\r\n this.node = el;\r\n };\r\n\r\n componentWillMount() {\r\n if (typeof document !== 'undefined') {\r\n this.isEnabled = this.props.isEnabled;\r\n this.focalPointId = this.props.focalPointId;\r\n this.checkpoints = this.props.checkpoints;\r\n this.trapEnabled = this.props.trapEnabled;\r\n this.focusOn = this.props.focusOn;\r\n this.persistFocus = this.props.persistFocus;\r\n this.triggerElement = this.props.triggerElement;\r\n }\r\n\r\n this.preventScroll = false;\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n //focal point handle\r\n if(this.props.isEnabled && this.props.focusOn === 'focalpoint') {\r\n this.preventScroll = true;\r\n if(this.props.persistFocus) {\r\n this.focusOnFocalPoint();\r\n return;\r\n }\r\n\r\n if(prevProps.triggerElement !== this.props.triggerElement) {\r\n this.focusOnFocalPoint();\r\n return;\r\n }\r\n\r\n if(this.props.triggerElement === document.activeElement) {\r\n this.focusOnFocalPoint();\r\n return;\r\n }\r\n }\r\n\r\n //check point handle\r\n if(!this.props.isEnabled && this.props.restore && this.props.focusOn === 'checkpoints') {\r\n this.preventScroll = false;\r\n this.restoreCheckpoint();\r\n }\r\n\r\n //shift tab handle\r\n if(!this.props.isEnabled && this.props.focusOn === 'keydown-custom') {\r\n this.preventScroll = false;\r\n if(typeof this.props.callback === 'function') {\r\n this.props.callback();\r\n return;\r\n }\r\n this.restoreTrigger();\r\n }\r\n }\r\n\r\n focusOnFocalPoint() {\r\n this.focusRover(this.props.focalPointId);\r\n }\r\n\r\n restoreCheckpoint() {\r\n for(let i = (this.props.checkpoints.length - 1); i >= 0; i--) {\r\n let element = this.props.checkpoints[i];\r\n\r\n if(element.id) {\r\n if(this.focusRover(element.id)) {\r\n break;\r\n }\r\n }\r\n\r\n if(element &&\r\n $(element).is(\":visible\") &&\r\n typeof element.focus === 'function') {\r\n element.focus({preventScroll: this.preventScroll});\r\n break;\r\n }\r\n }\r\n }\r\n\r\n focusRover(elementId) {\r\n let element = document.getElementById(elementId);\r\n if(element && $(element).is(\":visible\")) {\r\n if(typeof element.focus === 'function') {\r\n element.focus({preventScroll: this.preventScroll});\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n restoreTrigger() {\r\n let focalPoint = document.getElementById(this.props.focalPointId);\r\n let focalPointFirstElement = this.getFocusableFirstElement(this.props.focalPointId.replace('dummy-', ''));\r\n\r\n if(document.activeElement === focalPointFirstElement || document.activeElement === focalPoint) {\r\n if(this.props.triggerElement.id) {\r\n if(this.focusRover(this.props.triggerElement.id)) {\r\n this.props.event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n if($(this.props.triggerElement).is(\":visible\")) {\r\n this.props.event.preventDefault();\r\n this.props.triggerElement.focus();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n getFocusableFirstElement(focalPointId) {\r\n let $container = document.getElementById(focalPointId);\r\n if(_.isUndefined($container) || _.isNull($container)) return null;\r\n let focusables = $container.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\r\n return(focusables[0]);\r\n }\r\n\r\n render() {\r\n const elementProps = {\r\n ref: this.setNode\r\n };\r\n\r\n for (const prop in this.props) {\r\n if (!this.props.hasOwnProperty(prop)) continue;\r\n if (checkedProps.indexOf(prop) !== -1) continue;\r\n elementProps[prop] = this.props[prop];\r\n }\r\n\r\n return React.createElement(\r\n this.props.tag,\r\n elementProps,\r\n this.props.children\r\n );\r\n }\r\n}\r\n\r\nmodule.exports = FocusRover;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/FocusRover/FocusRover.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Link, withRouter} from 'react-router';\nimport Loader from '../Loader/Loader.jsx';\nimport {requestSignIn, pinSignIn} from '../../actions/AuthAction.js';\nimport {clearAllErrors, validationError} from '../../actions/ErrorAction.js';\nimport {updateRemember} from '../../actions/RememberAction';\nimport {verifyBiometric} from '../../js/Biometry.js';\nimport CoppaUtils from '../../../common/js/coppa.js';\nimport {isFreshInstall} from '../../js/MobileAppData.js';\n\nimport './MobileLogin.scss';\n\n// Mobile login component. Will not show on desktop.\nclass MobileLogin extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n checkingForPrint: false,\n isApp: false,\n fingerAuthCanceled: false\n };\n }\n\n componentWillMount() {\n this.debounceSignIn = _.debounce(elements => {\n if (this.props.loading) return false;\n this.props.dispatch(clearAllErrors());\n const username = elements.mobileUsername.value;\n const password = elements.mobilePassword.value;\n const remember = elements.mobileRemember.checked;\n const birthdate = '';\n \n if (remember) {\n this.props.dispatch(updateRemember(username));\n } else {\n this.props.dispatch(updateRemember(null));\n }\n \n if (username === '' || password === '') {\n let errors = [];\n if (username === '') {\n errors.push({\n errorCode: 'UsernameRequired',\n errorMessage: 'Username is required.'\n });\n }\n if (password === '') {\n errors.push({\n errorCode: 'CredentialsPasswordRequired',\n errorMessage: 'Password is required.'\n });\n }\n if (!_.isEmpty(errors)) this.props.dispatch(validationError(errors));\n } else {\n this.props.dispatch(requestSignIn(username, password, birthdate, remember));\n }\n return false;\n }, 500);\n\n if(this.state.checkingForPrint) {\n this.setState({\n checkingForPrint: false,\n isApp: false,\n fingerAuthCanceled: false\n });\n } else {\n this.setState({\n isApp: Utils.isApp()\n });\n }\n }\n\n componentDidMount() {\n if (this.props.forgot && (Utils.isMobile() || Utils.isApp())) {\n this.props.router.push('/forgot');\n } else if (this.state.isApp) {\n //check if app is a new install\n (async () => {\n try {\n await isFreshInstall()\n .then(res => {\n if(res) {\n return;\n } else {\n this.checkBiometry();\n }\n });\n } catch(error) {\n console.warn({'context': 'componentDidMount', error: error})}\n })();\n }\n }\n\n componentWillUnmount() {\n this.state = {\n checkingForPrint: false,\n isApp: false,\n fingerAuthCanceled: false\n };\n }\n\n togglePass(e) {\n let group = e.currentTarget.parentElement;\n let input = group.querySelector('input');\n\n if (input.type === 'password') {\n input.type = 'text';\n } else if (input.type === 'text') {\n input.type = 'password';\n }\n }\n\n requestLogin(e) {\n e.preventDefault();\n e.persist();\n this.debounceSignIn(e.currentTarget.elements);\n }\n\n checkBiometry = (e) => {\n if(!this.state.checkingForPrint && !this.state.fingerAuthCanceled && Utils.getReauthDialog().status === 0) {\n this.setState({\n checkingForPrint: true,\n fingerAuthCanceled: false\n });\n //check if biometry is available\n (async () => {\n try {\n const verified = await verifyBiometric('Sign in for \"My MealTime\"', 'Sign in to profile masked-username', this.props.persistedUserID);\n\n if(verified) {\n const biometryData = JSON.parse(verified.password);\n const authHash = Utils.createHmacSHA1(String(biometryData.persistedUserID), biometryData.key);\n const persist = (this.remember ? this.remember.checked : _.isString(this.props.persistedUsername));\n this.props.dispatch(pinSignIn(authHash.toString(), biometryData.pinToken, persist, false));\n this.setState({\n checkingForPrint: false,\n fingerAuthCanceled: true\n });\n } else {\n this.setState({\n checkingForPrint: false,\n fingerAuthCanceled: true\n });\n }\n } catch(error) {\n console.warn({'context': 'checkBiometry', error: error})}\n })();\n }\n }\n\n requestRegister(e) {\n e.preventDefault();\n\n this.props.dispatch(clearAllErrors());\n\n if(CoppaUtils.coppafyNewUser(this.props.userCoppa)) {\n Utils.updateModal('coppa', {\n configData: \"\"\n });\n }\n return false;\n }\n\n render() {\n const wrapperHasError = !_.isUndefined(this.props.error.username) || !_.isUndefined(this.props.error.authError);\n return (\n <div className={Utils.isApp() ? \"mobile\" : \"hidden-lg-up mobile\"}>\n <img\n id=\"mt-logo-mobile\"\n src=\"img/MyMealTime_Logo_900x320.svg\"\n alt=\"MyMealTime\"\n style={{width: '100%'}}\n />\n <form onSubmit={this.requestLogin.bind(this)}>\n <div className={\"input-wrapper\" + (wrapperHasError ? ' input-wrapper-has-danger' : '')}>\n <div className={\"form-group sign-in\" + (_.isUndefined(this.props.error.username) ? '' : ' has-danger')}>\n <label\n htmlFor=\"mobileUsername\"\n className=\"ghost\"\n >\n Username\n </label>\n <div className=\"input-group\">\n <input\n key={this.props.persistedUsername}\n type=\"text\"\n id=\"mobileUsername\"\n className=\"form-control\"\n placeholder=\" Username\"\n style={{fontFamily: 'FontAwesome'}}\n aria-label=\"username\"\n defaultValue={this.props.persistedUsername}\n aria-invalid={!_.isEmpty(this.props.error.username)}\n aria-required=\"true\"\n />\n </div>\n {\n _.isEmpty(this.props.error.username) ?\n null :\n <div className=\"form-control-feedback small has-danger\">\n {this.props.error.username}\n </div>\n }\n </div>\n <div className={\"form-group sign-in\" + (_.isUndefined(this.props.error.authError) ? '' : ' has-danger')}>\n <label\n htmlFor=\"mobilePassword\"\n className=\"ghost\"\n >\n Password\n </label>\n <div className=\"input-group\">\n <input\n type=\"password\"\n id=\"mobilePassword\"\n className=\"form-control pass-inp\"\n placeholder=\" Password\"\n style={{fontFamily: 'FontAwesome'}}\n aria-label=\"password\"\n aria-invalid={!_.isEmpty(this.props.error.authError)}\n aria-required=\"true\"\n />\n <button\n type=\"button\"\n className=\"input-group-addon see-pass\"\n title=\"View password\"\n onClick={this.togglePass.bind(this)}\n >\n <i className=\"fa fa-eye\" aria-hidden=\"true\"></i>\n </button>\n </div>\n {\n _.isEmpty(this.props.error.authError) ?\n null :\n <div className=\"form-control-feedback small has-danger\">\n {this.props.error.authError}\n </div>\n }\n </div>\n </div>\n <div className=\"form-check rem-form\">\n <label className=\"form-check-label\" htmlFor=\"mobileRemember\">\n <input\n key={this.props.persistedUsername}\n id=\"mobileRemember\"\n className=\"form-check-input remember\"\n type=\"checkbox\"\n ref={node => this.remember = node}\n defaultChecked={_.isString(this.props.persistedUsername)}\n />\n Remember me\n </label>\n </div>\n <div className=\"login-text fp\">\n <Link to=\"/forgot\">\n Forgot your username or password?\n </Link>\n </div>\n <button className=\"btn btn-success btn-block sign-in sign-in-wcag\"\n type=\"submit\">\n {this.props.loading ? <Loader/> : \"Sign In\"}\n </button>\n </form>\n <div className=\"login-text register\">\n <a\n tabIndex=\"0\"\n onClick={this.requestRegister.bind(this)}\n onKeyDown={Utils.accessibleEnterKey}\n >\n Register a new account\n </a>\n </div>\n {\n Utils.isAndroid() && !Utils.isApp() ?\n <div className=\"app-store\">\n <a href=\"https://play.google.com/store/apps/details?id=com.mealtime.mto.parent\" target=\"_blank\" rel=\"noreferrer\">\n <img src=\"img/Get_it_on_Google_play.svg\" alt=\"Get it on Google Play\"></img></a>\n </div> :\n null\n }\n </div>\n );\n }\n}\n\nMobileLogin.propTypes = {\n dispatch: PropTypes.func.isRequired,\n error: PropTypes.object.isRequired,\n loading: PropTypes.bool.isRequired,\n userCoppa: PropTypes.object.isRequired,\n coppaLoading: PropTypes.bool.isRequired,\n persistedUsername: PropTypes.string,\n persistedUserID: PropTypes.number,\n forgot: PropTypes.bool,\n router: PropTypes.object\n};\n\nexport default withRouter(MobileLogin);\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/MobileLogin/MobileLogin.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport {\r\n authorizeeCheck\r\n} from '../../../actions/TransAction.js';\r\nimport './ACHValidation.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n defaultPayment: store.trans.defaultPayment,\r\n loading: store.trans.loading,\r\n methodsAvailable: store.trans.methods,\r\n patrons: store.patrons.patrons,\r\n paymentDeleted: store.trans.paymentDeleted,\r\n paymentSaved: store.trans.paymentSaved,\r\n subLoading: store.sub.loading,\r\n validationErrors: store.error.validationErrors\r\n };\r\n};\r\n\r\nclass ACHValidation extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.stripeECheck = props.stripeECheck;\r\n this.deposit1 = props.deposit1;\r\n this.deposit2 = props.deposit2;\r\n\r\n }\r\n\r\n enableButton(e) {\r\n this.accept.disabled = !e.currentTarget.checked;\r\n }\r\n\r\n acceptAuth(e) {\r\n // Send eCheck info via redux\r\n this.props.dispatch(authorizeeCheck({\r\n 'stripeECheck': this.stripeECheck,\r\n 'deposit1': this.deposit1,\r\n 'deposit2': this.deposit2\r\n }));\r\n\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n decline(e) {\r\n // Open 'AreYouSure' modal\r\n Utils.updateModal('areYouSure', {\r\n msg: 'Are you sure you want to cancel your eCheck application?'\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"verification-body\">\r\n <label htmlFor=\"\">\r\n <input type=\"checkbox\" className=\"inp-buf\" onChange={this.enableButton.bind(this)}/>\r\n I authorize The CLM Group, Inc. to electronically debit my checking account on behalf of my child's school or school district and, if necessary, electronically credit my account to correct erroneous debits.\r\n </label>\r\n <button\r\n className=\"btn btn-danger expand-btn pull-right\"\r\n onClick={this.decline}\r\n >\r\n Decline\r\n </button>\r\n <button\r\n className=\"btn btn-success expand-btn pull-right\"\r\n ref={node => this.accept = node}\r\n onClick={this.acceptAuth.bind(this)}\r\n >\r\n Accept\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n//export default ACHValidation;\r\nexport default connect(mapStateToProps)(ACHValidation);\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/ACHValidation/ACHValidation.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport './AreYouSure.scss';\r\n\r\nclass AreYouSure extends React.Component {\r\n no(e) {\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n yes(e) {\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n <div id=\"are-you-sure-body\">\r\n <div className=\"generic-msg\">\r\n {this.props.msg}\r\n </div>\r\n <button\r\n className=\"btn btn-danger expand-btn pull-right\"\r\n onClick={this.no}\r\n >\r\n No\r\n </button>\r\n <button\r\n className=\"btn btn-success expand-btn pull-right\"\r\n onClick={this.yes}\r\n >\r\n Yes\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default AreYouSure;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/AreYouSure/AreYouSure.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport Loader from '../../../../common/components/Loader/Loader.jsx';\r\nimport {checkout} from '../../../actions/CartAction.js';\r\n\r\n//import './CartConfirmation.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n loading: store.cart.loading\r\n };\r\n};\r\n\r\nclass CartConfirmation extends React.Component {\r\n\r\n cancel(e) {\r\n Utils.updateModal('cart');\r\n }\r\n\r\n confirm(e) {\r\n this.props.dispatch(checkout(\r\n this.props.items,\r\n this.props.memos,\r\n this.props.paymentMethod,\r\n this.props.router\r\n ));\r\n\r\n Utils.updateModal('cart');\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n <div id=\"are-you-sure-body\">\r\n <div className=\"generic-msg text-left\">\r\n {\"$\"+(this.props.total + this.props.fee).toFixed(2) + \" will be deducted from your payment method upon confirmation. Are you ready to complete this transaction?\"}\r\n </div>\r\n <button\r\n className=\"btn btn-success btn-block confirm-button\"\r\n onClick={this.confirm.bind(this)}\r\n >\r\n {\r\n this.props.loading ?\r\n <Loader/> :\r\n \"Complete Transaction\"\r\n }\r\n </button>\r\n <button\r\n className=\"btn btn-grey btn-block\"\r\n onClick={this.cancel.bind(this)}\r\n >\r\n {\r\n \"Cancel\"\r\n }\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(CartConfirmation);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/CartConfirmation/CartConfirmation.jsx","import React from 'react';\r\n\r\nimport './CheckValidation.scss';\r\n\r\nclass CheckValidation extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.stripeECheck = props.stripeECheck || null;\r\n }\r\n\r\n showAuthorize(e) {\r\n let dep1 = document.getElementById('deposit1');\r\n let dep2 = document.getElementById('deposit2');\r\n Utils.updateModal('ach', {\r\n stripeECheck: this.stripeECheck,\r\n deposit1: dep1.value,\r\n deposit2: dep2.value\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"check-validation\">\r\n Enter the two values deposited into your account.\r\n <div className=\"check-values\">\r\n <div\r\n className=\"input-group\"\r\n >\r\n <span className=\"input-group-addon\">$</span>\r\n <input\r\n type=\"text\"\r\n ref={(input) => {this.textInput = input; }}\r\n id=\"deposit1\"\r\n className=\"form-control amount-form\"\r\n placeholder=\"Deposit 1\"\r\n />\r\n </div>\r\n\r\n <div\r\n className=\"input-group\"\r\n >\r\n <span className=\"input-group-addon\">$</span>\r\n <input\r\n type=\"text\"\r\n id=\"deposit2\"\r\n className=\"form-control amount-form\"\r\n placeholder=\"Deposit 2\"\r\n />\r\n </div>\r\n </div>\r\n <button\r\n className=\"btn btn-success btn-block confirm-button\"\r\n onClick={this.showAuthorize.bind(this)}\r\n >\r\n OK\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default CheckValidation;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/CheckValidation/CheckValidation.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport './Confirmation.scss';\r\n\r\nclass Success extends React.Component {\r\n componentDidMount() {\r\n if (this.props.timeout) {\r\n let timeoutFunction = this.props.timeoutCallback || function() {\r\n $('.gen-modal').modal('hide');\r\n };\r\n this.timeout = setTimeout(() => {\r\n timeoutFunction();\r\n }, this.props.timeout);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n // Make sure timeout doesn't run if already closed\r\n clearTimeout(this.timeout);\r\n }\r\n\r\n dismissModal(e) {\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n render() {\r\n const clickHandler = this.props.clickHandler || this.dismissModal;\r\n return (\r\n <div id=\"success-body\" role=\"alert\">\r\n <div className=\"confirm-text\">\r\n {this.props.msg ? this.props.msg : 'Slam dunk!'}\r\n </div>\r\n {\r\n this.props.context === 'inActiveMPowerStudent' ?\r\n <span className=\"text-muted small\">\r\n <p>Please contact the school regarding your student's enrollment status.</p>\r\n </span> :\r\n null\r\n }\r\n {\r\n _.isUndefined(this.props.clickHandler) ?\r\n <button\r\n className=\"btn btn-success btn-block confirm-button\"\r\n onClick={clickHandler}\r\n data-dismiss=\"modal\">\r\n {this.props.okTitle ? this.props.okTitle : 'OK'}\r\n </button> :\r\n <button\r\n className=\"btn btn-success btn-block confirm-button\"\r\n onClick={clickHandler}>\r\n {this.props.okTitle ? this.props.okTitle : 'OK'}\r\n </button>\r\n }\r\n {\r\n this.props.cancelable ?\r\n <button\r\n className=\"btn btn-grey btn-block\"\r\n data-dismiss=\"modal\"\r\n >\r\n {this.props.cancelTitle ? this.props.cancelTitle : 'Cancel'}\r\n </button> :\r\n null\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSuccess.propTypes = {\r\n cancelable: PropTypes.bool,\r\n clickHandler: PropTypes.func,\r\n msg: PropTypes.string.isRequired,\r\n timeout: PropTypes.number,\r\n timeoutCallback: PropTypes.func,\r\n okTitle: PropTypes.string,\r\n cancelTitle: PropTypes.string,\r\n context: PropTypes.string\r\n};\r\n\r\nexport default Success;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/Confirmation/Confirmation.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {withRouter, Link} from 'react-router';\r\n//import Loader from '../../Loader/Loader.jsx';\r\nimport {validateCoppaDOB, requestSignIn} from '../../../actions/AuthAction.js';\r\nimport ToolTip from '../../../components/ToolTip/ToolTip.jsx';\r\nimport {validationError, clearValidationErrors} from '../../../actions/ErrorAction.js';\r\n\r\nimport './CoppaValidation.scss';\r\nimport Months from './months.json';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n userCoppa: store.auth.userCoppa\r\n };\r\n};\r\n\r\nclass CoppaValidation extends React.Component {\r\n static propTypes = {\r\n configData: PropTypes.string,\r\n dispatch: PropTypes.func,\r\n router: PropTypes.object\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.configData = this.props.configData;\r\n this.months = _.map(Months, (month, stringId) => {\r\n if(month === \"MM\") {\r\n return <option key={stringId}\r\n hidden={true}\r\n value={month}\r\n >{month}</option>;\r\n }\r\n return <option key={stringId}\r\n value={month}\r\n >{month}</option>;\r\n });\r\n this.dob = {\r\n dobString: undefined,\r\n dobDateObj: undefined,\r\n hasError: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let mm = document.getElementById('okButton');\r\n mm.disabled = true;\r\n }\r\n\r\n componentWillUnmount() {\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n getDays() {\r\n let days = [];\r\n let max = 31;\r\n\r\n days.push(<option key={\"0\"}\r\n value={\"DD\"}\r\n hidden={true}\r\n >{\"DD\"}</option>);\r\n\r\n for(let i = 1; i <= max; i++) {\r\n let date = i;\r\n if(i < 10) date = '0' + date;\r\n\r\n days.push(<option key={date}\r\n value={date}\r\n >{date}</option>);\r\n }\r\n return days;\r\n }\r\n\r\n getYears() {\r\n let currentYear = (new Date()).getFullYear();\r\n\r\n let years = [];\r\n let max = 100;\r\n\r\n years.push(<option key={0}\r\n value={\"YYYY\"}\r\n hidden={true}\r\n >{\"YYYY\"}</option>);\r\n\r\n for(let i = 0; i <= max; i++) {\r\n let oldYear = currentYear - i;\r\n years.push(<option key={oldYear}\r\n value={oldYear}\r\n >{oldYear}</option>);\r\n }\r\n\r\n return years;\r\n }\r\n\r\n enableButton(e) {\r\n if(this.dob.dobString !== undefined) {\r\n this.ok.disabled = !e.currentTarget.checked;\r\n }\r\n }\r\n\r\n onBlurHandler(e) {\r\n this.checkSelectedDOB();\r\n }\r\n\r\n onChangeHandler(e) {\r\n this.ok.disabled = true;\r\n this.agreedCheckbox.checked = false;\r\n }\r\n\r\n cancelCoppa(e) {\r\n this.yearsDropdown.value = 'YYYY';\r\n this.monthDropdown.value = 'MM';\r\n this.daysDropdown.value = 'DD';\r\n let okBtn = document.getElementById('okButton');\r\n okBtn.disabled = true;\r\n let chkBx = document.getElementById('agreedCheckbox');\r\n chkBx.checked = false;\r\n this.dob = {\r\n dobString: undefined,\r\n dobDateObj: undefined,\r\n hasError: false\r\n };\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n checkSelectedDOB() {\r\n this.props.dispatch(clearValidationErrors());\r\n let dobString = this.yearsDropdown.value + '/' + this.monthDropdown.value + '/' + this.daysDropdown.value;\r\n\r\n if(dobString.includes('YYYY') || dobString.includes('MM') || dobString.includes('DD')) {\r\n return false;\r\n }\r\n\r\n this.dob.dobDateObj = new Date(dobString);\r\n\r\n if(this.dob.dobDateObj.getDate() === Number(this.daysDropdown.value) &&\r\n (this.dob.dobDateObj.getMonth() + 1) === Number(this.monthDropdown.value) &&\r\n (this.dob.dobDateObj.getFullYear()) === Number(this.yearsDropdown.value)) {\r\n this.dob.dobString = dobString;\r\n this.dob.hasError = false;\r\n this.forceUpdate();\r\n } else {\r\n this.dob.dobString = undefined;\r\n this.dob.hasError = true;\r\n this.props.dispatch(validationError([{\r\n errorCode: \"InvalidDate\",\r\n errorMessage: \"Invalid Date\"\r\n }]));\r\n this.forceUpdate();\r\n }\r\n }\r\n\r\n submitExistingUserCoppa(e) {\r\n let userConfigData = JSON.parse(this.configData);\r\n $('.gen-modal').modal('hide');\r\n this.props.dispatch(requestSignIn(\r\n userConfigData.username,\r\n userConfigData.password,\r\n this.dob.dobString,\r\n userConfigData.persisted\r\n ));\r\n }\r\n\r\n submitNewUserCoppa(e) {\r\n $('.gen-modal').modal('hide');\r\n this.props.dispatch(validateCoppaDOB(\r\n this.dob.dobString,\r\n this.props.router\r\n ));\r\n }\r\n\r\n render() {\r\n let tooltipCoppa = \"MyMealTime.com is designed for parents, teachers, and older students. Young children protected by the Federal Trade Commission’s “COPPA” rules may not use this service. We ask for your date of birth to help us ensure that our service stays in complete compliance with the law, and that no inappropriate private information is collected from children. To learn more, visit the FTC’s COPPA website.\";\r\n return (\r\n <div id=\"coppa-validation\">\r\n <h5>Before we begin...</h5>\r\n <div className=\"text-wrap\">\r\n <small>Please enter <b>YOUR OWN</b> date of birth (not your student's)</small>\r\n </div>\r\n <form className=\"form-group\">\r\n <div className=\"input-group btn-block\" onChange={this.enableButton.bind(this)}>\r\n <div className=\"expand-btn pull-right\" >\r\n <select\r\n className=\"form-control month-btn\"\r\n onBlur={this.onBlurHandler.bind(this)}\r\n onChange={this.onChangeHandler.bind(this)}\r\n ref={node => this.monthDropdown = node}\r\n aria-invalid={this.dob.hasError}\r\n aria-required=\"true\"\r\n >\r\n {this.months}\r\n </select>\r\n </div>\r\n <div className=\"expand-btn pull-right\" >\r\n <select\r\n className=\"form-control day-btn\"\r\n onBlur={this.onBlurHandler.bind(this)}\r\n onChange={this.onChangeHandler.bind(this)}\r\n ref={node => this.daysDropdown = node}\r\n aria-invalid={this.dob.hasError}\r\n aria-required=\"true\"\r\n >\r\n {this.getDays()}\r\n </select>\r\n </div>\r\n\r\n <div className=\"expand-btn pull-right\" >\r\n <select\r\n className=\"form-control year-btn\"\r\n onBlur={this.onBlurHandler.bind(this)}\r\n onChange={this.onChangeHandler.bind(this)}\r\n ref={node => this.yearsDropdown = node}\r\n aria-invalid={this.dob.hasError}\r\n aria-required=\"true\"\r\n >\r\n {this.getYears()}\r\n </select>\r\n </div>\r\n </div>\r\n {\r\n this.dob.hasError ?\r\n <div className=\"error-text small\">Invalid Date</div> :\r\n null\r\n }\r\n </form>\r\n <small>Why do we need this information?</small>\r\n <ToolTip\r\n title={tooltipCoppa}\r\n direction=\"bottom\"\r\n customClass={\"coppa-tooltip\"}\r\n />\r\n <label\r\n className=\"form-check-label\"\r\n htmlFor=\"agreedCheckbox\"\r\n >\r\n <input type=\"checkbox\"\r\n className=\"inp-buf\"\r\n id=\"agreedCheckbox\"\r\n ref={node => this.agreedCheckbox = node}\r\n onChange={this.enableButton.bind(this)}\r\n aria-required=\"true\"\r\n />\r\n I have read and agree to My MealTime's\r\n <Link to=\"/terms\"> Terms of Use </Link>\r\n </label>\r\n <button\r\n className=\"btn btn-success expand-btn pull-right\"\r\n ref={node => this.ok = node}\r\n id=\"okButton\"\r\n onClick={\r\n this.configData === \"\" ?\r\n this.submitNewUserCoppa.bind(this) :\r\n this.submitExistingUserCoppa.bind(this)}\r\n >\r\n OK\r\n </button>\r\n <button\r\n className=\"btn btn-grey expand-btn pull-right\"\r\n onClick={this.cancelCoppa.bind(this)}\r\n data-dismiss=\"modal\"\r\n >\r\n Cancel\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst coppaValidationRouter = withRouter(CoppaValidation);\r\nexport default connect(mapStateToProps)(coppaValidationRouter);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/CoppaValidation/CoppaValidation.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {withRouter} from 'react-router';\r\n\r\nimport {validatePatronDeposit} from '../../../actions/CartAction.js';\r\nimport Loader from '../../Loader/Loader.jsx';\r\n\r\nimport './Deposit.scss';\r\nimport {validationError, clearValidationErrors} from '../../../actions/ErrorAction.js';\r\n//import { __esModule } from 'redux-persist/lib/constants';\r\n\r\n//Content of deposit modal.\r\n//Deposit amount is shared as a state between all three views.\r\nconst mapStateToProps = store => {\r\n return {\r\n loading: store.cart.loading,\r\n errors: store.error.validationErrors\r\n };\r\n};\r\nexport class DepositContent extends React.Component {\r\n static propTypes = {\r\n acctID: PropTypes.number,\r\n checkingAccountID: PropTypes.number.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n errors: PropTypes.array.isRequired,\r\n patronID: PropTypes.number.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n router: PropTypes.object\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n this.state = {\r\n deposit: 50\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n }\r\n\r\n // Switch modal to confirmation view\r\n addDeposit(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n let name = document.querySelector('.cafeteria-account-name').textContent;\r\n\r\n if (!Utils.isNumber(this.state.deposit)) {\r\n return;\r\n }\r\n let item = {\r\n type: \"deposit\",\r\n id: this.props.acctID, // Just use the account ID for the deposit ID\r\n patronID: this.props.patronID,\r\n checkingAccountID: this.props.checkingAccountID,\r\n subAccountID: null,\r\n amount: Number(this.state.deposit),\r\n label: name,\r\n priceEach: null,\r\n quantity: null,\r\n patronDeposits: [{\r\n patronID: this.props.patronID,\r\n depositAmount: Number(this.state.deposit)\r\n }]\r\n };\r\n\r\n if (item.amount === 0) {\r\n return;\r\n } else if (Utils.isInValidAmount(item.amount)) {\r\n this.props.dispatch(validationError([{\r\n errorCode: \"InvalidDepositAmount\",\r\n errorMessage: \"Each deposit must be between $1.00 and $50,000.00\"\r\n }]));\r\n } else {\r\n this.props.dispatch(validatePatronDeposit(item, this.props.router, this.props.dispatch, e.currentTarget.textContent));\r\n }\r\n }\r\n\r\n // onKeyUp event handler\r\n updateAmount(e) {\r\n // Utils.numbersOnly(e);\r\n Utils.moneyOnly(e);\r\n if (this._isMounted) {\r\n this.setState({\r\n deposit: Number(e.currentTarget.value)\r\n });\r\n }\r\n }\r\n\r\n selectHandler(e) {\r\n this.props.dispatch(clearValidationErrors());\r\n let value = e.currentTarget.textContent;\r\n if(value.includes('$')) value = value.replace(\"$\", \"\");\r\n\r\n let wasSelected = document.querySelector('.deposit-input.has-success');\r\n $(wasSelected).removeClass('has-success');\r\n\r\n let $selected = $(e.currentTarget.parentElement);\r\n\r\n if($selected.hasClass('deposit-input')) {\r\n $selected.addClass('has-success');\r\n } else {\r\n $selected = $($selected[0].parentElement);\r\n $selected.addClass('has-success');\r\n }\r\n\r\n if ($selected.hasClass('custom')) {\r\n let input = e.currentTarget;\r\n if (input.value === 'Other') {\r\n input.value = '';\r\n value = 0;\r\n }\r\n value = input.value;\r\n input.focus();\r\n }\r\n\r\n if (this._isMounted && Utils.isNumber(Number(value))) {\r\n this.setState({\r\n deposit: Number(value)\r\n });\r\n\r\n let go2Checkout = document.getElementById(\"dep-go2checkout\");\r\n if(go2Checkout && $(go2Checkout).is(\":visible\") && !$selected.hasClass('custom')) {\r\n if(typeof go2Checkout.focus === 'function') {\r\n go2Checkout.focus({preventScroll: true});\r\n }\r\n }\r\n }\r\n }\r\n\r\n spanHelper(e) {\r\n let parent = e.currentTarget.parentElement;\r\n parent.querySelector('input').focus();\r\n }\r\n\r\n render() {\r\n let errors = Utils.getErrorsByID(this.props.errors, 'InvalidDepositAmount');\r\n\r\n return (\r\n <div id=\"deposit-body\" className=\"set-amount\">\r\n <div className=\"amount-container\">\r\n <div className=\"input-group deposit-input\">\r\n <button id=\"25\" className=\"input-group btn btn-outline-secondary\" onClick={this.selectHandler.bind(this)}>\r\n <span className=\"span-dollar-sign\">$</span>\r\n <label htmlFor=\"25\" className=\"input-group-text\">25.00</label>\r\n </button>\r\n </div>\r\n\r\n <div className=\"input-group deposit-input\">\r\n <button id=\"35\" className=\"input-group btn btn-outline-secondary\" onClick={this.selectHandler.bind(this)}>\r\n <span className=\"span-dollar-sign\">$</span>\r\n <label htmlFor=\"35\" className=\"input-group-text\">35.00</label>\r\n </button>\r\n </div>\r\n\r\n <div className=\"input-group deposit-input has-success\">\r\n <button id=\"50\" className=\"input-group btn btn-outline-secondary\" onClick={this.selectHandler.bind(this)}>\r\n <span className=\"span-dollar-sign\">$</span>\r\n <label htmlFor=\"50\" className=\"input-group-text\">50.00</label>\r\n </button>\r\n </div>\r\n\r\n <div className=\"input-group deposit-input\">\r\n <button id=\"75\" className=\"input-group btn btn-outline-secondary\" onClick={this.selectHandler.bind(this)}>\r\n <span className=\"span-dollar-sign\">$</span>\r\n <label htmlFor=\"75\" className=\"input-group-text\">75.00</label>\r\n </button>\r\n </div>\r\n\r\n <div className=\"input-group deposit-input\">\r\n <button id=\"100\" className=\"input-group btn btn-outline-secondary\" onClick={this.selectHandler.bind(this)}>\r\n <span className=\"span-dollar-sign\">$</span>\r\n <label htmlFor=\"100\" className=\"input-group-text\">100.00</label>\r\n </button>\r\n </div>\r\n <div className=\"input-group deposit-input custom\">\r\n <div className=\"input-group btn btn-outline-secondary\">\r\n <span className=\"span-dollar-sign\"\r\n role=\"button\"\r\n tabIndex=\"-1\"\r\n aria-hidden=\"true\"\r\n onClick={this.spanHelper.bind(this)}>$</span>\r\n <input\r\n type=\"text\"\r\n className=\"form-control amount-form dollar-input\"\r\n placeholder=\"Other\"\r\n onInput={this.updateAmount.bind(this)}\r\n onChange={this.selectHandler.bind(this)}\r\n //onFocus={this.selectHandler.bind(this)}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n {\r\n _.isEmpty(errors) ?\r\n null :\r\n <div className=\"small error-text\">\r\n {errors.InvalidDepositAmount}\r\n </div>\r\n }\r\n <button\r\n id={Utils.setElementId(\"dep-go2checkout\")}\r\n className=\"btn btn-success btn-block btn-big confirm-button\"\r\n onClick={this.addDeposit.bind(this)}\r\n >\r\n {\r\n this.props.loading ?\r\n <Loader/> :\r\n 'Go to Checkout'\r\n }\r\n </button>\r\n <button\r\n className=\"btn btn-secondary btn-grey btn-block confirm-button\"\r\n onClick={this.addDeposit.bind(this)}\r\n >\r\n {\r\n this.props.loading ?\r\n <Loader/> :\r\n 'Add to Cart'\r\n }\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst depositRouter = withRouter(DepositContent);\r\nexport default connect(mapStateToProps)(depositRouter);\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/Deposit/Deposit.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport './District.scss';\r\n\r\n/**\r\n * District\r\n * Modal that handles the messages from the district.\r\n */\r\nclass District extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n document.addEventListener('update-messages', this.updateMessages.bind(this));\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n document.removeEventListener('update-messages', this.updateMessages);\r\n }\r\n\r\n updateMessages() {\r\n if (this._isMounted) this.forceUpdate();\r\n }\r\n\r\n render() {\r\n let relevantMessages = Utils.getRelevantMessages(this.props.userID, this.props.messages);\r\n return (\r\n <div className=\"district-message\">\r\n {\r\n _.isEmpty(relevantMessages) ?\r\n <p className=\"no-message\">You currently do not have any messages associated with the students on your account.</p> :\r\n _.map(relevantMessages, message => {\r\n return <Message\r\n key={message.messageID}\r\n message={message}\r\n userID={this.props.userID}\r\n />;\r\n })\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nDistrict.propTypes = {\r\n messages: PropTypes.array,\r\n userID: PropTypes.number\r\n};\r\n\r\nclass Message extends React.Component {\r\n dismissMessage(e) {\r\n let dismissedMessages = Utils.getFromStorage(String(this.props.userID) + ':dismissed-messages');\r\n if (_.isUndefined(dismissedMessages)) dismissedMessages = [];\r\n dismissedMessages.push(this.props.message.messageID);\r\n Utils.updateStorage(String(this.props.userID) + ':dismissed-messages', dismissedMessages);\r\n\r\n document.dispatchEvent(new Event('update-messages'));\r\n }\r\n\r\n render() {\r\n let messageDate = Utils.convertFromDatetime(this.props.message.messageDate);\r\n return (\r\n <div className=\"message\">\r\n <div className=\"message-header\">\r\n {this.props.message.locationName} - {Utils.dateFormat(messageDate)}\r\n <button\r\n className=\"btn-link pull-right\"\r\n onClick={this.dismissMessage.bind(this)}\r\n aria-label=\"Dismiss message\"\r\n >\r\n <i\r\n className=\"fa fa-times-circle\"\r\n title=\"Dismiss message\"\r\n aria-hidden=\"true\"\r\n >\r\n </i>\r\n </button>\r\n </div>\r\n {this.props.message.body}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nMessage.propTypes = {\r\n message: PropTypes.object.isRequired,\r\n userID: PropTypes.number.isRequired\r\n};\r\n\r\nexport default District;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/District/District.jsx","import React from 'react';\r\n\r\nimport './MasterOption.scss';\r\n\r\nclass MasterOption extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"option-used\">\r\n Sorry, this setting belongs to another profile on your device. You'll need to uninstall/reinstall the app to clear that profile.\r\n <button\r\n className=\"btn btn-success btn-block confirm-button\"\r\n data-dismiss=\"modal\"\r\n >\r\n OK\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default MasterOption;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/MasterOption/MasterOption.jsx","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport Loader from '../../Loader/Loader.jsx';\r\nimport {removeCard} from '../../../actions/TransAction.js';\r\nimport {updatePayment} from '../../../actions/CartAction.js';\r\n\r\n// Component for adding a new form of payment to the account\r\nconst mapStateToProps = store => {\r\n return {\r\n defaultPayment: store.trans.defaultPayment,\r\n loading: store.trans.loading,\r\n methodsAvailable: store.trans.methods,\r\n paymentDeleted: store.trans.paymentDeleted\r\n };\r\n};\r\n\r\nclass PaymentMethodConfirmation extends React.Component {\r\n static propTypes = {\r\n methodsAvailable: PropTypes.array.isRequired,\r\n payInfo: PropTypes.object,\r\n dispatch: PropTypes.func.isRequired,\r\n callback: PropTypes.func,\r\n defaultPayment: PropTypes.string.isRequired,\r\n loading: PropTypes.bool,\r\n paymentDeleted: PropTypes.bool,\r\n context: PropTypes.string,\r\n msg: PropTypes.string.isRequired\r\n };\r\n\r\n ok(e) {\r\n if (!_.isUndefined(this.props.methodsAvailable) && this.props.methodsAvailable.length === 1) {\r\n // If they're deleting their only payment method\r\n this.props.dispatch(removeCard(this.props.payInfo.stripeCardID, null));\r\n // Clear the current payment method\r\n this.props.dispatch(updatePayment(undefined));\r\n } else if (this.props.payInfo.stripeCardID === this.props.defaultPayment) {\r\n // Deleting their default payment method\r\n const newDeafult = this.getNewDefault();\r\n if(newDeafult) {\r\n this.props.dispatch(removeCard(this.props.payInfo.stripeCardID, newDeafult.stripeCardID));\r\n this.props.dispatch(updatePayment(newDeafult.stripeCardID));\r\n } else {\r\n this.props.dispatch(removeCard(this.props.payInfo.stripeCardID, newDeafult));\r\n }\r\n } else {\r\n // Just deleting a card\r\n this.props.dispatch(removeCard(this.props.payInfo.stripeCardID, this.props.defaultPayment));\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n // If payment has been saved/deleted, switch to payment selection screen\r\n if(this.props.paymentDeleted) {\r\n // Updating existing\r\n const callback = e => {\r\n this.modalHandler();\r\n };\r\n let msg = 'Your payment method has been successfully deleted.';\r\n Utils.updateModal('confirm', {\r\n msg: msg,\r\n timeout: 2000,\r\n styleClass: 'level1',\r\n timeoutCallback: callback\r\n });\r\n }\r\n }\r\n\r\n modalHandler() {\r\n if (this.props.context === 'settings') {\r\n if (Utils.isMobile()) {\r\n Utils.updateModal('settings', {load: 'payment'});\r\n } else {\r\n $('.gen-modal').modal('hide');\r\n }\r\n } else if (this.props.context === 'cart') {\r\n Utils.updateModal('payment-select', {selectable: true, save: true, context: this.props.context});\r\n } else if (this.props.context === 'subscription') {\r\n if (Utils.isMobile()) {\r\n Utils.updateModal('subscription-form', {\r\n dispatch: this.props.dispatch\r\n });\r\n } else {\r\n $('.gen-modal').modal('hide');\r\n }\r\n }\r\n }\r\n\r\n cancel(e) {\r\n this.props.callback();\r\n }\r\n\r\n getNewDefaultComponent() {\r\n const toDelete = this.props.payInfo;\r\n const validDefault = _.find(this.props.methodsAvailable, function(m) {\r\n return m.stripeCardID !== toDelete.stripeCardID && !Utils.hasPaymentExpired(m);\r\n });\r\n\r\n let cardPath = '';\r\n let cardAlt = '';\r\n let last4 = '';\r\n let defaultComponent = null;\r\n\r\n if(validDefault) {\r\n switch (validDefault.brand) {\r\n case 'Visa':\r\n cardPath = \"img/visa-curved-64px.png\";\r\n cardAlt = \"Visa logo\";\r\n last4 = \" ... \" + validDefault.last4;\r\n break;\r\n case 'MasterCard':\r\n cardPath = \"img/mastercard-curved-64px.png\";\r\n cardAlt = \"Mastercard logo\";\r\n last4 = \" ... \" + validDefault.last4;\r\n break;\r\n case 'Discover':\r\n cardPath = \"img/discover-curved-64px.png\";\r\n cardAlt = \"Discover logo\";\r\n last4 = \" ... \" + validDefault.last4;\r\n break;\r\n case 'eCheck':\r\n cardPath = \"img/echeck.jpg\";\r\n cardAlt = \"echeck logo\";\r\n last4 = \" ... \" + validDefault.last4;\r\n break;\r\n default:\r\n cardPath = \"img/1px.png\";\r\n cardAlt = \"\";\r\n last4 = \"\";\r\n }\r\n\r\n defaultComponent = (\r\n <div className=\"exist-select\">\r\n <div className=\"form-check\">\r\n <label className=\"form-check-label no-pad\" htmlFor=\"faux\">\r\n <div className=\"ol-payment\">\r\n <img src={cardPath} className=\"payment-option\" alt={cardAlt} />\r\n <span>{last4}</span>\r\n <span> (Default)</span>\r\n </div>\r\n </label>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return defaultComponent;\r\n }\r\n\r\n getNewDefault() {\r\n const toDelete = this.props.payInfo;\r\n const validDefault = _.find(this.props.methodsAvailable, function(m) {\r\n return m.stripeCardID !== toDelete.stripeCardID && !Utils.hasPaymentExpired(m);\r\n });\r\n return validDefault;\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"payment-method-confirmation\">\r\n <div className=\"confirm-text\">\r\n {\r\n this.props.msg\r\n }\r\n </div>\r\n <button\r\n className=\"btn btn-success btn-block confirm-button\"\r\n onClick={this.ok.bind(this)}\r\n >\r\n {\r\n this.props.loading ?\r\n <Loader/> :\r\n \"OK\"\r\n }\r\n </button>\r\n <button\r\n className=\"btn btn-grey btn-block confirm-button\"\r\n onClick={this.cancel.bind(this)}\r\n >\r\n Cancel\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(PaymentMethodConfirmation);\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/PaymentMethodConfirmation/PaymentMethodConfirmation.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n//import Loader from '../../Loader/Loader.jsx';\r\nimport {clearAllErrors} from '../../../actions/ErrorAction.js';\r\nimport {updateSubscriptionPaused} from '../../../actions/SubAction.js';\r\n\r\nimport './SchPause.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n validationErrors: store.error.validationErrors\r\n };\r\n};\r\n\r\nclass SchPause extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n subId: PropTypes.number.isRequired,\r\n error: PropTypes.object,\r\n validationErrors: PropTypes.array\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.months = this.getMonths();\r\n\r\n this.state = {\r\n showDatePicker: false\r\n };\r\n\r\n let today = new Date();\r\n let currentYearString = (today.getFullYear()).toString();\r\n let currentMonth = today.getMonth() + 1;\r\n let currenMonthString = (currentMonth < 10) ? '0' + currentMonth.toString() : currentMonth.toString();\r\n let nextDayString = (today.getDate() + 1).toString();\r\n this.minDate = currentYearString + '/' + currenMonthString + '/' + nextDayString;\r\n this.resumeDate = undefined;\r\n }\r\n\r\n isDateValid(e) {\r\n let resumeDateString = this.yearsDropdown.value + '/' + this.monthDropdown.value + '/' + this.daysDropdown.value;\r\n\r\n if(resumeDateString.includes('YYYY') || resumeDateString.includes('MM') || resumeDateString.includes('DD')) {\r\n return false;\r\n }\r\n\r\n let resumeDateObj = new Date(resumeDateString);\r\n\r\n if (resumeDateObj.getDate() === Number(this.daysDropdown.value) &&\r\n (resumeDateObj.getMonth() + 1) === Number(this.monthDropdown.value) &&\r\n (resumeDateObj.getFullYear()) === Number(this.yearsDropdown.value)) {\r\n this.resumeDate = resumeDateString;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getMonths() {\r\n let months = [];\r\n let max = 12;\r\n\r\n months.push(<option key={\"0\"}\r\n value={\"MM\"}\r\n >{\"MM\"}</option>);\r\n\r\n for(let i = 1; i <= max; i++) {\r\n let month = i;\r\n if(i < 10) month = '0' + month;\r\n months.push(<option key={month}\r\n value={month}\r\n >{month}</option>);\r\n }\r\n return months;\r\n }\r\n\r\n getDays() {\r\n let days = [];\r\n let max = 31;\r\n\r\n days.push(<option key={\"0\"}\r\n value={\"DD\"}\r\n >{\"DD\"}</option>);\r\n\r\n for(let i = 1; i <= max; i++) {\r\n let date = i;\r\n if(i < 10) date = '0' + date;\r\n days.push(<option key={date}\r\n value={date}\r\n >{date}</option>);\r\n }\r\n return days;\r\n }\r\n\r\n getYears() {\r\n let currentYear = (new Date()).getFullYear();\r\n let years = [];\r\n let max = 1;\r\n\r\n years.push(<option key={0}\r\n value={\"YYYY\"}\r\n >{\"YYYY\"}</option>);\r\n\r\n for(let i = 0; i <= max; i++) {\r\n let oldYear = currentYear + i;\r\n years.push(<option key={oldYear}\r\n value={oldYear}\r\n >{oldYear}</option>);\r\n }\r\n return years;\r\n }\r\n\r\n pauseSch(e) {\r\n this.props.dispatch(clearAllErrors());\r\n if(this.state.showDatePicker) {\r\n let sub = {\r\n id: this.props.subId,\r\n isPaused: true,\r\n pauseEndDate: this.resumeDate\r\n };\r\n this.props.dispatch(updateSubscriptionPaused(sub));\r\n } else {\r\n let sub = {\r\n id: this.props.subId,\r\n isPaused: true,\r\n pauseEndDate: null\r\n };\r\n this.props.dispatch(updateSubscriptionPaused(sub));\r\n }\r\n }\r\n\r\n cancelHandler(e) {\r\n this.props.dispatch(clearAllErrors());\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n toggleHandler(e) {\r\n this.props.dispatch(clearAllErrors());\r\n this.setState({\r\n showDatePicker: this.pauseLaterRadio.checked\r\n });\r\n\r\n if (this.pauseLaterRadio.checked) {\r\n $('.modal-body').css('overflow-y', '');\r\n $('.modal-body').animate({\r\n scrollTop: $('.modal-body').height()\r\n }, 250);\r\n } else {\r\n $('.modal-body').css('overflow-y', 'hidden');\r\n setTimeout(function() {\r\n $('.modal-body').css('overflow-y', '');\r\n }, 0);\r\n }\r\n }\r\n\r\n render() {\r\n let error = Utils.getErrorsByID(this.props.validationErrors, 'pauseEndDate');\r\n return (\r\n <div id=\"sch-pause-body\">\r\n <div className=\"confirm-text\">\r\n This scheduled deposit can wait for you while your students are on break.\r\n While it is paused, your payment method will not be charged and you will not receive reminder emails.\r\n You can resume whenever you're ready.\r\n </div>\r\n <form className=\"form-group\" onChange={this.toggleHandler.bind(this)}>\r\n <div className=\"form-check sch-pause-check\">\r\n <input\r\n type=\"radio\"\r\n name=\"pauseSChRadios\"\r\n id=\"pauseNow\"\r\n defaultValue=\"pauseNow\"\r\n defaultChecked/>\r\n <label className=\"form-check-label\" htmlFor=\"pauseNow\">\r\n I will resume this scheduled deposit manually\r\n </label>\r\n </div>\r\n <div className=\"form-check sch-pause-check\">\r\n <input\r\n ref={node => this.pauseLaterRadio = node}\r\n type=\"radio\"\r\n name=\"pauseSChRadios\"\r\n id=\"pauseLater\"\r\n defaultValue=\"pauseLater\"/>\r\n <label className=\"form-check-label\" htmlFor=\"pauseLater\">\r\n Resume my scheduled deposit automatically after:\r\n </label>\r\n </div>\r\n {\r\n this.state.showDatePicker ?\r\n <div className=\"form-check\">\r\n <div className=\"d-flex justify-content-start\">\r\n <div className=\"expand-btn\" >\r\n <select\r\n className=\"form-control month-btn\"\r\n onBlur={this.isDateValid.bind(this)}\r\n ref={node => this.monthDropdown = node}>\r\n {this.months}\r\n </select>\r\n </div>\r\n <div className=\"expand-btn\" >\r\n <select\r\n className=\"form-control day-btn\"\r\n onBlur={this.isDateValid.bind(this)}\r\n ref={node => this.daysDropdown = node}>\r\n {this.getDays()}\r\n </select>\r\n </div>\r\n <div className=\"expand-btn\" >\r\n <select\r\n className=\"form-control year-btn\"\r\n onBlur={this.isDateValid.bind(this)}\r\n ref={node => this.yearsDropdown = node}\r\n aria-required=\"true\"\r\n aria-invalid={!_.isEmpty(error.pauseEndDate)}>\r\n {this.getYears()}\r\n </select>\r\n </div>\r\n </div>\r\n {\r\n _.isEmpty(error.pauseEndDate) ?\r\n null :\r\n <div className=\"error-text small\">\r\n {\r\n error.pauseEndDate === \"Not able to parse method input.\" ?\r\n \"Invalid Date\" :\r\n error.pauseEndDate\r\n }\r\n </div>\r\n }\r\n </div> :\r\n null\r\n }\r\n </form>\r\n <button\r\n className=\"btn btn-grey expand-btn pull-right\"\r\n onClick={this.cancelHandler.bind(this)}\r\n data-dismiss=\"modal\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n className=\"btn btn-success expand-btn pull-right\"\r\n id=\"okButton\"\r\n onClick={this.pauseSch.bind(this)}>\r\n OK\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(SchPause);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/SchPause/SchPause.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from 'react-router';\r\n\r\nimport {signOut} from '../../../actions/AuthAction.js';\r\n\r\nclass SignOutModal extends React.Component {\r\n confirmSignOut(e) {\r\n $('.gen-modal').modal('hide');\r\n this.props.dispatch(signOut(this.props.router));\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"sign-out\">\r\n <div className=\"confirm-text\">Are you sure you want to sign out?</div>\r\n <button\r\n className=\"btn btn-success btn-block confirm-button\"\r\n onClick={this.confirmSignOut.bind(this)}\r\n >\r\n Confirm\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSignOutModal.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n persisted: PropTypes.bool,\r\n router: PropTypes.object.isRequired\r\n};\r\n\r\nconst signOutRouter = withRouter(SignOutModal);\r\n\r\nexport default signOutRouter;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/SignOut/SignOut.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './Warning.scss';\r\n\r\n//Warning type modal is becoming indemand\r\n//Let's start using this component and evolved it to something very useful\r\nclass Warning extends React.Component {\r\n\r\n //hide warning modal if handlers are not supplied\r\n dismissModal(e) {\r\n $('.gen-modal').modal('hide');\r\n }\r\n\r\n formatMsg(msgs) {\r\n let msg = [];\r\n for(let m of msgs) {\r\n msg.push(<p key={Math.random()}>{m}</p>);\r\n }\r\n return msg;\r\n }\r\n\r\n render() {\r\n const continueHandler = this.props.continueHandler || this.dismissModal;\r\n const cancelHandler = this.props.cancelHandler || this.dismissModal;\r\n const msg = this.formatMsg(this.props.msg);\r\n return (\r\n <div id=\"success-body\">\r\n <div className=\"row warning-content\">\r\n <div className=\"col\">\r\n {msg}\r\n </div>\r\n </div>\r\n\r\n <button\r\n className=\"btn btn-success btn-block confirm-button\"\r\n onClick={continueHandler}>\r\n {this.props.conTitle ? this.props.conTitle : 'Continue'}\r\n </button>\r\n {\r\n <button\r\n className=\"btn btn-grey btn-block\"\r\n onClick={cancelHandler}>\r\n {this.props.cancelTitle ? this.props.cancelTitle : 'Cancel'}\r\n </button>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nWarning.propTypes = {\r\n msg: PropTypes.array.isRequired,\r\n conTitle: PropTypes.string,\r\n cancelTitle: PropTypes.string,\r\n continueHandler: PropTypes.func,\r\n cancelHandler: PropTypes.func,\r\n};\r\n\r\nexport default Warning;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/Modals/Warning/Warning.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {IndexLink, Link} from 'react-router';\r\n\r\nimport {clearLoaded} from '../../actions/PatronsAction.js';\r\nimport {keepAlive} from '../../actions/AuthAction.js';\r\n\r\nimport './NavLink.scss';\r\n\r\n/**\r\n * Links to another site route. Will return an IndexLink if routing home.\r\n */\r\nclass NavLink extends React.Component {\r\n closeSidebar() {\r\n $('#mobileMenu').collapse('hide');\r\n\r\n const route = ['Settings', 'About'];\r\n if(route.includes(this.props.value)) this.props.dispatch(keepAlive());\r\n\r\n if (this.props.to === '/accounts') {\r\n this.props.dispatch(clearLoaded());\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n {\r\n this.props.index ?\r\n <IndexLink id={Utils.setElementId(\"nav-link-\" + (this.props.value).toLowerCase())} to={this.props.to} activeClassName=\"active\" onClick={this.closeSidebar.bind(this)}>\r\n <li\r\n className=\"list-group-item menu-item mi-home\"\r\n >\r\n <i className={\"fa fa-\" + this.props.icon}></i> {this.props.value}\r\n </li>\r\n </IndexLink> :\r\n <Link id={Utils.setElementId(\"nav-link-\" + (this.props.value).toLowerCase())} to={this.props.to} activeClassName=\"active\" onClick={this.closeSidebar.bind(this)}>\r\n <li\r\n className={\"list-group-item menu-item mi-\" + this.props.to.substring(1)}\r\n >\r\n <i className={\"fa fa-\" + this.props.icon}></i> {this.props.value}\r\n </li>\r\n </Link>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nNavLink.propTypes = {\r\n dispatch: PropTypes.func,\r\n icon: PropTypes.string.isRequired,\r\n index: PropTypes.bool,\r\n to: PropTypes.string.isRequired,\r\n value: PropTypes.string.isRequired\r\n};\r\n\r\nexport default NavLink;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/NavLink/NavLink.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {clearSchools} from '../../actions/PatronsAction.js';\r\n\r\n/**\r\n * Card for adding new user to account\r\n */\r\nclass NewAccount extends React.Component {\r\n showNew(e) {\r\n this.props.dispatch(clearSchools());\r\n if (Utils.isMobile()) {\r\n Utils.updateModal('add-student');\r\n } else {\r\n document.dispatchEvent(new Event('show-account-info'));\r\n let checkpoint = e.target;\r\n window.scrollTo(0, 0);\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint\r\n }}));\r\n }\r\n\r\n document.dispatchEvent(new Event('add-student'));\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"card new-acct-card\">\r\n Add student\r\n <button\r\n id={Utils.setElementId('new-student-btn')}\r\n className=\"btn btn-primary btn-sm pull-right\"\r\n onClick={this.showNew.bind(this)}\r\n >\r\n New\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nNewAccount.propTypes = {\r\n dispatch: PropTypes.func.isRequired\r\n};\r\n\r\nexport default NewAccount;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/NewAccount/NewAccount.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\n\nimport Loader from '../Loader/Loader.jsx';\nimport PaymentInfo from '../PaymentInfo/PaymentInfo.jsx';\nimport ToolTip from '../ToolTip/ToolTip.jsx';\n\nimport {\n addNewCard,\n resetPayment,\n removeCard,\n updateCard,\n addNewECheck\n} from '../../actions/TransAction.js';\nimport {updatePayment} from '../../actions/CartAction.js';\nimport {clearValidationErrors, validationError} from '../../actions/ErrorAction.js';\n\nimport './NewPayment.scss';\n\n// Component for adding a new form of payment to the account\nconst mapStateToProps = store => {\n return {\n currentSub: store.sub.subscriptionForm,\n defaultPayment: store.trans.defaultPayment,\n loading: store.trans.loading,\n methodsAvailable: store.trans.methods,\n patrons: store.patrons.patrons,\n paymentDeleted: store.trans.paymentDeleted,\n paymentSaved: store.trans.paymentSaved,\n subLoading: store.sub.loading,\n validationErrors: store.error.validationErrors\n };\n};\n\nclass NewPayment extends React.Component {\n static propTypes = {\n cart: PropTypes.bool,\n context: PropTypes.string,\n currentSub: PropTypes.object,\n defaultPayment: PropTypes.string,\n dispatch: PropTypes.func,\n loading: PropTypes.bool,\n methodsAvailable: PropTypes.array,\n patrons: PropTypes.array.isRequired,\n payInfo: PropTypes.object,\n paymentDeleted: PropTypes.bool,\n paymentSaved: PropTypes.bool,\n replacingDefault: PropTypes.string,\n subLoading: PropTypes.bool,\n validationErrors: PropTypes.array\n };\n\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.echeckInfo = undefined;\n this.cardInfo = undefined;\n this.card = undefined;\n\n if (this.props.payInfo) {\n const cardTypes = ['Visa', 'MasterCard', 'Discover'];\n if (cardTypes.indexOf(this.props.payInfo.brand) > -1) {\n // It's a card!\n this.cardInfo = this.props.payInfo;\n } else {\n // It's an eCheck\n this.echeckInfo = this.props.payInfo;\n } // It's a me, Mario!\n }\n\n this.state = {\n saveText: 'Save Payment Method',\n action: 'save', // For determining where to show the Loader\n errorText: undefined,\n stripeLoaded: !_.isUndefined(stripe)\n };\n }\n\n componentWillMount() {\n this.props.dispatch(resetPayment());\n\n if (_.isUndefined(stripe)) {\n try {\n stripe = new Stripe(STRIPE_KEY);\n } catch (err) {\n $.getScript('https://js.stripe.com/v3/', () => {\n stripe = new Stripe(STRIPE_KEY);\n this.setState({\n stripeLoaded: true\n });\n });\n }\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n // Keeps disabled buttons from firing any events\n $('#new-payment .btn.disabled').click(e => {\n e.stopImmediatePropagation();\n });\n\n // Hide carousel overflow when sliding\n $('#new-payment').on('slide.bs.carousel', () => {\n $('.carousel-inner').css('overflow', 'hidden');\n });\n\n $('#new-payment').on('slid.bs.carousel', () => {\n $('.carousel-inner').css('overflow', '');\n });\n\n this.props.dispatch(clearValidationErrors());\n this.initStripe();\n }\n\n initStripe() {\n if (!_.isUndefined(this.card) ||\n !this.state.stripeLoaded) {\n return;\n }\n\n // Init elements here so they can be used on submit\n // Set up card input\n const elements = stripe.elements();\n //let cardNumOpts = {\n // classes: {\n // base: 'form-control form-control-sm'\n // },\n // iconStyle: 'solid'\n //};\n\n var stripeStyle = {\n base: {\n color: '#464a4c',\n lineHeight: '18px',\n fontSmoothing: 'antialiased',\n fontSize: '14px'\n }\n };\n\n if (_.isUndefined(this.cardInfo) &&\n this.state.stripeLoaded) {\n // Mount Stripe element\n this.props.dispatch(clearValidationErrors());\n this.card = elements.create('card', {style: stripeStyle});\n this.card.mount('#stripeCCNum');\n this.card.addEventListener('change', function(event) {\n this.props.dispatch(clearValidationErrors());\n const cardTypes = ['visa', 'mastercard', 'discover', 'unknown'];\n let displayError = document.getElementById('stripeCCNumError');\n let errorText;\n if (event.error) {\n displayError.textContent = event.error.message;\n errorText = event.error.message;\n this.props.dispatch(validationError([{\n errorCode: \"StripeValidationError\",\n errorMessage: errorText\n }]));\n } else if (!cardTypes.includes(event.brand)) {\n displayError.textContent = 'Only Visa, MasterCard, and Discover are supported';\n errorText = 'Only Visa, MasterCard, and Discover are supported';\n } else {\n displayError.textContent = '';\n }\n this.setState({\n errorText\n });\n }.bind(this));\n this.card.addEventListener('focus', function(event) {\n document.getElementById('stripeCCNum').dispatchEvent(new CustomEvent('stripe-focus'));\n });\n this.card.addEventListener('blur', function(event) {\n document.getElementById('stripeCCNum').dispatchEvent(new CustomEvent('stripe-blur'));\n });\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n\n $('#new-payment').off('slide.bs.carousel');\n $('#new-payment').off('slid.bs.carousel');\n }\n\n componentWillReceiveProps(nextProps) {\n // If payment has been saved/deleted, switch to payment selection screen\n if (nextProps.paymentSaved || nextProps.paymentDeleted) {\n if (_.isUndefined(this.props.payInfo)) {\n this.modalHandler();\n } else {\n // Updating existing\n const callback = e => {\n this.modalHandler();\n };\n let msg = 'Your payment method has been successfully updated.';\n if (nextProps.paymentDeleted) msg = 'Your payment method has been successfully deleted.';\n Utils.updateModal('confirm', {\n msg: msg,\n timeout: 2000,\n styleClass: 'level1',\n timeoutCallback: callback\n });\n }\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const newPayment = _.isUndefined(this.props.payInfo);\n if (this.props.paymentSaved) {\n if (newPayment) {\n const newDefault = this.default.checked;\n const onlyPayment = this.props.methodsAvailable.length === 1;\n if ((newDefault || onlyPayment) && this.props.context === 'subscription') { // User has added a new default/the only available payment method\n let newDefault = _.difference(this.props.methodsAvailable, prevProps.methodsAvailable);\n let newDefaultMethod = newDefault.pop();\n if(!_.isUndefined(newDefaultMethod)) {\n this.props.currentSub.setPayment(newDefaultMethod, this.props.dispatch);\n } else if(_.isUndefined(newDefaultMethod) && onlyPayment) {\n this.props.currentSub.setPayment(this.props.methodsAvailable[0], this.props.dispatch);\n }\n }\n }\n } else if (this.props.paymentDeleted && this.props.context === 'subscription') {\n const deletedPayment = _.difference(prevProps.methodsAvailable, this.props.methodsAvailable);\n const deletedScheduledPayment = (this.props.currentSub.getPayment().stripeCardID === deletedPayment.stripeCardID);\n if (deletedScheduledPayment) {\n if (this.props.methodsAvailable.length === 0) {\n this.props.currentSub.setPayment({});\n } else {\n this.props.currentSub.setPayment(this.props.methodsAvailable[0], this.props.dispatch);\n }\n }\n }\n\n this.initStripe();\n }\n\n modalHandler() {\n if (this.props.context === 'settings') {\n if (Utils.isMobile()) {\n Utils.updateModal('settings', {load: 'payment'});\n } else {\n $('.gen-modal').modal('hide');\n }\n } else if (this.props.context === 'cart') {\n Utils.updateModal('payment-select', {selectable: true, save: true, context: this.props.context});\n } else if (this.props.context === 'subscription') {\n if (Utils.isMobile()) {\n Utils.updateModal('subscription-form', {\n dispatch: this.props.dispatch\n });\n } else {\n $('.gen-modal').modal('hide');\n }\n } else {\n Utils.updateModal('payment-select', {\n selectable: false,\n save: true,\n context: this.props.context,\n replacingDefault: this.props.replacingDefault\n });\n }\n }\n\n addECheck(e) {\n this.props.dispatch(addNewECheck(this.echeckInfo));\n }\n\n handleSave(e) {\n e.preventDefault(); // Prevents refresh on submit\n //check if stripe has errors\n let stripeError = Utils.getErrorsByID(this.props.validationErrors, 'StripeValidationError');\n this.props.dispatch(clearValidationErrors());\n const elements = e.currentTarget.elements;\n if (_.isUndefined(this.props.payInfo)) { // Save new card\n if(elements.echeckToggle.checked) {//eCheck\n let errors = [];\n\n if (_.isEmpty(elements.echeckHolderName.value)) {\n errors.push({\n errorCode: 'ECheckholderNameRequired',\n errorMessage: 'Account holder name is required.'\n });\n }\n\n if (_.isEmpty(elements.echeckRoutingNumber.value)) {\n errors.push({\n errorCode: 'ECheckRoutingRequired',\n errorMessage: 'Routing number is required.'\n });\n }\n\n if (_.isEmpty(elements.echeckAccountNumber.value)) {\n errors.push({\n errorCode: 'ECheckAccountNumberRequired',\n errorMessage: 'Account number is required.'\n });\n }\n\n this.echeckInfo = {\n echeckHolderName: elements.echeckHolderName.value,\n echeckRoutingNumber: elements.echeckRoutingNumber.value,\n echeckAccountNumber: elements.echeckAccountNumber.value\n };\n\n if (_.isEmpty(errors)) {\n Utils.updateModal('confirm', {\n msg: \"In the next 72 hours, two small deposits from [entity making the transaction. Stripe?] will be added to and then removed from your checking account.\" +\n \"Once you have those exact amounts, return to your Payment Method Settings and enter them to verify your checking account.\" +\n \"Once you've verified your account, you'll be asked to authorize MyMealTime.com to electronically debit your account and, if necessary, electronically credit your account to correct erroneous debits.\",\n cancelable: true,\n clickHandler: this.addECheck.bind(this)});\n } else {\n this.props.dispatch(validationError(errors));\n }\n } else { // Credit/debit card\n let errors = [];\n if(stripeError.StripeValidationError) {\n errors.push({\n errorCode: \"StripeValidationError\",\n errorMessage: stripeError.StripeValidationError\n });\n }\n let isDefault = elements.newDefault.checked;\n if (_.isEmpty(this.props.methodsAvailable)) {\n // If there are no added methods, SOMETHING needs to be the default!\n isDefault = true;\n }\n if (_.isEmpty(elements.cardholderName.value)) {\n errors.push({\n errorCode: 'CardholderNameRequired',\n errorMessage: 'A cardholder name is required.'\n });\n }\n\n if (_.isEmpty(errors) && _.isUndefined(this.state.errorText)) {\n let saveForFuture = elements.futureSave.checked;\n //if (!_.isUndefined(this.props.currentSub)) saveForFuture = true;\n this.props.dispatch(addNewCard(this.card,\n isDefault,\n saveForFuture,\n elements.cardholderName.value));\n } else {\n this.props.dispatch(validationError(errors));\n }\n }\n } else { // Update existing card\n const expMonth = elements.expMonth.value;\n const expYear = elements.expYear.value;\n const zipCode = elements.cardZip.value;\n const cardholderName = elements.cardholderName.value;\n const isDefault = elements.newDefault.checked;\n const zipReg = /^\\d{5}([-]?\\d{4})?$/;\n\n let errors = [];\n if (_.isEmpty(zipCode)) {\n errors.push({\n errorCode: 'ZipCodeRequired',\n errorMessage: 'Zip code is required.'\n });\n } else if (!zipReg.test(zipCode)) {\n // Failed\n errors.push({\n errorCode: 'InvalidZip',\n errorMessage: 'Zip code provided is not valid.'\n });\n }\n\n if (Number(expMonth) > 12 || Number(expMonth) === 0) {\n errors.push({\n errorCode: 'InvalidExpMonth',\n errorMessage: 'Month must be between 1-12.'\n });\n }\n\n let today = new Date();\n let expDateString = expYear + '/' + expMonth + '/01';\n let tempDate = new Date(expDateString);\n let expDate = new Date(tempDate.getFullYear(), tempDate.getMonth() + 1, 0);\n\n if (expDate < today) {\n errors.push({\n errorCode: 'InvalidExpYear',\n errorMessage: 'Your card\\'s expiration date is in the past.'\n });\n }\n\n if (expDate.toString() === \"Invalid Date\") {\n errors.push({\n errorCode: 'InvalidExpYear',\n errorMessage: 'Your card\\'s expiration date is invalid.'\n });\n }\n\n if (_.isEmpty(cardholderName)) {\n errors.push({\n errorCode: 'CardholderNameRequired',\n errorMessage: 'Cardholder name is required.'\n });\n }\n\n // If an error was caught, send it\n if (_.isEmpty(errors)) {\n this.props.dispatch(updateCard(this.props.payInfo.stripeCardID,\n expMonth,\n expYear,\n zipCode,\n cardholderName,\n isDefault));\n } else {\n this.props.dispatch(validationError(errors));\n }\n }\n\n this.setState({\n action: 'save'\n });\n }\n\n switchPayment(e) {\n e.currentTarget.checked = true;\n let slideNum = Number(e.currentTarget.dataset.slide);\n\n if (slideNum === 1) { // eCheck\n this.future.checked = true;\n this.future.disabled = true;\n this.default.disabled = true;\n this.saveButton.disabled = !this.eCheckSupport;\n if (this._isMounted) {\n this.setState({\n saveText: 'Save Payment Method'\n });\n }\n document.getElementById('ccToggle').tabIndex = '-1';\n document.getElementById('echeckToggle').tabIndex = '0';\n } else { // Credit/Debit card\n this.future.disabled = (this.props.context === 'subscription');\n this.future.checked = true;\n this.default.disabled = false;\n this.saveButton.disabled = false;\n document.getElementById('ccToggle').tabIndex = '0';\n document.getElementById('echeckToggle').tabIndex = '-1';\n }\n $('#new-payment').carousel(slideNum);\n }\n\n updateText(e) {\n let saveText = 'Use Payment Method';\n if (e.currentTarget.checked) {\n saveText = 'Save Payment Method';\n } else {\n this.default.checked = false;\n }\n\n this.default.disabled = !this.future.checked;\n\n if(_.isEmpty(this.props.methodsAvailable) && this.future.checked) {\n this.default.checked = true;\n this.default.disabled = true;\n }\n\n if (this._isMounted) {\n this.setState({\n saveText: saveText\n });\n }\n }\n\n deletePaymentMethod(e) {\n this.props.dispatch(clearValidationErrors());\n Utils.updateModal('delete-payment', {\n msg: \"Are you sure you want to delete this payment method?\",\n context: this.props.context,\n payInfo: this.props.payInfo\n });\n\n this.setState({\n action: 'delete'\n });\n }\n\n // if it finds any patron that does not accept echeck, user will not be able to use echeck method\n isECheckSupported() {\n let echeckEnabled = true;\n let patronGroups = null;\n\n if(echeckEnabled) {\n for(var i = 0; i < this.props.patrons.length; i++) {\n patronGroups = this.props.patrons[i].patrons;\n for(var ii = 0; ii < patronGroups.length; ii++) {\n let isSupported = patronGroups[ii].districtAcceptsEcheck;\n if(!isSupported) {\n return false;\n }\n }\n }\n } else {\n return false;\n }\n }\n\n render() {\n let isDefault = false;\n const isScheduledDeposit = (this.props.context === 'subscription');\n\n this.eCheckSupport = false; //update once echeck is supported\n\n if (_.isObject(this.props.payInfo)) {\n if (this.props.payInfo.stripeCardID === this.props.defaultPayment) {\n isDefault = true;\n }\n }\n\n if(_.isEmpty(this.props.methodsAvailable)) isDefault = true;\n\n return (\n <div\n id=\"new-payment\"\n className=\"carousel slide\"\n data-ride=\"carousel\"\n data-interval={false}\n ref={node => this.node = node}\n >\n <form onSubmit={this.handleSave.bind(this)}>\n {\n _.isObject(this.props.payInfo) ?\n null :\n <div className=\"btn-group btn-group-toggle\" data-toggle=\"buttons\">\n <label\n htmlFor=\"ccToggle\"\n className=\"btn btn-sm btn-secondary acct-toggle active\"\n >\n <input\n id=\"ccToggle\"\n type=\"radio\"\n name=\"options\"\n autoComplete=\"off\"\n tabIndex=\"0\"\n data-slide=\"0\"\n onClick={this.switchPayment.bind(this)}\n onFocus={this.switchPayment.bind(this)}\n defaultChecked\n />\n <div className=\"toggle-text\">Credit/Debit Card</div>\n </label>\n <label\n htmlFor=\"echeckToggle\"\n className=\"btn btn-sm btn-secondary acct-toggle\"\n >\n <input\n id=\"echeckToggle\"\n type=\"radio\"\n name=\"options\"\n autoComplete=\"off\"\n tabIndex=\"-1\"\n data-slide=\"1\"\n onClick={this.switchPayment.bind(this)}\n onFocus={this.switchPayment.bind(this)}\n />\n <div className=\"toggle-text\">eCheck</div>\n </label>\n </div>\n }\n <div className=\"carousel-inner\" role=\"listbox\">\n <div\n id=\"credit-debit-info\"\n className={\"carousel-item\" +\n (_.isUndefined(this.eCheckInfo) ? ' active' : '')}\n >\n <CCForm\n cardInfo={this.cardInfo}\n dispatch={this.props.dispatch}\n paymentSaved={this.props.paymentSaved}\n error={Utils.getErrorsByID(this.props.validationErrors,\n 'cardholderName',\n 'expMonth',\n 'expYear',\n 'ccZip',\n 'paymentInfo')}\n />\n </div>\n\n <div\n id=\"echeck-info\"\n className={\"carousel-item\" +\n (_.isUndefined(this.eCheckInfo) ? '' : ' active')}\n >\n {\n this.eCheckSupport ?\n <ECheckForm checkInfo={this.echeckInfo}\n echeckinfo={this.echeckInfo}\n dispatch={this.props.dispatch}\n error={Utils.getErrorsByID(this.props.validationErrors,\n 'echeckHolderName',\n 'echeckRoutingNumber',\n 'echeckAccountNumber')}/> :\n <MissingSupport/>\n }\n </div>\n\n </div>\n\n {\n _.isUndefined(this.props.payInfo) ?\n <div className=\"new-default\">\n <label\n className=\"form-check-label\"\n htmlFor=\"futureSave\"\n >\n <input\n type=\"checkbox\"\n id=\"futureSave\"\n className=\"form-check-input\"\n aria-label=\"Save for future purchases\"\n onChange={this.updateText.bind(this)}\n ref={node => this.future = node}\n defaultChecked\n disabled={isScheduledDeposit}\n />\n Save for future purchases\n </label>\n </div> :\n null\n }\n <div\n className={\"new-default\" +\n (this.state.saveText === 'Use Payment Method' ?\n ' disabled-text' :\n '')}\n >\n <label\n className=\"form-check-label\"\n htmlFor=\"newDefault\"\n >\n <input\n id=\"newDefault\"\n className=\"form-check-input\"\n type=\"checkbox\"\n aria-label=\"Set as new default\"\n defaultChecked={isDefault}\n disabled={_.isEmpty(this.props.methodsAvailable) || (this.props.payInfo && isDefault)}\n ref={node => this.default = node}\n />\n Set as default payment method\n </label>\n </div>\n\n <button\n className=\"btn btn-sm btn-success save-payment pull-right expand-btn\"\n type=\"submit\"\n ref={node => this.saveButton = node}\n >\n {\n this.props.loading && this.state.action === 'save' ?\n <Loader/> :\n this.state.saveText\n }\n </button>\n {\n this.props.payInfo ?\n <button\n className=\"btn btn-sm btn-danger delete-btn pull-right expand-btn\"\n type=\"button\"\n onClick={this.deletePaymentMethod.bind(this)}\n >\n {\n this.props.loading && this.state.action === 'delete' ?\n <Loader/> :\n 'Delete'\n }\n </button> :\n null\n }\n </form>\n </div>\n );\n }\n}\n\nclass MissingSupport extends React.Component {\n render() {\n return (\n <div className=\"missing-support\">\n eCheck is not yet available as a payment method option. Please enter a credit or debit card instead.\n </div>\n );\n }\n}\n\nclass ECheckForm extends React.Component {\n render() {\n return (\n <div className=\"echeckform\">\n <div className=\"row\">\n <div className=\"col-12\">\n <div className={\"form-group\" + (_.isEmpty(this.props.error.echeckHolderName) ? '' : ' has-danger')}>\n <input\n type=\"text\"\n id=\"echeckHolderName\"\n className=\"form-control form-control-sm\"\n placeholder=\"Your full name\"\n defaultValue={this.props.echeckInfo ? this.props.echeckInfo.echeckHolderName : ''}\n />\n {\n _.isEmpty(this.props.error.echeckHolderName) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.echeckHolderName}\n </div>\n }\n </div>\n </div>\n <div className={\"col-12 col-md-6 ec-div\" + (_.isEmpty(this.props.error.echeckRoutingNumber) ? '' : ' has-danger')}>\n <div className=\"input-group input-group-sm\">\n <input\n type=\"text\"\n id=\"echeckRoutingNumber\"\n className=\"form-control form-control-sm\"\n placeholder=\"Routing Number\"\n />\n <span className=\"input-group-addon\">\n <ToolTip\n title={'<img src=\"img/check_draft.png\" width=\"100%\">'}\n direction=\"left\"\n />\n </span>\n </div>\n {\n _.isEmpty(this.props.error.echeckRoutingNumber) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.echeckRoutingNumber}\n </div>\n }\n </div>\n <div className={\"col-12 col-md-6\" + (_.isEmpty(this.props.error.echeckAccountNumber) ? '' : ' has-danger')}>\n <div className=\"input-group input-group-sm\">\n <input\n type=\"text\"\n id=\"echeckAccountNumber\"\n className=\"form-control form-control-sm\"\n placeholder=\"Bank Account Number\"\n />\n <span className=\"input-group-addon\">\n <ToolTip\n title={'<img src=\"img/check_draft.png\" width=\"100%\">'}\n direction=\"left\"\n />\n </span>\n </div>\n {\n _.isEmpty(this.props.error.echeckAccountNumber) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.echeckAccountNumber}\n </div>\n }\n </div>\n <div className=\"col-12\">\n <label className=\"form-check form-check-inline\" htmlFor=\"personal\">\n <input\n className=\"form-check-input acct-type\"\n type=\"radio\" name=\"acctType\"\n id=\"personalRadio\"\n value=\"personal\"\n defaultChecked\n /> Personal\n </label>\n <label className=\"form-check form-check-inline\" htmlFor=\"businessRadio\">\n <input\n className=\"form-check-input acct-type\"\n type=\"radio\" name=\"acctType\"\n id=\"businessRadio\"\n value=\"business\"\n /> Business\n </label>\n </div>\n </div>\n </div>\n );\n }\n}\n\nECheckForm.propTypes = {\n echeckInfo: PropTypes.object,\n dispatch: PropTypes.func,\n error: PropTypes.object,\n paymentSaved: PropTypes.bool\n};\n\nclass CCForm extends React.Component {\n validateZip(e) {\n const zip = e.currentTarget.value;\n const zipReg = /^\\d{5}([-]?\\d{4})?$/;\n let errors = [];\n if (_.isEmpty(zip)) {\n errors.push({\n errorCode: 'ZipCodeRequired',\n errorMessage: 'Zip code is required.'\n });\n } else if (!zipReg.test(zip)) {\n // Failed\n errors.push({\n errorCode: 'InvalidZip',\n errorMessage: 'Zip code provided is not valid.'\n });\n }\n\n // If an error was caught, send it\n if (!_.isEmpty(errors)) {\n this.props.dispatch(validationError(errors));\n }\n }\n\n render() {\n return (\n <div className=\"ccform\">\n <div className=\"row cn\">\n <div className=\"col-12\">\n {\n _.isUndefined(this.props.cardInfo) ?\n <div className={\"form-group\" +\n (this.props.paymentSaved ? ' has-success' : '') +\n (_.isEmpty(this.props.error.paymentInfo) ? '' : ' has-danger')}>\n <div id=\"stripeCCNum\" className=\"field\"></div>\n <small id=\"stripeCCNumError\"></small>\n {\n this.props.paymentSaved ?\n <small className=\"form-control-feedback\">New payment has been saved!</small> :\n null\n }\n {\n _.isEmpty(this.props.error.paymentInfo) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.paymentInfo}\n </div>\n }\n </div> :\n <div className=\"editing-card\">\n <PaymentInfo\n method={this.props.cardInfo}\n edit={false}\n />\n <div className=\"row dt-cd\">\n <div className={\"form-group ccZip\" + (_.isEmpty(this.props.error.ccZip) ? '' : ' has-danger')}>\n <input\n type=\"text\"\n id=\"cardZip\"\n className=\"form-control form-control-sm\"\n placeholder=\"Zip Code\"\n defaultValue={\n this.props.cardInfo ?\n this.props.cardInfo.zipCode :\n ''\n }\n aria-required=\"true\"\n aria-invalid={!_.isEmpty(this.props.error.ccZip)}\n />\n </div>\n <div className={\"form-group\" + ((_.isEmpty(this.props.error.expMonth) && _.isEmpty(this.props.error.expYear)) ?\n '' : ' has-danger')}>\n <input\n type=\"tel\"\n id=\"expMonth\"\n className=\"form-control form-control-sm\"\n placeholder=\"MM\"\n onKeyUp={e => Utils.numbersOnly(e)}\n defaultValue={\n this.props.cardInfo ?\n this.props.cardInfo.expMonth :\n ''\n }\n aria-required=\"true\"\n aria-invalid={!_.isEmpty(this.props.error.expMonth)}\n />\n <span>/</span>\n <input\n type=\"tel\"\n id=\"expYear\"\n className=\"form-control form-control-sm\"\n placeholder=\"YYYY\"\n onKeyUp={e => Utils.numbersOnly(e)}\n defaultValue={\n this.props.cardInfo ?\n this.props.cardInfo.expYear :\n ''\n }\n aria-required=\"true\"\n aria-invalid={!_.isEmpty(this.props.error.expYear)}\n />\n </div>\n </div>\n {\n (_.isEmpty(this.props.error.expMonth) &&\n _.isEmpty(this.props.error.expYear) &&\n _.isEmpty(this.props.error.ccZip)) ?\n null :\n <div className=\"form-group has-danger\">\n {\n _.isEmpty(this.props.error.expMonth) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.expMonth}\n </div>\n }\n {\n _.isEmpty(this.props.error.expYear) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.expYear}\n </div>\n }\n {\n _.isEmpty(this.props.error.ccZip) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.ccZip}\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col-12\">\n <div className={\"form-group\" + (_.isEmpty(this.props.error.cardholderName) ? '' : ' has-danger')}>\n <input\n type=\"text\"\n id=\"cardholderName\"\n className=\"form-control form-control-sm\"\n placeholder=\"Name as it appears on your card\"\n defaultValue={this.props.cardInfo ?\n this.props.cardInfo.cardholderName :\n ''}\n aria-required=\"true\"\n aria-invalid={!_.isEmpty(this.props.error.cardholderName)}\n />\n {\n _.isEmpty(this.props.error.cardholderName) ?\n null :\n <div className=\"form-control-feedback small\">\n {this.props.error.cardholderName}\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nCCForm.propTypes = {\n cardInfo: PropTypes.object,\n dispatch: PropTypes.func,\n error: PropTypes.object,\n paymentSaved: PropTypes.bool\n};\n\nexport default connect(mapStateToProps)(NewPayment);\n\n\n\n// WEBPACK FOOTER //\n// app/common/components/NewPayment/NewPayment.jsx","//import React from 'react';\nimport axios from 'axios';\nimport {connect} from 'react-redux';\nimport React from 'react';\nimport {version} from '../../../version.json';\nimport Utils from '../../js/utils.js';\n\nconst mapStateToProps = store => {\n return {\n globalPushEnabled: store.user.globalPushEnabled,\n userID: store.user.id,\n username: store.user.userInfo.username,\n pushNotLoading: store.user.pushNotLoading,\n loading: store.user.loading\n };\n};\n\nclass NotificationsDebug extends React.Component {\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.state = {\n error: '',\n enabled: true,\n pushUserID: undefined,\n isOSAllowed: true,\n devicePushRegID: null,\n prevDevicePushRegID: null\n };\n }\n\n registerDeviceID(e) {\n e.preventDefault();\n const deviceId = this.notifDebugForm.inputDeviceIDDebug.value;\n const androidOS = this.notifDebugForm.android.checked;\n const iosOS = this.notifDebugForm.ios.checked;\n let error = '';\n\n if(deviceId === '') error = 'Device Id required. ';\n if(androidOS === iosOS) error = error + 'You must select an OS. ';\n\n if(error === '') {\n const prevDeviceID = Utils.getFromStorage('prevDevicePushRegID') || null;\n const pLoad = {\n deviceIDCode: deviceId,\n osID: androidOS ? this.notifDebugForm.android.value : this.notifDebugForm.ios.value,\n prevDeviceIDCode: prevDeviceID,\n pushEnabled: true\n }\n const currentTime = new Date();\n const notificationCall = axios.create({\n baseURL: APP_API + 'Notification/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n });\n notificationCall.defaults.headers.common['User-Token'] = Utils.checkForToken();\n\n notificationCall.post('/UpdateGlobalPushSetting', pLoad)\n .then(response => {\n if (response.status === 200) {\n this.props.dispatch({\n type: 'UPDATE_PUSH_GLOBAL_SUCCESS',\n payload: true\n });\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n this.props.dispatch({\n type: 'UPDATE_PUSH_GLOBAL_FAILURE'\n });\n });\n\n console.warn({\n e: e,\n notifDebugForm: this.notifDebugForm,\n deviceId: deviceId,\n androidOS: androidOS,\n iosOS: iosOS,\n props: this.props,\n error: error\n });\n\n\n }\n\n this.setState({\n error: error\n })\n }\n\n testPush(e) {\n e.preventDefault();\n const deviceId = this.state.devicePushRegID;\n const devicePlatform = window.Capacitor.getPlatform();\n const currentTime = new Date();\n const osID = {\n android: 1,\n ios: 2\n };\n\n const testCall = axios.create({\n baseURL: APP_API + 'Test/',\n headers: {\n 'API-Changeset': API_CHANGESET,\n 'Version': version,\n 'Content-Type': 'application/json',\n 'UTC-Offset-Minutes': currentTime.getTimezoneOffset()\n }\n });\n\n testCall.defaults.headers.common['User-Token'] = Utils.checkForToken();\n\n testCall.post('/TestPush', {deviceIDCode: deviceId, pushOSID: osID[devicePlatform]})\n .then(response => {\n if (response.status === 200) {\n this.props.dispatch({type: 'PUSH_TEST_SUCCESS'});\n console.warn({\n response: response\n })\n }\n })\n .catch(function(error) {\n Utils.dispatchError(error, dispatch);\n this.props.dispatch({\n type: 'PUSH_TEST_SUCCESS'\n });\n });\n }\n\n componentDidMount() {\n if(Utils.isApp()) {\n (async() => {\n const appInfo = await window.Capacitor.Plugins.App.getInfo();\n })();\n\n this.setState({\n devicePushRegID: Utils.getFromStorage('devicePushRegID'),\n prevDevicePushRegID: Utils.getFromStorage('prevDevicePushRegID')\n })\n }\n }\n\n render() {\n return (\n <div id='notification-settings-debug' className='card'>\n <div className='list-group'>\n <li className='list-group-item'>\n <div className='form-check'>\n Push Notification Debugger\n </div>\n </li>\n <hr />\n <li className='list-group-item'>\n <div className='card-block' style={{padding: 0}}>\n <form\n //onSubmit={this.handleSave.bind(this)}\n onSubmit={this.registerDeviceID.bind(this)}\n ref={node => this.notifDebugForm = node}\n noValidate=\"novalidate\"\n //onChange={this.enableSave.bind(this)}\n >\n <textarea\n id='inputDeviceIDDebug'\n rows='1'\n placeholder={'Device Id'}\n style={{\n width: '100%',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: '-internal-light-dark(rgb(118, 118, 118), rgb(133, 133, 133))',\n borderImage: 'initial'\n }}\n className='textarea'\n ref={node => this.inputDeviceIDDebugNode = node}\n ></textarea>\n <div className=\"form-check form-check-inline\" style={{width: 90}}>\n <input style={{marginRight: 5}} className=\"\" type=\"radio\" name=\"mobileOS\" id=\"android\" value=\"1\"/>\n <label className=\"\" htmlFor=\"android\">\n android\n </label>\n </div>\n <div className=\"form-check form-check-inline\" style={{width: 90}}>\n <input style={{marginRight: 5}} className=\"\" type=\"radio\" name=\"mobileOS\" id=\"ios\" value=\"2\"/>\n <label className=\"\" htmlFor=\"ios\">\n ios\n </label>\n </div>\n <button\n className='btn btn-primary btn-md pull-right'\n //disabled={true}\n onClick={this.registerDeviceID.bind(this)}\n >register</button>\n <hr />\n <div className='form-check'>\n FCM Device Token\n </div>\n <textarea\n id='device-fcm-token'\n placeholder={'Device Id'}\n rows={5}\n value={this.state.devicePushRegID}\n disabled\n style={{\n width: '100%',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: '-internal-light-dark(rgb(118, 118, 118), rgb(133, 133, 133))',\n borderImage: 'initial',\n overflow: 'hidden'\n }}\n className='textarea'\n ></textarea>\n <button\n className='btn btn-primary btn-md pull-right'\n //disabled={true}\n onClick={this.testPush.bind(this)}\n >test</button>\n\n {\n this.state.error === '' ?\n null : <div className=\"error-text small\">\n {\n this.state.error\n }\n </div>\n }\n </form>\n </div>\n </li>\n </div>\n </div>\n );\n }\n}\n\nexport default connect(mapStateToProps)(NotificationsDebug);\n\n\n// WEBPACK FOOTER //\n// app/common/components/NotificationDebug/NotificationDebug.jsx","// Auth\r\nexport const InvalidPinOrPinToken = \"InvalidPinOrPinToken\";\r\nexport const InvalidPinToken = \"InvalidPinToken\";\r\nexport const PinRequired = \"PinRequired\";\r\nexport const PinDigitsOnly = \"PinDigitsOnly\";\r\nexport const PinLength = \"PinLength\";\r\nexport const CreatePinRequiresSignIn = \"CreatePinRequiresSignIn\";\r\nexport const CreatePinFailed = \"CreatePinFailed\";\r\nexport const DeletePinFailed = \"DeletePinFailed\";\r\nexport const CredentialsInvalid = \"CredentialsInvalid\";\r\nexport const PasswordRequired = \"PasswordRequired\";\r\nexport const UsernameRequired = \"UsernameRequired\";\r\nexport const SignOutFailed = \"SignOutFailed\";\r\nexport const UserTokenInvalid = \"UserTokenInvalid\";\r\nexport const CoppaValidationSuspended = \"CoppaValidationSuspended\";\r\nexport const CoppaBirthdateInvalid = \"CoppaBirthdateInvalid\";\r\n\r\n// General\r\nexport const AddDataFailed = \"AddDataFailed\";\r\nexport const Exception = \"Exception\";\r\nexport const GetDataFailed = \"GetDataFailed\";\r\nexport const HttpMethodInvalid = \"HttpMethodInvalid\";\r\nexport const MethodDoesNotExist = \"MethodDoesNotExist\";\r\nexport const MethodInputMissing = \"MethodInputMissing\";\r\nexport const MethodInputParsingFailed = \"MethodInputParsingFailed\";\r\nexport const MethodSecurityAttributeInvalid = \"MethodSecurityAttributeInvalid\";\r\nexport const MethodSecurityAttributeMissing = \"MethodSecurityAttributeMissing\";\r\nexport const RequestTimeout = \"RequestTimeout\";\r\nexport const SchoolFeeInactive = \"SchoolFeeInactive\";\r\nexport const SessionInvalid = \"SessionInvalid\";\r\nexport const UpdateDataFailed = \"UpdateDataFailed\";\r\nexport const VersionHeaderInvalid = \"VersionHeaderInvalid\";\r\nexport const VersionHeaderMissing = \"VersionHeaderMissing\";\r\nexport const AlreadyActiveForPublicUser = \"AlreadyActiveForPublicUser\";\r\nexport const PatronNotOnUserProfile = \"PatronNotOnUserProfile\";\r\nexport const IncorrectCvc = \"IncorrectCvc\";\r\nexport const ApiChangesetHeaderInvalid = \"ApiChangesetHeaderInvalid\";\r\nexport const ClientSourceNotSupported = \"ClientSourceNotSupported\";\r\nexport const ClientSourceHeaderMissing = \"ClientSourceHeaderMissing\";\r\nexport const ClientSourceHeaderInvalid = \"ClientSourceHeaderInvalid\";\r\nexport const UiNotAllowed = \"UiNotAllowed\";\r\nexport const UiUpgradeRequired = \"UiUpgradeRequired\";\r\n\r\n// Patron\r\nexport const ShowPosTransNotAllowedBySchool = \"ShowPosTransNotAllowedBySchool\";\r\nexport const PatronNotFound = \"PatronNotFound\";\r\nexport const MT2CallForMT5Patron = \"MT2CallForMT5Patron\";\r\n\r\n// Public User\r\nexport const EmailLength = \"EmailLength\";\r\nexport const EmailRequired = \"EmailRequired\";\r\nexport const EmailsMustMatch = \"EmailsMustMatch\";\r\nexport const EmailUnavailable = \"EmailUnavailable\";\r\nexport const EmailInvalid = \"EmailInvalid\";\r\nexport const NotifEmail2Invalid = \"NotifEmail2Invalid\";\r\nexport const NotifEmail3Invalid = \"NotifEmail3Invalid\";\r\nexport const FirstNameLength = \"FirstNameLength\";\r\nexport const FirstNameRequired = \"FirstNameRequired\";\r\nexport const LastNameLength = \"LastNameLength\";\r\nexport const LastNameRequired = \"LastNameRequired\";\r\nexport const PasswordLength = \"PasswordLength\";\r\nexport const PasswordRules = \"PasswordRules\";\r\nexport const PasswordsMustMatch = \"PasswordsMustMatch\";\r\nexport const PhoneAreaCodeRequired = \"PhoneAreaCodeRequired\";\r\nexport const PhoneNumRequired = \"PhoneNumRequired\";\r\nexport const RepeatEmailRequired = \"RepeatEmailRequired\";\r\nexport const RepeatPasswordRequired = \"RepeatPasswordRequired\";\r\nexport const ResetPasswordFailed = \"ResetPasswordFailed\";\r\nexport const SecurityAnswerIncorrect = \"SecurityAnswerIncorrect\";\r\nexport const SecurityAnswerLength = \"SecurityAnswerLength\";\r\nexport const SecurityAnswerRequired = \"SecurityAnswerRequired\";\r\nexport const SecurityQuestionIDRequired = \"SecurityQuestionIDRequired\";\r\nexport const SendForgotUsernameEmailFailed = \"SendForgotUsernameEmailFailed\";\r\nexport const SendPasswordResetEmailFailed = \"SendPasswordResetEmailFailed\";\r\nexport const SendWelcomeMessageEmailFailed = \"SendWelcomeMessageEmailFailed\";\r\nexport const UserIDRequired = \"UserIDRequired\";\r\nexport const UsernameLength = \"UsernameLength\";\r\nexport const UsernameUnavailable = \"UsernameUnavailable\";\r\nexport const UserNotFound = \"UserNotFound\";\r\n\r\n// Deposit\r\nexport const CheckingAccountNotFound = \"CheckingAccountNotFound\";\r\nexport const TotalDepositAmountInvalidRange = \"TotalDepositAmountInvalidRange\";\r\nexport const DuplicateDepositForPatron = \"DuplicateDepositForPatron\";\r\nexport const IdempotencyError = \"IdempotencyError\";\r\n\r\n// Mobile\r\nexport const PushEnabledForDeviceIDCodeForDifferentUser = \"PushEnabledForDeviceIDCodeForDifferentUser\";\n\n\n// WEBPACK FOOTER //\n// app/common/constants/ErrorCodes.js","export const RUN_LOW_BAL_ALERTS = \"RUN_LOW_BAL_ALERTS\";\r\nexport const RUN_LOW_BAL_ALERTS_SUCCESS = \"RUN_LOW_BAL_ALERTS_SUCCESS\";\n\n\n// WEBPACK FOOTER //\n// app/common/constants/TestConstants.js","import {triggerReauthenticate} from '../actions/AuthAction.js';\r\n\r\nimport store from 'APP_STORE';\r\n\r\n/**\r\n * For those errors that require an action to be taken,\r\n * like reauthenticating a user when their session expires,\r\n * those \"errors\" are handled here.\r\n * @param {Error} error The error to handle\r\n * @param {function} dispatch Redux dispatch function\r\n */\r\nexport default function actionableError(error, dispatch, response) {\r\n\r\n if (error.error.errorCode === \"UserTokenInvalid\" || error.error.errorCode === \"SessionInvalid\") {\r\n dispatch(triggerReauthenticate());\r\n\r\n // Instead of passing the user id all over the place, just snag the value from the store\r\n //if (!store.getState().auth.isAuthenticated) {\r\n //Utils.reauthenticate(store.getState().user.id, dispatch);\r\n //}\r\n\r\n Utils.reauthenticate(store.getState().user.id, dispatch);\r\n }\r\n\r\n if(error.error.errorCode === \"CoppaBirthdateRequired\") {\r\n\r\n Utils.updateModal('coppa', {\r\n configData:response.config.data\r\n });\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/js/ActionableError.js","import * as types from '../constants/ErrorCodes.js';\r\nimport Utils from '../js/utils.js';\r\n\r\nimport {getSchoolFees} from '../actions/PatronsAction.js';\r\nimport {removeFee} from '../actions/CartAction.js';\r\nimport {signOutSimple} from '../actions/AuthAction.js';\r\n\r\nfunction generalErrorHandler(error, dispatch) {\r\n let header = '';\r\n let message = '';\r\n let onDismiss; // Can be undefined, will be replaced by default\r\n let devicePlatform = window.Capacitor ? window.Capacitor.getPlatform() : 'web';\r\n\r\n switch (error.error.errorCode) {\r\n // TODO: Replace message with component for more complicated message if needed\r\n // TODO: Condense all these cases if they don't have a specific message to display\r\n case types.RequestTimeout:\r\n header = 'Request Timed Out';\r\n message = `The task you were trying to accomplish has taken too long\r\n to respond. Please try again.`;\r\n break;\r\n case types.VersionHeaderInvalid:\r\n case types.VersionHeaderMissing:\r\n header = 'Invalid Version';\r\n message = `You are using an outdated version of MyMealTime. ${devicePlatform == 'web' ? 'Please refresh this page to update.' : 'Please update your app to the most recent version.'}`;\r\n\r\n onDismiss = function() {\r\n if (devicePlatform == 'web') Utils.reloadSiteAndCache();\r\n };\r\n break;\r\n case types.ApiChangesetHeaderInvalid:\r\n case types.ClientSourceHeaderMissing:\r\n case types.ClientSourceHeaderInvalid:\r\n header = 'New Version Available';\r\n if(devicePlatform == 'web') {\r\n message = `Please click 'OK' to refresh this page and update My MealTime to the latest version.`;\r\n } else {\r\n message = `Please click 'OK' to go to the ${devicePlatform == 'ios' ? 'App Store' : 'Play Store'} and update My MealTime to the latest version.`;\r\n }\r\n onDismiss = function() {\r\n if(devicePlatform == 'ios') {\r\n Utils.openLink(\"itms-apps://itunes.apple.com/app/id1236912569\", \"_system\");\r\n } else if(devicePlatform == 'android') {\r\n Utils.openLink(\"market://details?id=com.mealtime.mto.parent\", \"_system\");\r\n } else {\r\n Utils.reloadSiteAndCache();\r\n }\r\n $('#error').modal('hide');\r\n $('.gen-modal').removeClass('ghost');\r\n };\r\n break;\r\n case types.UiUpgradeRequired:\r\n header = '';\r\n message = error.error.errorMessage;\r\n onDismiss = function() {\r\n if(devicePlatform == 'ios') {\r\n Utils.openLink(\"itms-apps://itunes.apple.com/app/id1236912569\", \"_system\");\r\n } else if(devicePlatform == 'android') {\r\n Utils.openLink(\"market://details?id=com.mealtime.mto.parent\", \"_system\");\r\n } else {\r\n Utils.reloadSiteAndCache();\r\n }\r\n $('#error').modal('hide');\r\n $('.gen-modal').removeClass('ghost');\r\n };\r\n break;\r\n case types.SchoolFeeInactive:\r\n header = 'School Fee Inactive';\r\n message = 'You have a fee in your cart that is no longer active. The items have been removed.';\r\n onDismiss = e => {\r\n let feeInfo = _.findWhere(error.relatedData, {key: 'subAccountID'});\r\n dispatch(removeFee(Number(feeInfo.value)));\r\n dispatch(getSchoolFees());\r\n $('#error').modal('hide');\r\n $('.gen-modal').removeClass('ghost');\r\n };\r\n break;\r\n case types.CheckingAccountNotFound: {\r\n let patronNames = _.findWhere(error.relatedData, {key: 'patronNames'});\r\n header = 'Checking account not found';\r\n message = 'Missing checking account for ' + patronNames.value;\r\n break;\r\n }\r\n case types.TotalDepositAmountInvalidRange:\r\n case types.EmailUnavailable:\r\n // Don't display the error\r\n return {};\r\n case types.AlreadyActiveForPublicUser:\r\n //level 1 msg\r\n Utils.updateModal('confirm', {\r\n msg: 'This student is already on your account.',\r\n timeout: 2000,\r\n styleClass: 'level1'\r\n });\r\n return {};\r\n case types.PatronNotOnUserProfile:\r\n //TODO surpressing error for now.\r\n return {};\r\n case types.CoppaBirthdateInvalid:\r\n //TODO Refactor\r\n Utils.updateModal('confirm', {\r\n header:'',\r\n msg: error.error.errorMessage\r\n });\r\n return {};\r\n case types.IncorrectCvc:\r\n header = \"Incorrect CVC\";\r\n message = error.error.errorMessage;\r\n break;\r\n case types.IdempotencyError:\r\n console.log(error.error.errorMessage);\r\n // Don't display the error\r\n return {};\r\n case types.PushEnabledForDeviceIDCodeForDifferentUser:\r\n Utils.updateModal('master',{\r\n headerTxt:'Notification Settings'\r\n });\r\n return {};\r\n case types.UiNotAllowed:\r\n case types.ClientSourceNotSupported:\r\n header = \"\";\r\n message = error.error.errorMessage;\r\n\r\n onDismiss = e => {\r\n dispatch(signOutSimple());\r\n $('#error').modal('hide');\r\n $('.gen-modal').removeClass('ghost');\r\n }\r\n break;\r\n default:\r\n // You can either add another case for a new error\r\n // or let default handle it.\r\n header = \"\";// error.error.errorCode;\r\n message = error.error.errorMessage;\r\n break;\r\n }\r\n\r\n return {\r\n header: header,\r\n message: message,\r\n onDismiss: onDismiss\r\n };\r\n}\r\n\r\nexport default generalErrorHandler;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/js/GeneralErrorHandler.js","import { disableBiometry } from \"./Biometry\";\n\nexport async function isFreshInstall() {\n const { value } = await window.Capacitor.Plugins.Preferences.get({ key: 'install' });\n\n if(value === null) {\n console.warn({\n msg: 'Fresh install detected, setting install date',\n })\n await disableBiometry();\n await window.Capacitor.Plugins.Preferences.set({\n key: 'install',\n value: new Date(Date.now()).toLocaleString(),\n });\n return true;\n } else {\n console.warn({\n msg: 'Not a fresh install',\n })\n return false;\n }\n}\n\n\n// WEBPACK FOOTER //\n// app/common/js/MobileAppData.js","export function paymentExpired() {\r\n Utils.updateModal('payment-select', {\r\n save: true\r\n });\r\n}\r\n\r\nexport function paymentInvalid() {\r\n Utils.updateModal('payment-select', {\r\n save: true\r\n });\r\n}\r\n\r\nexport function scheduledSuccessful(scheduledDepositID) {\r\n // Utils.updateModal('confirm', {msg: 'Scheduled deposit run successfully!'});\r\n //document.dispatchEvent(new CustomEvent('view-receipt', {\r\n // detail: {\r\n // depositID\r\n // }\r\n //}));\r\n document.dispatchEvent(new CustomEvent('load-sub', {\r\n detail: {\r\n scheduledDepositID\r\n }\r\n }));\r\n}\r\n\r\nexport function scheduledFailed(scheduledDepositID) {\r\n // Utils.updateModal('confirm', {msg: 'Scheduled deposit crashed and burned!'});\r\n document.dispatchEvent(new CustomEvent('load-sub', {\r\n detail: {\r\n scheduledDepositID\r\n }\r\n }));\r\n}\r\n\r\n// Upcoming scheduled deposit is invalid\r\nexport function scheduledInvalid(scheduledDepositID) {\r\n Utils.updateModal('confirm', {msg: 'Something is wrong with one of your scheduled deposits!'});\r\n document.dispatchEvent(new CustomEvent('load-sub', {\r\n detail: {\r\n scheduledDepositID\r\n }\r\n }));\r\n}\r\n\r\n// Upcoming scheduled deposit is valid\r\nexport function upcomingScheduledDeposit(scheduledDepositID) {\r\n // Utils.updateModal('confirm', {msg: 'You have an upcoming scheduled deposit!'});\r\n document.dispatchEvent(new CustomEvent('load-sub', {\r\n detail: {\r\n scheduledDepositID\r\n }\r\n }));\r\n}\r\n\r\nexport function lowBalance(patron) {\r\n Utils.updateModal('confirm', {msg: 'A balance is low!'});\r\n // Utils.updateModal('deposit', {\r\n // name: undefined,\r\n // acctID: undefined,\r\n // patronID: undefined,\r\n // checkingAccountID: undefined\r\n // });\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/js/PushHandler.js","import ErrorIDs from '../constants/ValidationErrorIDs.json';\r\n\r\nfunction validationErrorHandler(errors, newErrors) {\r\n let newArray = errors.slice();\r\n let message;\r\n\r\n for (let err of newErrors) {\r\n switch (err.errorCode) {\r\n case 'live_mode_test_card':\r\n message = 'Your request was in live mode, but used a known test card.';\r\n break;\r\n case 'fraudulent':\r\n case 'merchant_blacklist':\r\n message = 'This card has been declined for an unknown reason.';\r\n break;\r\n default:\r\n message = err.errorMessage;\r\n break;\r\n }\r\n let newError = {\r\n id: ErrorIDs[err.errorCode],\r\n message: message\r\n };\r\n let index = _.findIndex(newArray, function(existingErr) {\r\n let shared = _.intersection(existingErr.id, newError.id);\r\n return shared.length > 0;\r\n });\r\n\r\n if (index === -1) {\r\n newArray.push(newError);\r\n } else {\r\n newArray[index].message += '\\n' + newError.message;\r\n }\r\n }\r\n\r\n return newArray;\r\n}\r\n\r\nexport default validationErrorHandler;\n\n\n// WEBPACK FOOTER //\n// app/common/js/ValidationErrorHandler.js","import * as types from '../constants/AboutConstants.js';\r\nimport {REHYDRATE} from 'redux-persist/constants';\r\n\r\nconst aboutDefaults = {\r\n loading: false,\r\n changeNotes: [],\r\n databaseVersion: ''\r\n};\r\n\r\nconst AboutReducer = (state = aboutDefaults, action) => {\r\n switch (action.type) {\r\n case types.GET_CHANGE_NOTES:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.GET_CHANGE_NOTES_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n changeNotes: action.payload\r\n };\r\n case types.GET_CHANGE_NOTES_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.GET_DATABASE_VERSION:\r\n return{\r\n ...state,\r\n loading: true\r\n };\r\n case types.GET_DATABASE_VERSION_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n databaseVersion: action.payload.databaseVersion\r\n };\r\n case types.GET_DATABASE_VERSION_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case REHYDRATE: {\r\n let incoming = action.payload.databaseVersion;\r\n if (incoming) {\r\n return {\r\n ...state,\r\n ...incoming,\r\n loading: false\r\n };\r\n }\r\n return state;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n return state;\r\n};\r\n\r\nexport default AboutReducer;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/AboutReducer.js","import * as types from '../constants/AuthConstants.js';\r\nimport {\r\n FORGOT_PASS,\r\n FORGOT_USERNAME,\r\n FORGOT_USERNAME_SUCCESS,\r\n SUBMIT_SECURITY_A,\r\n SUBMIT_SECURITY_A_SUCCESS,\r\n REGISTER_REQUEST,\r\n REGISTER_SUCCESS\r\n} from '../constants/UserConstants.js';\r\nimport {REHYDRATE} from 'redux-persist/constants';\r\n\r\nconst authDefaults = {\r\n emailSent: false,\r\n emailContext: '',\r\n isAuthenticated: false,\r\n persisted: undefined,\r\n loading: false,\r\n token: undefined,\r\n tokenLength: undefined,\r\n lastActivity: undefined,\r\n apiInfo: undefined,\r\n isCoppaCompliant: undefined,\r\n userCoppa: {},\r\n coppaLoading: false\r\n};\r\n\r\nconst AuthReducer = (state = authDefaults, action) => {\r\n if (action.type.includes('_SUCCESS') || action.type.includes('_FAILURE')) {\r\n // Reset on any response from the server.\r\n // state.lastActivity = new Date();\r\n state = {\r\n ...state,\r\n lastActivity: new Date()\r\n };\r\n }\r\n switch (action.type) {\r\n case types.TRIGGER_COPPA:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.COPPA_VALIDATE_DOB:\r\n return {\r\n ...state,\r\n coppaLoading: true\r\n };\r\n case types.COPPA_VALIDATE_DOB_SUCCESS:\r\n return {\r\n ...state,\r\n coppaLoading: false,\r\n isCoppaCompliant: true,\r\n userCoppa: action.payload\r\n };\r\n case types.COPPA_VALIDATE_DOB_FAILURE:\r\n return {\r\n ...state,\r\n coppaLoading: false,\r\n isCoppaCompliant: false,\r\n userCoppa: action.payload\r\n };\r\n case types.COPPA_CLEAR:\r\n return {\r\n ...state,\r\n userCoppa: {}\r\n };\r\n case types.REAUTH:\r\n case types.PIN_REAUTH:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.PIN_REAUTH_SUCCESS:\r\n case types.REAUTH_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n isAuthenticated: true,\r\n token: action.payload\r\n };\r\n case REGISTER_SUCCESS:\r\n case types.PIN_SIGN_IN_SUCCESS:\r\n case types.SIGN_IN_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n isAuthenticated: true,\r\n persisted: action.payload.persisted,\r\n token: action.payload.token,\r\n tokenLength: action.payload.tokenLength,\r\n apiInfo: action.payload.apiInfo,\r\n userCoppa: {}\r\n };\r\n case types.SIGN_IN_FAILURE:\r\n return {\r\n ...state,\r\n loading: false,\r\n isAuthenticated: false\r\n };\r\n case REGISTER_REQUEST:\r\n return {\r\n ...state\r\n };\r\n case types.SIGN_OUT:\r\n case types.SIGN_OUT_SUCCESS:\r\n return {\r\n ...authDefaults\r\n };\r\n case types.SIGN_OUT_FAILURE:\r\n // The user said Sign Out, so who cares what we say\r\n return authDefaults;\r\n case types.TRIGGER_REAUTH:\r\n return {\r\n ...state,\r\n isAuthenticated: false\r\n };\r\n case types.PIN_REAUTH_FAILURE:\r\n case types.REAUTH_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.SIGN_IN_REQUEST:\r\n case types.PIN_SIGN_IN:\r\n return {\r\n ...authDefaults,\r\n loading: true\r\n };\r\n case types.PIN_SIGN_IN_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.ADD_PIN:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.ADD_PIN_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.ADD_PIN_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.REM_PIN:\r\n return {\r\n ...state\r\n };\r\n case types.REM_PIN_SUCCESS:\r\n return {\r\n ...state\r\n };\r\n case types.REM_PIN_FAILURE:\r\n return {\r\n ...state\r\n };\r\n case FORGOT_PASS:\r\n return {\r\n ...state,\r\n emailSent: false,\r\n emailContext: 'forgotPassword'\r\n };\r\n case FORGOT_USERNAME:\r\n return {\r\n ...state,\r\n emailSent: false,\r\n emailContext: 'forgotUsername'\r\n };\r\n case SUBMIT_SECURITY_A:\r\n return {\r\n ...state,\r\n emailSent: false,\r\n emailContext: 'forgotPassword'\r\n };\r\n case FORGOT_USERNAME_SUCCESS:\r\n case SUBMIT_SECURITY_A_SUCCESS:\r\n return {\r\n ...state,\r\n emailSent: true\r\n };\r\n case REHYDRATE: {\r\n let incoming = action.payload.auth;\r\n if (incoming) {\r\n if (_.isString(incoming.lastActivity)) incoming.lastActivity = new Date(incoming.lastActivity);\r\n return {\r\n ...state,\r\n ...incoming,\r\n loading: false,\r\n emailSent: false\r\n };\r\n }\r\n return state;\r\n }\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport default AuthReducer;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/AuthReducer.js","import * as types from '../constants/CartConstants.js';\nimport {GET_USER_BY_TOKEN_SUCCESS, REGISTER_REQUEST} from '../constants/UserConstants.js';\nimport {PIN_SIGN_IN, SIGN_IN_REQUEST, SIGN_OUT} from '../constants/AuthConstants.js';\nimport {PATRON_REM_SUCCESS} from '../constants/PatronsConstants.js';\nimport {REHYDRATE} from 'redux-persist/constants';\nvar uuid = require('uuid/v4');\n\nconst cartDefaults = {\n fee: { totalUserFeeAmount: 0, minDepositAmount: 0 }, \n feesPaid: [],\n items: [],\n memos: [],\n loading: false,\n total: 0,\n paymentMethod: undefined,\n checkoutSuccess: undefined,\n receipts: [],\n cartKey: undefined\n};\n\nconst CartReducer = (state = cartDefaults, action) => {\n function _calculateTotal(items) {\n let sum = 0;\n if (items.length === 0) {\n // If there are no items...\n return sum;\n }\n for (let item of items) {\n sum += item.amount;\n }\n return sum;\n }\n\n function _addToCart(array, item) {\n let newArray = array.slice();\n //don't use negative Id coz it causes duplicate items in the cart\n let previous = (item.id < 0) ? _.findIndex(newArray, {checkingAccountID: item.checkingAccountID, patronID: item.patronID}) : _.findIndex(newArray, {id: item.id});\n if (previous === -1) { // Account does not already have item\n newArray.push(item);\n } else { // Item for that account already exists\n newArray[previous] = item;\n }\n\n if (typeof GA !== 'undefined' && !_.isNumber(item.amount)) {\n GA.event({\n category: 'Cart',\n action: 'Add',\n label: item.type,\n value: item.amount\n });\n }\n\n return newArray;\n }\n\n function _removeFromCart(cart, id, clearAll = false) {\n let newCart = cart.slice();\n let previous = _.findIndex(newCart, {id: id});\n\n // Remove if found\n if (previous !== -1) {\n newCart.splice(previous, 1);\n }\n\n if (clearAll) {\n // If the user is being deleted, the ID being passed is their patronAccountNum\n // so we make sure to delete all the fees associated with that account.\n // The deposit is taken care of with the deposit id === patronAccountNum\n const acctFees = _.where(newCart, {patronAccountNum: id});\n newCart = _.difference(newCart, acctFees);\n }\n\n return newCart;\n }\n\n function _removeFees(cart, subAccountID) {\n let newCart = cart.slice();\n\n let cartFees = _.where(newCart, {subAccountID: subAccountID});\n newCart = _.difference(newCart, cartFees);\n\n return newCart;\n }\n\n function _checkMemos(items, memos, id) {\n // Of all remaining items, do any fees with that subAccountID exist\n // There's probably a better way to do this\n let newMemos = [];\n for (let memo of memos) {\n const relevantItemIndex = _.findIndex(items, {subAccountID: memo.id});\n if (relevantItemIndex !== -1) {\n // This memo still has relevant items in the cart, we can keep it\n newMemos.push(memo);\n }\n }\n\n return newMemos;\n }\n\n switch (action.type) {\n case types.GOT_CART: {\n return {\n ...state,\n items: action.payload,\n total: _calculateTotal(action.payload)\n };\n }\n case types.VALIDATE_DEP_ITEM: {\n return {\n ...state,\n loading: true\n };\n }\n case types.VALIDATE_DEP_ITEM_SUCCESS: {\n return {\n ...state,\n loading: false\n };\n }\n case types.VALIDATE_DEP_ITEM_FAILURE: {\n return {\n ...state,\n loading: false\n };\n }\n case types.ADD_CART: {\n let newItems = _addToCart(state.items, action.payload);\n return {\n ...state,\n items: newItems,\n total: _calculateTotal(newItems),\n cartKey: uuid()\n };\n }\n case PATRON_REM_SUCCESS:\n case types.REM_CART: {\n let newItems = _removeFromCart(\n state.items,\n action.payload,\n (action.type === PATRON_REM_SUCCESS)\n );\n return {\n ...state,\n items: newItems,\n total: _calculateTotal(newItems),\n memos: _checkMemos(newItems, state.memos, action.payload),\n cartKey: uuid()\n };\n }\n case types.ADD_MEMO:\n return {\n ...state,\n memos: _addToCart(state.memos, action.payload) // I know, but it works\n };\n case types.REM_MEMO:\n return {\n ...state,\n memos: _removeFromCart(state.memos, action.payload)\n };\n case types.CALC_FEE:\n return {\n ...state,\n fee: { totalUserFeeAmount: 0}, \n loading: true\n };\n case types.CALC_FEE_SUCCESS:\n return {\n ...state,\n fee: action.payload,\n loading: false\n };\n case types.CALC_FEE_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.CHECKOUT: {\n return {\n ...state,\n loading: true,\n checkoutSuccess: false\n };\n }\n case types.CHECKOUT_SUCCESS: {\n return {\n ...state,\n loading: false,\n items: [],\n total: 0,\n checkoutSuccess: true\n };\n }\n case types.CHECKOUT_FAILURE:\n return {\n ...state,\n loading: false,\n checkoutSuccess: false,\n cartKey: uuid()\n };\n case types.REC_FETCH:\n return {\n ...state,\n loading: true\n };\n case types.REC_FETCH_SUCCESS:\n return {\n ...state,\n loading: false,\n receipts: action.payload\n };\n case types.REC_FETCH_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.GET_FEES_PAID:\n return {\n ...state,\n loading: true\n };\n case types.GET_FEES_PAID_SUCCESS:\n return {\n ...state,\n feesPaid: action.payload,\n loading: false\n };\n case types.GET_FEES_PAID_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.RESET_CART:\n return {\n ...cartDefaults,\n paymentMethod: state.paymentMethod\n };\n case types.UPDATE_PAYMENT:\n return {\n ...state,\n paymentMethod: action.payload,\n cartKey: uuid()\n };\n case types.REMOVE_FEE:\n return {\n ...state,\n items: _removeFees(state.items, action.payload)\n };\n case GET_USER_BY_TOKEN_SUCCESS:\n return {\n ...state,\n paymentMethod: action.payload.defaultPayment\n };\n case REGISTER_REQUEST:\n case SIGN_OUT:\n case SIGN_IN_REQUEST:\n case PIN_SIGN_IN:\n return cartDefaults;\n case REHYDRATE: {\n let incoming = action.payload.cart;\n if (incoming) {\n return {\n ...state,\n ...incoming,\n loading: false\n };\n }\n return state;\n }\n default: {\n break;\n }\n }\n return state;\n};\n\nexport default CartReducer;\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/CartReducer.js","import * as types from '../constants/ErrorConstants.js';\r\nimport {CLEAR_USER_VAL, CLEAR_EMAIL_VAL} from '../constants/UserConstants.js';\r\nimport {REHYDRATE} from 'redux-persist/constants';\r\nimport ErrorIDs from '../constants/ValidationErrorIDs.json';\r\n\r\nimport generalErrorHandler from '../js/GeneralErrorHandler.js';\r\nimport validationErrorHandler from '../js/ValidationErrorHandler';\r\n\r\nconst errorDefaults = {\r\n generalError: {},\r\n validationErrors: []\r\n};\r\n\r\nconst ErrorReducer = (state = errorDefaults, action) => {\r\n function _removeErrorType(errors, type) {\r\n let newErrors = [];\r\n\r\n for (let err of errors) {\r\n // Ignore errors of type\r\n if (!err.id.includes(type)) {\r\n newErrors.push(err);\r\n }\r\n }\r\n\r\n return newErrors;\r\n }\r\n\r\n switch (action.type) {\r\n case types.GENERAL_ERROR:\r\n return {\r\n ...state,\r\n generalError: generalErrorHandler(action.payload.error, action.payload.dispatch)\r\n };\r\n case types.VALIDATION_ERROR:\r\n return {\r\n ...state,\r\n validationErrors: validationErrorHandler(state.validationErrors, action.payload)\r\n };\r\n case types.REMOVE_GEN_ERROR:\r\n return {\r\n ...state,\r\n generalError: {}\r\n };\r\n case types.REMOVE_VAL_ERROR:\r\n return {\r\n ...state,\r\n validationErrors: []\r\n };\r\n case types.CLEAR_SPECIFIC_VAL:\r\n return {\r\n ...state,\r\n validationErrors: _removeErrorType(state.validationErrors, action.payload)\r\n };\r\n case types.CLEAR_ERRORS:\r\n return errorDefaults;\r\n case REHYDRATE:\r\n // Clear errors on refresh\r\n return {\r\n ...state,\r\n errorDefaults\r\n };\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport default ErrorReducer;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/ErrorReducer.js","import * as types from '../constants/PatronsConstants.js';\r\nimport {SIGN_IN_REQUEST, PIN_SIGN_IN, SIGN_OUT} from '../../common/constants/AuthConstants.js';\r\nimport {REGISTER_REQUEST} from '../../common/constants/UserConstants.js';\r\nimport {REHYDRATE} from 'redux-persist/constants';\r\n\r\nconst patronsDefaults = {\r\n loading: false,\r\n patrons: [],\r\n schools: [],\r\n loadedAccount: {},\r\n loadedPatron: {},\r\n transactions: [],\r\n deposits: [],\r\n fees: [],\r\n persisted: false,\r\n userPatrons: []\r\n};\r\n\r\nconst PatronsReducer = (state = patronsDefaults, action) => {\r\n function _addToAccounts(accts, acct) {\r\n let newArray = accts.slice();\r\n if (_.isNull(acct.patronAccountNum)) {\r\n let allIDs = _.pluck(accts, 'patronAccountNum');\r\n let tempID = Utils.tempAccountID();\r\n while (allIDs.includes(tempID)) {\r\n tempID = Utils.tempAccountID();\r\n }\r\n acct.patronAccountNum = tempID;\r\n\r\n newArray.push(acct);\r\n return newArray;\r\n }\r\n\r\n //Look for existing Cafe account\r\n let existing = _.findWhere(accts,\r\n {\r\n patronAccountNum: acct.patronAccountNum,\r\n districtLocationSeed: acct.districtLocationSeed\r\n });\r\n if (_.isUndefined(existing)) {\r\n newArray.push(acct);\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n function _removeFromAccounts(accts, id) {\r\n let newArray = accts.slice();\r\n let index = _.findIndex(newArray, {patronAccountNum: id});\r\n\r\n // Remove if found\r\n if (index !== -1) {\r\n newArray.splice(index, 1);\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n function _updateAccount(accts, acctObj) {\r\n let newArray = accts.slice();\r\n let index = _.findIndex(newArray, {\r\n patronAccountNum: acctObj.patronAccountNum\r\n });\r\n\r\n // Remove if found\r\n if (index !== -1) {\r\n newArray[index].color = acctObj.color;\r\n newArray[index].threshold = acctObj.treshold;\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n function _addToUserPatrons(currentUserPatrons, newPatrons) {\r\n let newUserPatrons = currentUserPatrons.slice();\r\n\r\n return newUserPatrons.concat(newPatrons);\r\n\r\n // return newUserPatrons;\r\n }\r\n\r\n function _updateUserPatrons(currentBalances, updatedBalances) {\r\n let newBalances = currentBalances.slice();\r\n for (let bal of updatedBalances) {\r\n let index = _.findIndex(newBalances, {\r\n patronID: bal.patronID\r\n });\r\n\r\n if (index !== -1) {\r\n newBalances[index] = bal;\r\n }\r\n }\r\n\r\n return newBalances;\r\n }\r\n\r\n function _reAssignTempIDs(currentPatrons, newPatronPayload) {\r\n let tempIDs = [];\r\n if (_.isEmpty(currentPatrons)) {\r\n return _assignTempIDs(newPatronPayload, tempIDs);\r\n }\r\n\r\n _.each(newPatronPayload, p => {\r\n if (_.isNull(p.patronAccountNum)) {\r\n let existing = _.findWhere(currentPatrons,\r\n {\r\n defaultPatronID: p.defaultPatronID,\r\n districtLocationSeed: p.districtLocationSeed\r\n });\r\n\r\n if (existing) {\r\n p.patronAccountNum = existing.patronAccountNum;\r\n tempIDs.push(p.patronAccountNum);\r\n }\r\n }\r\n });\r\n\r\n return _assignTempIDs(newPatronPayload, tempIDs);\r\n }\r\n\r\n function _assignTempIDs(patrons, tempIDs) {\r\n /*\r\n * Non-MT5 accounts don't have account IDs, so we assign some temporary\r\n */\r\n _.each(patrons, p => {\r\n if (_.isNull(p.patronAccountNum)) {\r\n let temp = Utils.tempAccountID();\r\n // Ensure no dupes\r\n // This will break if you have 900+ non-MT5 accounts\r\n while (tempIDs.includes(temp)) {\r\n temp = Utils.tempAccountID();\r\n }\r\n p.patronAccountNum = temp;\r\n tempIDs.push(temp);\r\n }\r\n });\r\n\r\n return patrons;\r\n }\r\n\r\n switch (action.type) {\r\n case types.PATRON_FETCH:\r\n return {\r\n ...state,\r\n // Won't show the loader on pull to refresh\r\n loading: _.isEmpty(state.patrons)\r\n };\r\n case types.PATRON_FETCH_SUCCESS: {\r\n let userPatronsPresent = state.persisted;\r\n return {\r\n ...state,\r\n loading: !userPatronsPresent,\r\n patrons: _reAssignTempIDs(state.patrons, action.payload),\r\n persisted: true // If no persist is needed, this will act in it's place\r\n };\r\n }\r\n case types.PATRON_FETCH_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.PATRON_ADD:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.PATRON_ADD_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n loadedAccount: action.payload.patronAccount,\r\n patrons: _addToAccounts(state.patrons, action.payload.patronAccount),\r\n userPatrons: _addToUserPatrons(state.userPatrons, action.payload.userPatrons)\r\n };\r\n case types.PATRON_ADD_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.PATRON_REM:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.PATRON_REM_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n loadedAccount: {},\r\n patrons: _removeFromAccounts(\r\n state.patrons,\r\n state.loadedAccount.patronAccountNum\r\n )\r\n };\r\n case types.PATRON_REM_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.LOAD_PATRON:\r\n return {\r\n ...state,\r\n loadedAccount: {},\r\n loadedPatron: action.payload\r\n };\r\n case types.LOAD_ACCT:\r\n return {\r\n ...state,\r\n loadedPatron: {},\r\n loadedAccount: action.payload\r\n };\r\n case types.CLEAR_LOADED:\r\n return {\r\n ...state,\r\n loadedAccount: {},\r\n loadedPatron: {}\r\n };\r\n case types.FETCH_TRANS:\r\n return {\r\n ...state,\r\n transactions: [],\r\n deposits: [],\r\n loading: true\r\n };\r\n case types.FETCH_TRANS_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n transactions: action.payload\r\n };\r\n case types.FETCH_TRANS_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.FETCH_DEP_BY_PATRON:\r\n return {\r\n ...state,\r\n loading: true,\r\n deposits: [],\r\n transactions: []\r\n };\r\n case types.FETCH_DEP_BY_PATRON_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n deposits: action.payload\r\n };\r\n case types.FETCH_DEP_BY_PATRON_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.FETCH_DEP_BY_ACCT:\r\n return {\r\n ...state,\r\n loading: true,\r\n deposits: [],\r\n transactions: []\r\n };\r\n case types.FETCH_DEP_BY_ACCT_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n deposits: action.payload\r\n };\r\n case types.FETCH_DEP_BY_ACCT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.SCHOOL_FETCH:\r\n return {\r\n ...state,\r\n schools: [],\r\n loading: true\r\n };\r\n case types.SCHOOL_FETCH_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n schools: action.payload\r\n };\r\n case types.SCHOOL_FETCH_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.CLEAR_SCHOOLS:\r\n return {\r\n ...state,\r\n schools: []\r\n };\r\n case types.GET_SCHOOL_FEES:\r\n return {\r\n ...state,\r\n loading: true,\r\n fees: []\r\n };\r\n case types.GET_SCHOOL_FEES_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n fees: action.payload\r\n };\r\n case types.GET_SCHOOL_FEES_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.GET_BALANCE_NOTIF:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.GET_BALANCE_NOTIF_SUCCESS: {\r\n // Need to keep the loader running if the patrons haven't been fetched yet\r\n let patronsPresent = state.persisted;\r\n return {\r\n ...state,\r\n loading: !patronsPresent,\r\n userPatrons: action.payload,\r\n persisted: true\r\n };\r\n }\r\n case types.GET_BALANCE_NOTIF_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.UPDATE_BALANCE_NOTIF:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.UPDATE_BALANCE_NOTIF_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n userPatrons: _updateUserPatrons(state.userPatrons, action.payload),\r\n loadedAccount: {} // Closes the open account\r\n };\r\n case types.UPDATE_BALANCE_NOTIF_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case REGISTER_REQUEST:\r\n case PIN_SIGN_IN:\r\n case SIGN_IN_REQUEST:\r\n case SIGN_OUT:\r\n return patronsDefaults;\r\n case REHYDRATE: {\r\n let incoming = action.payload.patrons;\r\n if (incoming) {\r\n return {\r\n ...state,\r\n ...incoming,\r\n loading: false,\r\n persisted: true\r\n };\r\n }\r\n return state;\r\n }\r\n default:\r\n break;\r\n }\r\n return state;\r\n};\r\n\r\nexport default PatronsReducer;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/PatronsReducer.js","import * as types from '../constants/RememberConstants.js';\r\nimport {REHYDRATE} from 'redux-persist/constants';\r\n\r\nconst rememberDefaults = {\r\n username: null,\r\n alerts: []\r\n};\r\n\r\nconst RememberReducer = (state = rememberDefaults, action) => {\r\n switch(action.type) {\r\n case types.UPDATE_REMEMBER_ME:\r\n return {\r\n ...state,\r\n username: action.payload.username\r\n };\r\n case types.ADD_REMEMBER_ALERT:\r\n return {\r\n ...state,\r\n alerts: [...state.alerts, action.payload.alert]\r\n };\r\n case types.REMOVE_REMEMBER_ALERT:\r\n let index = _.findIndex(state.alerts, alert =>\r\n { return _.isEqual(alert, action.payload.alert) });\r\n if (index > -1) {\r\n return {\r\n ...state,\r\n alerts: [...state.alerts.slice(0, index), ...state.alerts.slice(index + 1)]\r\n };\r\n } else {\r\n return {\r\n ...state\r\n };\r\n }\r\n case types.CLEAR_REMEMBER_ALERTS:\r\n return {\r\n ...state,\r\n alerts: []\r\n };\r\n case REHYDRATE:\r\n let incoming = action.payload.remember;\r\n if (incoming) {\r\n return {\r\n ...state,\r\n ...incoming\r\n }\r\n }\r\n\r\n return state\r\n default:\r\n break;\r\n }\r\n return state;\r\n}\r\n\r\nexport default RememberReducer;\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/RememberReducer.js","import * as types from '../constants/ReportConstants.js';\r\nimport {SIGN_OUT, PIN_SIGN_IN, SIGN_IN_REQUEST} from '../constants/AuthConstants.js';\r\nimport {REGISTER_REQUEST} from '../constants/UserConstants.js';\r\nimport {REHYDRATE} from 'redux-persist/constants';\r\n\r\nconst reportDefaults = {\r\n loading: false,\r\n reports: []\r\n};\r\n\r\nconst ReportReducer = (state = reportDefaults, action) => {\r\n function _addToReports(reports, newReport) {\r\n let newArray = reports.slice();\r\n newArray.unshift(newReport);\r\n\r\n if (typeof GA !== 'undefined') {\r\n GA.event({\r\n category: 'Report',\r\n action: 'New',\r\n label: newReport.reportTitle\r\n });\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n switch (action.type) {\r\n case types.GET_REPORTS:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.GET_REPORTS_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n reports: action.payload\r\n };\r\n case types.GET_REPORTS_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.FETCH_CAFE_REPORT:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.FETCH_CAFE_REPORT_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n reports: _addToReports(state.reports, action.payload)\r\n };\r\n case types.FETCH_CAFE_REPORT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.FETCH_TRANS_REPORT:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.FETCH_TRANS_REPORT_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n reports: _addToReports(state.reports, action.payload)\r\n };\r\n case types.FETCH_TRANS_REPORT_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.GET_REPORT_PDF:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.GET_REPORT_PDF_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.GET_REPORT_PDF_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case REGISTER_REQUEST:\r\n case PIN_SIGN_IN:\r\n case SIGN_IN_REQUEST:\r\n case SIGN_OUT:\r\n return reportDefaults;\r\n case REHYDRATE: {\r\n let incoming = action.payload.reports;\r\n if (incoming) {\r\n return {\r\n ...state,\r\n ...incoming,\r\n loading: false\r\n };\r\n }\r\n return state;\r\n }\r\n default:\r\n break;\r\n }\r\n return state;\r\n};\r\n\r\nexport default ReportReducer;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/ReportReducer.js","import * as types from '../constants/SubConstants.js';\r\nimport {SIGN_OUT} from '../constants/AuthConstants.js';\r\nimport {REHYDRATE} from 'redux-persist/constants';\r\n\r\nimport Sub from '../js/Sub.js';\r\nimport SubForm from '../js/SubForm.js';\r\n\r\nconst subDefaults = {\r\n loading: false,\r\n subscriptions: undefined,\r\n subscriptionForm: undefined,\r\n};\r\n\r\nconst SubscriptionReducer = (state = subDefaults, action) => {\r\n function _addToScheduledDeposits(array, item) {\r\n let newArray = array.slice();\r\n let previous = _.findIndex(newArray, {scheduledDepositID: item.scheduledDepositID});\r\n if (previous === -1) { // Account does not already have item\r\n newArray.push(item);\r\n } else { // Item for that account already exists\r\n newArray[previous] = item;\r\n }\r\n\r\n if (typeof GA !== 'undefined' && !_.isNumber(item.amount)) {\r\n GA.event({\r\n category: 'Cart',\r\n action: 'Add',\r\n label: item.type,\r\n value: item.amount\r\n });\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n function _removeFromScheduledDeposits(array, id) {\r\n let newArray = array.slice();\r\n let previous = _.findIndex(newArray, {scheduledDepositID: id});\r\n\r\n // Remove if found\r\n if (previous !== -1) {\r\n newArray.splice(previous, 1);\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n function _updateSubForm(subObj) {\r\n let newSub = new SubForm(subObj);\r\n return newSub;\r\n }\r\n\r\n switch (action.type) {\r\n case types.GET_SUBS:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.GET_SUBS_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n subscriptions: action.payload\r\n };\r\n case types.GET_SUBS_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.LOAD_SUB_FORM:\r\n return {\r\n ...state,\r\n subscriptionForm: action.payload\r\n };\r\n case types.UPDATE_SUB_FORM:\r\n return {\r\n ...state,\r\n subscriptionForm: _updateSubForm(action.payload),\r\n loading: false\r\n }\r\n case types.SAVE_SUB_FORM:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.SAVE_SUB_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.SAVE_SUB_FORM_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.DELETE_SUB_FORM:\r\n return {\r\n ...state,\r\n subscriptionForm: undefined\r\n };\r\n case types.CREATE_SUB:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.CREATE_SUB_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n subscriptions: _addToScheduledDeposits(state.subscriptions, action.payload),\r\n subscriptionForm: undefined,\r\n };\r\n case types.CREATE_SUB_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.UPDATE_SUB:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.UPDATE_SUB_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n subscriptions: _addToScheduledDeposits(state.subscriptions, action.payload),\r\n subscriptionForm: undefined\r\n };\r\n case types.UPDATE_SUB_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.DELETE_SUB:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.DELETE_SUB_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n subscriptions: _removeFromScheduledDeposits(state.subscriptions, action.payload)\r\n };\r\n case types.DELETE_SUB_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.CALC_SUB_FEE:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.CALC_SUB_FEE_SUCCESS:\r\n state.currentSub.setFee(action.payload);\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.CALC_SUB_FEE_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.GET_RESUME_DATE:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.GET_RESUME_DATE_SUCCESS:\r\n case types.GET_RESUME_DATE_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case SIGN_OUT:\r\n return subDefaults;\r\n case REHYDRATE: {\r\n let incoming = action.payload.sub;\r\n if (incoming) {\r\n return {\r\n ...state,\r\n ...incoming,\r\n loading: false\r\n };\r\n }\r\n return state;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n return state;\r\n};\r\n\r\nexport default SubscriptionReducer;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/SubReducer.js","import * as types from '../constants/TransConstants.js';\r\nimport {GET_USER_BY_TOKEN_SUCCESS, REGISTER_REQUEST} from '../constants/UserConstants.js';\r\nimport {PIN_SIGN_IN, SIGN_IN_REQUEST, SIGN_OUT, REAUTH_SUCCESS} from '../constants/AuthConstants.js';\r\nimport {UPDATE_PAYMENT, CHECKOUT_SUCCESS} from '../constants/CartConstants.js';\r\nimport {REHYDRATE} from 'redux-persist/constants';\r\n\r\nconst transDefaults = {\r\n loading: false,\r\n defaultPayment: undefined,\r\n methods: undefined, // Undefined by default, empty if call has been made\r\n paymentSaved: false,\r\n paymentDeleted: false,\r\n isPending: false\r\n};\r\n\r\nconst TransReducer = (state = transDefaults, action) => {\r\n /**\r\n * _addCard - Adds new cards to list of payment methods\r\n *\r\n * @param {Array} methods Array of current payment methods\r\n * @param {Object} newCard New card object\r\n * @return {Array} New array with card added\r\n */\r\n function _addCard(methods, newCard) {\r\n let newArray = methods.slice();\r\n\r\n newArray.push(newCard);\r\n return newArray;\r\n }\r\n\r\n function _removeCard(methods, id) {\r\n let newArray = methods.slice();\r\n let index = _.findIndex(newArray, {stripeCardID: id});\r\n\r\n // Remove if found\r\n if (index !== -1) {\r\n newArray.splice(index, 1);\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n function _updateCard(methods, card) {\r\n let newArray = methods.slice();\r\n let index = _.findIndex(newArray, {stripeCardID: card.stripeCardID});\r\n\r\n // Remove if found\r\n if (index !== -1) {\r\n newArray[index] = card;\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n function _removeTempPayments(methods) {\r\n if (_.isUndefined(methods)) return;\r\n\r\n let sansTemp = [];\r\n\r\n for (let meth of methods) {\r\n if (!meth.stripeCardID.includes('tok_')) sansTemp.push(meth);\r\n }\r\n\r\n return sansTemp;\r\n }\r\n\r\n function _rehydrateMethods(methods, payload) {\r\n if(_.isUndefined(methods)) return payload;\r\n\r\n let newArray = payload.slice();\r\n\r\n for (let meth of methods) {\r\n if (meth.stripeCardID.includes('tok_')) newArray.push(meth);\r\n }\r\n\r\n return newArray;\r\n }\r\n\r\n //todo: hack for echeck. replace when echeck implementation is finalized\r\n function _addAuthedECheck(methods, echeckCard) {\r\n let newArray = methods.slice();\r\n let index = _.findIndex(newArray, {stripeCardID: \"eCheckPendingAuth\"});\r\n\r\n // Remove if found\r\n if (index !== -1) {\r\n newArray[index] = echeckCard;\r\n }\r\n return newArray;\r\n }\r\n\r\n switch (action.type) {\r\n case types.GET_PAYMENT_METHODS:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n case types.GET_PAYMENT_METHODS_SUCCESS:\r\n return {\r\n ...state,\r\n methods: _rehydrateMethods(state.methods, action.payload),\r\n loading: false\r\n };\r\n case types.GET_PAYMENT_METHODS_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.ADD_ECHECK:\r\n return {\r\n ...state,\r\n loading: true,\r\n paymentSaved: false\r\n };\r\n\r\n case types.ADD_ECHECK_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n isPending: true,\r\n methods: _addCard(state.methods, action.payload.method)\r\n }\r\n\r\n case types.ADD_ECHECK_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n\r\n case types.AUTH_ECHECK:\r\n return {\r\n ...state,\r\n loading: true,\r\n }\r\n case types.AUTH_ECHECK_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n methods: _addAuthedECheck(state.methods, action.payload.method)\r\n }\r\n\r\n\r\n case types.ADD_CARD:\r\n return {\r\n ...state,\r\n loading: true,\r\n paymentSaved: false\r\n };\r\n\r\n case types.ADD_CARD_SUCCESS: {\r\n if(action.payload.isDefault) {\r\n return {\r\n ...state,\r\n loading: false,\r\n paymentSaved: true,\r\n methods: _addCard(state.methods, action.payload.method),\r\n defaultPayment: action.payload.method.stripeCardID\r\n };\r\n } else {\r\n return {\r\n ...state,\r\n loading: false,\r\n paymentSaved: true,\r\n methods: _addCard(state.methods, action.payload.method)\r\n };\r\n }\r\n }\r\n case types.ADD_CARD_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.DELETE_CARD:\r\n return {\r\n ...state,\r\n loading: true,\r\n paymentDeleted: false\r\n };\r\n case types.DELETE_CARD_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false,\r\n paymentDeleted: true,\r\n methods: _removeCard(state.methods, action.payload.cardID),\r\n defaultPayment: action.payload.defaultCardID\r\n };\r\n case types.DELETE_CARD_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.UPDATE_CARD:\r\n return {\r\n ...state,\r\n loading: true,\r\n paymentSaved: false\r\n };\r\n case types.UPDATE_CARD_SUCCESS: {\r\n if(action.payload.isDefault) {\r\n return {\r\n ...state,\r\n loading: false,\r\n paymentSaved: true,\r\n methods: _updateCard(state.methods, action.payload.card),\r\n defaultPayment: action.payload.card.stripeCardID\r\n };\r\n } else {\r\n return {\r\n ...state,\r\n loading: false,\r\n paymentSaved: true,\r\n methods: _updateCard(state.methods, action.payload.card)\r\n };\r\n }\r\n }\r\n case types.UPDATE_CARD_FAILURE:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n case types.NEW_DEFAULT:\r\n return {\r\n ...state,\r\n defaultPayment: action.payload\r\n };\r\n case types.RESET_PAYMENT:\r\n return {\r\n ...state,\r\n paymentSaved: false,\r\n paymentDeleted: false\r\n };\r\n case GET_USER_BY_TOKEN_SUCCESS:\r\n return {\r\n ...state,\r\n defaultPayment: action.payload.defaultPayment\r\n };\r\n case UPDATE_PAYMENT:\r\n return {\r\n ...state,\r\n loading: false,\r\n paymentSaved: true\r\n };\r\n case REAUTH_SUCCESS:\r\n case CHECKOUT_SUCCESS:\r\n return {\r\n ...state,\r\n methods: _removeTempPayments(state.methods)\r\n };\r\n case REGISTER_REQUEST:\r\n case PIN_SIGN_IN:\r\n case SIGN_IN_REQUEST:\r\n case SIGN_OUT:\r\n return transDefaults;\r\n case REHYDRATE: {\r\n let incoming = action.payload.trans;\r\n if (incoming) {\r\n return {\r\n ...state,\r\n ...incoming,\r\n loading: false\r\n };\r\n }\r\n return state;\r\n }\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport default TransReducer;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/TransReducer.js","import * as types from '../constants/UserConstants.js';\nimport {PIN_SIGN_IN, SIGN_IN_REQUEST, SIGN_OUT} from '../constants/AuthConstants.js';\n//import {REMOVE_VAL_ERROR} from '../constants/ErrorConstants.js';\nimport {REHYDRATE} from 'redux-persist/constants';\n\nconst userDefaults = {\n id: undefined,\n loading: false,\n pushNotLoading: false,\n theme: 'default',\n userInfo: {\n active: undefined,\n email: undefined,\n email2: undefined,\n email3: undefined,\n firstName: undefined,\n lastName: undefined,\n phoneAreaCode: undefined,\n phoneExt: undefined,\n phoneNum: undefined,\n securityQuestionID: undefined,\n username: undefined\n },\n userRegistered: undefined,\n emailValid: undefined,\n usernameValid: undefined,\n userUpdated: undefined,\n forgotPassInfo: {},\n persisted: false,\n messages: undefined,\n globalPushEnabled: undefined,\n notifications: []\n};\n\nconst UserReducer = (state = userDefaults, action) => {\n switch (action.type) {\n case types.DELETE_USER:\n return {\n ...state,\n loading: true\n };\n case types.DELETE_USER_SUCCESS:\n return {\n ...state,\n loading: false\n };\n case types.DELETE_USER_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.REGISTER_REQUEST:\n return {\n ...userDefaults,\n loading: true\n };\n case types.REGISTER_SUCCESS:\n return {\n ...state,\n loading: false,\n userRegistered: true\n };\n case types.REGISTER_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.CLEAR_REGISTRATION: {\n return {\n ...state,\n userRegistered: undefined\n };\n }\n case types.UPDATE_USER:\n return {\n ...state,\n loading: true,\n userUpdated: undefined\n };\n case types.UPDATE_USER_SUCCESS:\n return {\n ...state,\n loading: false,\n id: action.payload.userID,\n userInfo: action.payload.userInfo,\n userUpdated: true\n };\n case types.UPDATE_USER_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.GET_USER_BY_TOKEN:\n return {\n ...state,\n loading: true\n };\n case types.GET_USER_BY_TOKEN_SUCCESS:\n return {\n ...state,\n loading: false,\n active: action.active,\n id: action.payload.id,\n userInfo: action.payload.userInfo,\n persisted: true\n };\n case types.GET_USER_BY_TOKEN_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.FORGOT_PASS:\n return {\n ...state,\n loading: true,\n forgotPassInfo: {}\n };\n case types.FORGOT_PASS_SUCCESS:\n return {\n ...state,\n loading: false,\n forgotPassInfo: {\n username: action.payload.username,\n securityQuestionID: action.payload.question\n }\n };\n case types.FORGOT_PASS_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.FORGOT_USERNAME:\n return {\n ...state,\n loading: true\n };\n case types.FORGOT_USERNAME_SUCCESS:\n return {\n ...state,\n loading: false\n };\n case types.FORGOT_USERNAME_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.SUBMIT_SECURITY_A:\n return {\n ...state,\n loading: true\n };\n case types.SUBMIT_SECURITY_A_SUCCESS:\n return {\n ...state,\n loading: false\n };\n case types.SUBMIT_SECURITY_A_FAILURE:\n return {\n ...state,\n loading: false,\n error: action.payload\n };\n case types.CHECK_USERNAME:\n return {\n ...state,\n loading: true,\n usernameValid: undefined\n };\n case types.CHECK_USERNAME_SUCCESS:\n return {\n ...state,\n loading: false,\n usernameValid: true\n };\n case types.CHECK_USERNAME_FAILURE:\n return {\n ...state,\n loading: false,\n usernameValid: false\n };\n case types.CHECK_EMAIL:\n return {\n ...state,\n loading: true,\n emailValid: undefined\n };\n case types.CHECK_EMAIL_SUCCESS:\n return {\n ...state,\n loading: false,\n emailValid: true\n };\n case types.CHECK_EMAIL_FAILURE:\n return {\n ...state,\n loading: false,\n emailValid: false\n };\n case types.CHECK_EMAIL_GHOST:\n return {\n ...state,\n loading: false,\n emailValid: undefined\n };\n case types.ADD_PAY_METHOD:\n return {\n ...state,\n loading: true\n };\n case types.ADD_PAY_METHOD_SUCCESS:\n return {\n ...state,\n loading: false\n };\n case types.ADD_PAY_METHOD_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.CLEAR_USER_VAL:\n return {\n ...state,\n usernameValid: undefined\n };\n case types.CLEAR_EMAIL_VAL:\n return {\n ...state,\n emailValid: undefined\n };\n case types.CLEAR_UPDATE_VAL:\n return {\n ...state,\n userUpdated: undefined\n };\n case types.GET_MESSAGES:\n return {\n ...state,\n loading: true\n };\n case types.GET_MESSAGES_SUCCESS:\n return {\n ...state,\n loading: false,\n messages: action.payload\n };\n case types.GET_MESSAGES_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.NEW_USER_TOUR:\n return {\n ...state,\n userRegistered: undefined\n };\n case types.GET_NOTIF_SETTINGS:\n return {\n ...state,\n loading: true\n };\n case types.GET_NOTIF_SETTINGS_SUCCESS:\n return {\n ...state,\n loading: false,\n globalPushEnabled: action.payload.globalPushEnabled,\n notifications: action.payload.pushSettings\n };\n case types.GET_NOTIF_SETTINGS_FAILURE:\n return {\n ...state,\n loading: false\n };\n case types.UPDATE_PUSH_GLOBAL:\n return {\n ...state,\n pushNotLoading: true\n };\n case types.UPDATE_PUSH_GLOBAL_SUCCESS:\n return {\n ...state,\n pushNotLoading: false,\n globalPushEnabled: action.payload\n };\n case types.UPDATE_PUSH_GLOBAL_FAILURE:\n return {\n ...state,\n pushNotLoading: false\n };\n case types.UPDATE_NOTIF_SETTINGS:\n return {\n ...state,\n pushNotLoading: true\n };\n case types.UPDATE_NOTIF_SETTINGS_SUCCESS:\n return {\n ...state,\n pushNotLoading: false,\n globalPushEnabled: action.payload.globalPushEnabled,\n notifications: action.payload.pushSettings\n };\n case types.UPDATE_NOTIF_SETTINGS_FAILURE:\n return {\n ...state,\n pushNotLoading: false\n };\n case PIN_SIGN_IN:\n case SIGN_IN_REQUEST:\n return {\n ...userDefaults,\n userRegistered: undefined\n };\n case types.RESET_REG:\n case SIGN_OUT:\n return userDefaults;\n case REHYDRATE: {\n let incoming = action.payload.user;\n if (incoming) {\n return {\n ...state,\n ...incoming,\n loading: false,\n emailValid: undefined,\n usernameValid: undefined,\n userUpdated: undefined,\n userRegistered: undefined,\n forgotPassInfo: {},\n persisted: true\n };\n }\n return {\n ...state,\n persisted: true\n };\n }\n // case REMOVE_VAL_ERROR:\n // return {\n // ...state,\n // emailValid: undefined,\n // usernameValid: undefined\n // };\n default:\n break;\n }\n return state;\n};\n\nexport default UserReducer;\n\n\n\n// WEBPACK FOOTER //\n// app/common/reducers/UserReducer.js","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport SinglePage from '../../components/SinglePage/SinglePage.jsx';\r\n\r\nimport AboutComponents from '../../components/AboutComponents/AboutComponents.jsx'\r\n\r\nclass AboutUs extends React.Component {\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <AboutComponents />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default AboutUs;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/AboutUs/AboutUs.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport LeftCol from '../../components/LeftCol/LeftCol';\r\nimport RightCol from '../../components/RightCol/RightCol';\r\nimport AcctInfo from '../../components/AccountInfo/AccountInfo.jsx';\r\nimport NewAccount from '../../components/NewAccount/NewAccount.jsx';\r\nimport ExistingAccount from '../../components/ExistingAccount/ExistingAccount.jsx';\r\nimport {getPatrons, getBalanceNotifications} from '../../actions/PatronsAction.js';\r\n\r\nimport './Accounts.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n loadedAccount: store.patrons.loadedAccount,\r\n patrons: store.patrons.patrons\r\n };\r\n};\r\n\r\nclass Accounts extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loadedAccount: PropTypes.object.isRequired,\r\n location: PropTypes.object,\r\n patrons: PropTypes.array.isRequired\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n let show = false;\r\n if (!_.isEmpty(props.loadedAccount) || props.location.query.acct) {\r\n show = true;\r\n }\r\n\r\n this.state = {\r\n show: show,\r\n new: false\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n this.props.dispatch(getPatrons());\r\n this.props.dispatch(getBalanceNotifications());\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n document.addEventListener('show-account-info', this.showAccountInfo.bind(this));\r\n\r\n document.addEventListener('hide-account-info', this.hideAccountInfo.bind(this));\r\n\r\n document.addEventListener('add-student', this.addStudent.bind(this));\r\n\r\n document.addEventListener('update-acct-info', this.updateAccountInfo.bind(this));\r\n\r\n if (this.state.show || this.props.location.query.acct !== undefined) {\r\n if (Utils.isMobile()) {\r\n Utils.updateModal('account');\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this._isMounted) {\r\n this.setState({\r\n show: false\r\n });\r\n }\r\n this._isMounted = false;\r\n document.removeEventListener('show-account-info', this.showAccountInfo.bind(this));\r\n\r\n document.removeEventListener('hide-account-info', this.hideAccountInfo.bind(this));\r\n\r\n document.removeEventListener('add-student', this.addStudent.bind(this));\r\n\r\n document.removeEventListener('update-acct-info', this.updateAccountInfo.bind(this));\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (_.isEmpty(nextProps.loadedAccount) && this._isMounted) {\r\n this.setState({\r\n show: false\r\n });\r\n }\r\n }\r\n\r\n showAccountInfo(e) {\r\n if (this._isMounted) {\r\n this.setState({\r\n show: true\r\n });\r\n }\r\n }\r\n\r\n hideAccountInfo(e) {\r\n document.dispatchEvent(new CustomEvent('rove-on-modals', {detail: {\r\n modalShown: false,\r\n checkpoint: document.activeElement,\r\n context: 'hideAccountInfo'\r\n }}));\r\n if (this._isMounted) {\r\n this.setState({\r\n show: false\r\n });\r\n }\r\n }\r\n\r\n addStudent(e) {\r\n if (this._isMounted) {\r\n this.setState({\r\n new: true\r\n });\r\n }\r\n }\r\n\r\n updateAccountInfo(e) {\r\n if (this._isMounted) {\r\n this.setState({\r\n new: false\r\n });\r\n\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: e.target\r\n }}));\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"accounts\">\r\n <LeftCol>\r\n {_.map(this.props.patrons, acct => {\r\n return <ExistingAccount\r\n key={Math.random()}\r\n account={acct}\r\n dispatch={this.props.dispatch}\r\n />;\r\n })}\r\n <NewAccount dispatch={this.props.dispatch} />\r\n </LeftCol>\r\n <RightCol>\r\n {\r\n Utils.isMobile() ?\r\n null :\r\n <div className={\"card acct-card\" + (this.state.show ? '' : ' ghost')}>\r\n {\r\n this.state.show ?\r\n <AcctInfo new={this.state.new} /> :\r\n null\r\n }\r\n </div>\r\n }\r\n </RightCol>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(Accounts);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Accounts/Accounts.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from 'react-router';\r\nimport {connect} from 'react-redux';\r\n\r\nimport {ForgotPassword, SecurityAnswer} from '../../components/ForgotPassword/ForgotPassword.jsx';\r\nimport ForgotUsername from '../../components/ForgotUsername/ForgotUsername.jsx';\r\nimport Modal from '../../components/Modals/Modal/Modal.jsx';\r\nimport ErrorModal from '../../components/Modals/Error/Error.jsx';\r\n\r\nimport './Forgot.scss';\r\n\r\n// Register route\r\nconst mapStateToProps = store => {\r\n return {\r\n emailSent: store.auth.emailSent,\r\n emailContext: store.auth.emailContext,\r\n loading: store.user.loading,\r\n securityQuestionID: store.user.forgotPassInfo.securityQuestionID,\r\n username: store.user.forgotPassInfo.username,\r\n validationErrors: store.error.validationErrors\r\n };\r\n};\r\n\r\nclass Forgot extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n emailSent: PropTypes.bool,\r\n emailContext: PropTypes.string,\r\n loading: PropTypes.bool.isRequired,\r\n router: PropTypes.object.isRequired,\r\n securityQuestionID: PropTypes.number,\r\n username: PropTypes.string,\r\n validationErrors: PropTypes.array\r\n }\r\n\r\n returnToLogin(e) {\r\n if (e.detail === 'login') {\r\n this.props.router.push('/');\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"forgot\">\r\n <header className=\"navbar navbar-default\" role=\"banner\">\r\n <div className=\"navbar-header\">\r\n <div className=\"center-image-container\">\r\n <img src=\"img/MT_HEADER.svg\" height=\"50\" width=\"auto\" alt=\"MyMealTime Logo\" />\r\n </div>\r\n </div>\r\n </header>\r\n <div className=\"container\">\r\n <div className=\"card-group\">\r\n {\r\n _.isEmpty(this.props.validationErrors) ?\r\n null :\r\n <p className=\"sr-only\" aria-live=\"polite\">\r\n {\r\n Utils.generateSROnlyErrorMsg(this.props.validationErrors)\r\n }\r\n </p>\r\n }\r\n <div className=\"card\">\r\n {\r\n _.isUndefined(this.props.securityQuestionID) ?\r\n <ForgotPassword\r\n dispatch={this.props.dispatch}\r\n emailContext={this.props.emailContext}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'username')}\r\n loading={this.props.loading}\r\n router={this.props.router}\r\n /> :\r\n <SecurityAnswer\r\n dispatch={this.props.dispatch}\r\n emailSent={this.props.emailSent}\r\n emailContext={this.props.emailContext}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'securityA')}\r\n loading={this.props.loading}\r\n securityQuestionID={this.props.securityQuestionID}\r\n username={this.props.username}\r\n router={this.props.router}\r\n />\r\n }\r\n </div>\r\n <div className=\"card\">\r\n <ForgotUsername\r\n dispatch={this.props.dispatch}\r\n emailSent={this.props.emailSent}\r\n emailContext={this.props.emailContext}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'email', 'username')}\r\n loading={this.props.loading}\r\n router={this.props.router}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <Modal/>\r\n <ErrorModal/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst forgotRouter = withRouter(Forgot);\r\n\r\nexport default connect(mapStateToProps)(forgotRouter);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Forgot/Forgot.jsx","import React from 'react';\r\n\r\nimport SinglePage from '../../components/SinglePage/SinglePage.jsx';\r\n\r\nclass Privacy extends React.Component {\r\n render() {\r\n return (\r\n <SinglePage>\r\n <div className=\"card\">\r\n <p>In this policy, \"we,\" \"our\" or \"us\" means The CLM Group, Inc. and \"you\" or \"your\" means any person or entity using the mymealtime.com™ website or the related call center (collectively the \"Facilities\"). Please read the following closely to learn more about our privacy policy.</p>\r\n\r\n I. INFORMATION WE COLLECT.\r\n\r\n We collect nonpublic personal information about you from the following sources:\r\n\r\n Information we receive from you on registration or other forms or from use of the Facilities;\r\n If you visit our website, information about you through \"cookies\" (pieces of electronic information placed on your computer's hard drive in order to facilitate online activities); and\r\n Information from your student's school.\r\n \"Nonpublic personal information\" is nonpublic information that is personally identifiable and obtained in connection with your use or our operation of the Facilities.\r\n\r\n II. INFORMATION WE MAY DISCLOSE.\r\n\r\n We may disclose nonpublic personal information to others (\"third parties\") as follows.\r\n\r\n We may disclose all of the nonpublic personal information we collect to companies that perform services on our behalf, such as a credit card processor when making a deposit to your students account.\r\n We may disclose all of the nonpublic personal information we collect as permitted by law, such as to servicing and processing companies, or in response to a subpoena.\r\n We do not sell or share your nonpublic personal information with third parties for any other reason.\r\n III. ACCESSING, REVIEWING AND CHANGING YOUR PERSONAL INFORMATION.\r\n\r\n MealTime Online allows you to log into the site and modify personal information you submitted during profile registration. Information such as password, email address, phone number and mailing address can all be updated by you. Credit card information, if required in the course of providing services, is not stored at the Facility.\r\n\r\n IV. CONFIDENTIALITY AND SECURITY.\r\n\r\n We restrict our employees' access to nonpublic personal information about you to those individuals who need to know that information to provide products or services to you. We maintain physical, electronic, and procedural safeguards that comply with federal standards to guard your nonpublic personal information. We employ the latest internet based security features such as Secure Socket Layer (SSL) and firewalls to protect your information.\r\n\r\n V. OTHER IMPORTANT INFORMATION.\r\n\r\n This policy applies to your use and our operation of the Facilities.\r\n\r\n We reserve the right to amend this policy from time to time and to apply any changes to information previously collected as permitted by law. We will inform you of any changes as required by law and will post any changes to this policy at our web site. If you are concerned about how your information is used, you should check back at our website periodically.\r\n\r\n If you cease to be our customer, such as when you no longer use the Facilities, our information practices in this policy, as amended from time to time, will continue to apply.\r\n\r\n This policy relates only to nonpublic personal information and does not affect our information practices with respect to other information.\r\n\r\n If you have any questions about this privacy policy, the practices of this website or your student's dealings with this website, you should contact us directly at (800)755-0904 or mtosupport@mealtimeclm.com.\r\n </div>\r\n </SinglePage>\r\n );\r\n }\r\n}\r\n\r\nexport default Privacy;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Privacy/Privacy.jsx","import React from 'react';\nimport {Link} from 'react-router';\nimport {connect} from 'react-redux';\nimport Modal from '../../components/Modals/Modal/Modal.jsx';\nimport AboutComponents from '../../components/AboutComponents/AboutComponents.jsx';\nimport './PublicAboutUS.scss';\n\nconst mapStateToProps = store => {\n return {};\n};\nclass PublicAboutUS extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n let backdrop = document.querySelector('.modal-backdrop.show');\n if (_.isObject(backdrop)) document.body.removeChild(backdrop);\n }\n\n render() {\n return (\n <div id=\"public\">\n <header className=\"navbar navbar-default\" role=\"banner\">\n <div className=\"navbar-header\">\n <div className=\"center-image-container\">\n <img\n alt=\"MyMealTime Logo\"\n src=\"img/MT_HEADER.svg\"\n height=\"50\"\n width=\"auto\"\n />\n </div>\n </div>\n </header>\n <div className=\"container\">\n <div className=\"settings\">\n <div>\n <div className=\"card\">\n <AboutComponents />\n <Modal dispatch={this.props.dispatch}/>\n </div>\n\n <hr/>\n <div className=\"login-text\">\n <Link to=\"/\"> Back To Home </Link>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default connect(mapStateToProps)(PublicAboutUS);\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/PublicAboutUs/PublicAboutUs.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport PullRefresh from 'react-pullrefresh';\r\n\r\n// import PullRefresh from '../../components/NullComponent/NullComponent';\r\nimport LeftCol from '../../components/LeftCol/LeftCol';\r\nimport RightCol from '../../components/RightCol/RightCol';\r\nimport Loader from '../../components/Loader/Loader';\r\nimport Receipt from '../../components/Receipt/Receipt';\r\nimport AddStudent from '../../components/AddStudent/AddStudent';\r\n\r\nimport {getReceipts} from '../../actions/CartAction.js';\r\n\r\nimport './Receipts.scss';\r\n\r\n// App Settings route\r\nconst mapStateToProps = store => {\r\n return {\r\n loading: store.cart.loading,\r\n patrons: store.patrons.patrons,\r\n receipts: store.cart.receipts\r\n };\r\n};\r\n\r\nclass Receipts extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n patrons: PropTypes.array.isRequired,\r\n receipts: PropTypes.array.isRequired\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this._isMounted = false;\r\n this.state = {\r\n viewing: {}\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n this.props.dispatch(getReceipts());\r\n }\r\n\r\n componentDidMount() {\r\n this._isMounted = true;\r\n document.addEventListener('view-receipt', this.getReceiptByID.bind(this));\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n document.removeEventListener('view-receipt', this.getReceiptByID.bind(this));\r\n }\r\n\r\n viewReceipt(receipt) {\r\n GA.event({\r\n category: 'Receipt',\r\n action: 'View'\r\n });\r\n if (Utils.isMobile()) {\r\n Utils.updateModal('receipt', {transaction: receipt});\r\n } else if (this._isMounted) {\r\n this.setState({\r\n viewing: receipt\r\n });\r\n let checkpoint = document.activeElement;\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint\r\n }}));\r\n }\r\n }\r\n\r\n getReceiptByID(e) {\r\n const depositID = e.detail.depositID;\r\n let receipt = _.findWhere(this.props.receipts, {depositID});\r\n if (_.isObject(receipt)) this.viewReceipt(receipt);\r\n }\r\n\r\n refreshReceipts(resolveFunc) {\r\n if($('.rec-scroller').scrollTop() > 40) {\r\n if (_.isFunction(resolveFunc)) resolveFunc();\r\n return;\r\n }\r\n\r\n Utils.vibrate(50);\r\n this.props.dispatch(getReceipts(resolveFunc));\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"receipts\">\r\n <LeftCol>\r\n <div className=\"rec-scroller\">\r\n {\r\n this.props.loading && _.isEmpty(this.props.receipts) ?\r\n <Loader/> :\r\n null\r\n }\r\n {\r\n _.isEmpty(this.props.patrons) && !this.props.loading ?\r\n <AddStudent/> :\r\n <PullRefresh\r\n onRefresh={this.refreshReceipts.bind(this)}\r\n supportDesktop={true}\r\n >\r\n <div style={{\r\n width: '100%',\r\n minHeight: '79vh'\r\n }}>\r\n {\r\n _.map(this.props.receipts, (trans, index) => {\r\n return <RecStub\r\n key={trans.depositID}\r\n receipt={trans}\r\n viewReceipt={this.viewReceipt.bind(this)}\r\n recIndex={index + 1}\r\n recCount={this.props.receipts.length}\r\n />;\r\n })\r\n }\r\n </div>\r\n </PullRefresh>\r\n }\r\n {\r\n _.isEmpty(this.props.receipts) &&\r\n !this.props.loading &&\r\n !_.isEmpty(this.props.patrons) ?\r\n <h5 className=\"no-items-found\">No receipts to display</h5> :\r\n null\r\n }\r\n </div>\r\n </LeftCol>\r\n <RightCol>\r\n {\r\n _.isEmpty(this.state.viewing) || Utils.isMobile() ?\r\n null :\r\n <RecInfo viewing={this.state.viewing}/>\r\n }\r\n </RightCol>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nclass RecStub extends React.Component {\r\n updateReceipt(e) {\r\n e.currentTarget.focus();\r\n\r\n this.props.viewReceipt(this.props.receipt);\r\n }\r\n\r\n render() {\r\n const cardTypes = {\r\n Visa: 'img/visa-curved-64px.png',\r\n MasterCard: 'img/mastercard-curved-64px.png',\r\n Discover: 'img/discover-curved-64px.png'\r\n };\r\n\r\n const cardAlts = {\r\n Visa: 'Visa logo',\r\n MasterCard: 'Mastercard logo',\r\n Discover: 'Discover logo'\r\n };\r\n\r\n let recDate = Utils.convertFromDatetime(this.props.receipt.transDateTime);\r\n return (\r\n <div className=\"card rec-stub\">\r\n <h4 className=\"sr-only\">{'Receipt stub ' + this.props.recIndex + ' of ' + this.props.recCount}</h4>\r\n <button className=\"rec-button\" onClick={this.updateReceipt.bind(this)}>\r\n <span className=\"rec-dt\">\r\n <span className=\"rec-date\">{Utils.dateFormat(recDate, false)}</span>\r\n  \r\n <span className=\"rec-time\">{Utils.timeFormat(recDate)}</span>\r\n </span>\r\n <span className=\"hidden-xs-down payment-divider\">|</span>\r\n <div className=\"rec-payment\">\r\n <img src={cardTypes[this.props.receipt.cardTypeName]} className=\"payment-option\" alt={cardAlts[this.props.receipt.cardTypeName]} />\r\n <span className=\"card-ending\">{this.props.receipt.cardLast4}</span>\r\n </div>\r\n <div className=\"rec-total\">${this.props.receipt.totalAmount.toFixed(2)}</div>\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nRecStub.propTypes = {\r\n receipt: PropTypes.object.isRequired,\r\n viewReceipt: PropTypes.func.isRequired,\r\n recIndex: PropTypes.number.isRequired,\r\n recCount: PropTypes.number.isRequired\r\n};\r\n\r\nclass RecInfo extends React.Component {\r\n render() {\r\n return (\r\n <div id=\"receipt-info\" className=\"card\">\r\n <h4 className=\"sr-only\">Receipt details</h4>\r\n <Receipt\r\n transaction={this.props.viewing}\r\n payment={this.props.viewing.payment}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nRecInfo.propTypes = {\r\n viewing: PropTypes.object.isRequired\r\n};\r\n\r\nexport default connect(mapStateToProps)(Receipts);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Receipts/Receipts.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Link, withRouter} from 'react-router';\r\nimport {connect} from 'react-redux';\r\n\r\nimport registrationValidation from '../../js/RegistrationValidation.js';\r\n\r\nimport {registerUser, resetRegistration} from '../../actions/UserAction.js';\r\nimport {clearValidationErrors} from '../../actions/ErrorAction.js';\r\nimport {clearCoppa} from '../../actions/AuthAction.js';\r\n\r\nimport UserInfo from '../../components/UserInfo/UserInfo.jsx';\r\nimport Alert from '../../components/Alert/Alert.jsx';\r\nimport Loader from '../../components/Loader/Loader.jsx';\r\nimport ErrorModal from '../../components/Modals/Error/Error.jsx';\r\nimport Modal from '../../../common/components/Modals/Modal/Modal.jsx';\r\n\r\nimport CoppaUtils from '../../../common/js/coppa.js';\r\n\r\nimport './Register.scss';\r\n\r\n// Register route\r\nconst mapStateToProps = store => {\r\n return {\r\n loading: store.user.loading,\r\n userRegistered: store.user.userRegistered,\r\n userCoppa: store.auth.userCoppa,\r\n isCoppaCompliant: store.auth.isCoppaCompliant\r\n };\r\n};\r\n\r\nclass Register extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n router: PropTypes.object.isRequired,\r\n userRegistered: PropTypes.bool,\r\n userCoppa: PropTypes.object.isRequired\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n success: undefined,\r\n submitted: false, // Used for displaying success alert\r\n submitting: false // Used for displaying loader\r\n };\r\n\r\n this.authPersist = Utils.getFromStorage('reduxPersist:auth');\r\n }\r\n\r\n componentWillMount() {\r\n this.props.dispatch(resetRegistration());\r\n this.props.dispatch(clearValidationErrors());\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.userRegistered) {\r\n this.props.router.push('/');\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n // If a modal is open when logging the user in, the background will persist and cause the app to be unusable\r\n if (Utils.isModalOpen()) {\r\n $('.modal').modal('hide');\r\n }\r\n }\r\n\r\n //Make sure user did not use the backdoor, send them back to the to the login page if they did\r\n backdoorCheck() {\r\n if(CoppaUtils.coppafyNewUser(this.props.userCoppa, () => {\r\n this.returnToLogin();\r\n })) {\r\n return;\r\n }\r\n }\r\n\r\n returnToLogin(e) {\r\n this.props.dispatch(resetRegistration());\r\n this.props.router.push('/');\r\n }\r\n\r\n cancelRegistration(e) {\r\n this.props.dispatch(clearCoppa());\r\n this.props.router.push('/');\r\n }\r\n\r\n submitHack(e) {\r\n // We run into a problem where the blur event on the inputs compete with the click event\r\n // on the form submit button, so instead we assign this to mousedown to subvert the issue\r\n this.submitRegistration(e);\r\n }\r\n\r\n submitRegistration(e) {\r\n e.preventDefault();\r\n\r\n this.props.dispatch(clearValidationErrors());\r\n const elements = this.form.elements;\r\n const usrObj = {\r\n username: elements.username.value,\r\n newPassword: elements.password.value,\r\n repeatNewPassword: elements.password2.value,\r\n firstName: elements.first.value,\r\n lastName: elements.last.value,\r\n email: elements.email.value,\r\n repeatEmail: elements.email2.value,\r\n phoneAreaCode: _.isEmpty(elements.phoneAreaCode.value) ?\r\n null :\r\n Number(elements.phoneAreaCode.value),\r\n phoneExt: _.isEmpty(elements.phoneExt.value) ?\r\n null :\r\n Number(elements.phoneExt.value),\r\n phoneNum: _.isEmpty(elements.phoneNum.value) ?\r\n null :\r\n Number(elements.phoneNum.value),\r\n securityQuestionID: Number(elements.securityQ.selectedOptions[0].dataset.qid),\r\n securityA: elements.securityA.value,\r\n coppaBirthdate: this.props.userCoppa.origBirthdate\r\n };\r\n\r\n if (usrObj.securityQuestionID === 0) {\r\n // 0 represents no question selected\r\n // API will reject if null, so switch it up!\r\n usrObj.securityQuestionID = null;\r\n }\r\n const complete = registrationValidation(usrObj, this.props.dispatch);\r\n\r\n // All fields complete/valid!\r\n if (complete) {\r\n this.setState({\r\n submitted: true,\r\n submitting: true\r\n });\r\n this.props.dispatch(registerUser(usrObj));\r\n }\r\n\r\n // False will keep the page from reloading\r\n return complete;\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"register\" className=\"settings\">\r\n <header className=\"navbar navbar-default\" role=\"banner\">\r\n <div className=\"navbar-header\">\r\n <div className=\"center-image-container\">\r\n <img\r\n alt=\"MyMealTime Logo\"\r\n src=\"img/MT_HEADER.svg\"\r\n height=\"50\"\r\n width=\"auto\"\r\n />\r\n </div>\r\n </div>\r\n </header>\r\n <div className=\"container\">\r\n <p className=\"form-text small reg-instructions\">\r\n Please fill in the fields below to create your MealTime Online parent profile. You are entering YOUR information here not your student's information.\r\n </p>\r\n\r\n {\r\n _.isUndefined(this.state.success) ?\r\n null :\r\n <Alert\r\n clickHandler={this.returnToLogin.bind(this)}\r\n key={Math.random()}\r\n message={this.state.success}\r\n type=\"success\"\r\n />\r\n }\r\n\r\n <hr/>\r\n\r\n <form\r\n onSubmit={this.submitRegistration.bind(this)}\r\n ref={node => this.form = node}\r\n noValidate=\"novalidate\"\r\n >\r\n <UserInfo register={true} backdoorCheck={() => {\r\n this.backdoorCheck();\r\n }} />\r\n <div className=\"reg-btns\">\r\n <button\r\n id=\"registerBtn\"\r\n type=\"button\"\r\n className=\"btn btn-primary expand-btn pull-right sud\"\r\n onClick={this.submitHack.bind(this)}\r\n disabled={_.isEmpty(this.props.userCoppa) || !this.props.userCoppa.isCompliant}\r\n >\r\n {\r\n this.props.loading && this.state.submitting ?\r\n <Loader/> :\r\n \"Register\"\r\n }\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-grey expand-btn pull-right\"\r\n onClick={this.cancelRegistration.bind(this)}\r\n >\r\n Cancel\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n <Modal dispatch={this.props.dispatch}/>\r\n <ErrorModal/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst registerRouter = withRouter(Register);\r\n\r\nexport default connect(mapStateToProps)(registerRouter);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Register/Register.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport LeftCol from '../../components/LeftCol/LeftCol';\r\nimport RightCol from '../../components/RightCol/RightCol';\r\nimport Loader from '../../components/Loader/Loader';\r\nimport AddStudent from '../../components/AddStudent/AddStudent';\r\n\r\nimport {\r\n fetchCafeteriaReport,\r\n fetchTransactionReport,\r\n getReportsByToken,\r\n getReportPDF\r\n} from '../../actions/ReportAction.js';\r\n\r\nimport './Reports.scss';\r\n\r\n// Exported parent, wrapped in LeftCol column\r\nconst mapStateToProps = store => {\r\n return {\r\n loading: store.reports.loading,\r\n patrons: store.patrons.patrons,\r\n reports: store.reports.reports\r\n };\r\n};\r\n\r\nclass Reports extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n patrons: PropTypes.array,\r\n reports: PropTypes.array.isRequired\r\n }\r\n\r\n componentWillMount() {\r\n // Since the reports are generated after the calls, always be checking for new reports\r\n this.props.dispatch(getReportsByToken());\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"reports\">\r\n <LeftCol>\r\n {\r\n _.isEmpty(this.props.patrons) ?\r\n <AddStudent/> :\r\n <ReportAccordion\r\n dispatch={this.props.dispatch}\r\n loading={this.props.loading}\r\n patrons={this.props.patrons}\r\n reports={this.props.reports}\r\n />\r\n }\r\n </LeftCol>\r\n <RightCol/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Parent of expanable panels.\r\n * Each panel could probably be its own component.\r\n * Generate Report button could maybe be one as well.\r\n */\r\nclass ReportAccordion extends React.Component {\r\n /**\r\n * Handles the animation for opening the report accordion\r\n * @param {Event} e Click event\r\n */\r\n displayDownloadButton(e) {\r\n let $elem = $(e.currentTarget.parentElement);\r\n let $caret = $elem.find('.caret-right');\r\n\r\n // Remove closed classes, add open classes\r\n $caret.removeClass('active-caret-closed').addClass('active-caret-open');\r\n // Rotate 90 deg until further notice\r\n $caret.addClass('fa-rotate-90');\r\n }\r\n\r\n /**\r\n * Handles the animation for closing the report accordion\r\n * @param {Event} e Click event\r\n */\r\n hideDownloadButton(e) {\r\n let $caret = $(e.currentTarget.parentElement).find('.caret-right');\r\n\r\n // Find open arrow, close it\r\n $caret.removeClass('active-caret-open fa-rotate-90').addClass('active-caret-closed');\r\n }\r\n\r\n componentDidMount() {\r\n $('.report-option').on('show.bs.collapse', this.displayDownloadButton);\r\n $('.report-option').on('hide.bs.collapse', this.hideDownloadButton);\r\n }\r\n\r\n componentWillUnmount() {\r\n $('.report-option').off('show.bs.collapse', this.displayDownloadButton);\r\n $('.report-option').off('hide.bs.collapse', this.hideDownloadButton);\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n id=\"report-accordion\"\r\n role=\"tablist\"\r\n aria-multiselectable=\"true\"\r\n >\r\n <CafeteriaAccountStatement\r\n dispatch={this.props.dispatch}\r\n loading={this.props.loading}\r\n patrons={this.props.patrons}\r\n />\r\n <OnlineTransactionHistory\r\n dispatch={this.props.dispatch}\r\n loading={this.props.loading}\r\n />\r\n {\r\n _.isEmpty(this.props.reports) ?\r\n null :\r\n <GeneratedReports\r\n dispatch={this.props.dispatch}\r\n loading={this.props.loading}\r\n reports={this.props.reports}\r\n />\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nReportAccordion.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n patrons: PropTypes.array,\r\n reports: PropTypes.array.isRequired\r\n};\r\n\r\nclass CafeteriaAccountStatement extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.resetDateError = this.resetDateError.bind(this);\r\n\r\n this.state = {\r\n studentClassic: !this.props.patrons[0].patrons[0].schoolMT5\r\n };\r\n }\r\n\r\n formatDateString(d) {\r\n let inputDate = new Date(d);\r\n\r\n if(inputDate.toString() === 'Invalid Date') {\r\n return undefined;\r\n }\r\n inputDate.setDate(inputDate.getDate() + 1);\r\n let year = inputDate.getFullYear().toString();\r\n let month = (inputDate.getMonth() + 1 < 10) ? '0' + (inputDate.getMonth() + 1) : (inputDate.getMonth() + 1).toString();\r\n let day = (inputDate.getDate() < 10) ? '0' + (inputDate.getDate()) : inputDate.getDate().toString();\r\n\r\n return year + '-' + month + '-' + day;\r\n }\r\n\r\n fetchReport(e) {\r\n const dayMilli = 86400000;\r\n const cafeStatement = document.querySelector('#cafe-statement');\r\n const fromInput = cafeStatement.querySelector('.from input');\r\n const toInput = cafeStatement.querySelector('.to input');\r\n\r\n const dateInputSupported = (fromInput.type === 'date' && toInput.type === 'date');\r\n const fromDate = dateInputSupported ? new Date(fromInput.valueAsNumber + dayMilli) : fromInput.value;\r\n const toDate = dateInputSupported ? new Date(toInput.valueAsNumber + dayMilli) : toInput.value;\r\n const fromDateString = dateInputSupported ? Utils.dateFormat(fromDate, false) : this.formatDateString(fromDate);\r\n const toDateString = dateInputSupported ? Utils.dateFormat(toDate, false) : this.formatDateString(toDate);\r\n\r\n const selectedStudent = $(cafeStatement.querySelector('.student-select').selectedOptions);\r\n const patronID = selectedStudent[0].dataset.pid;\r\n const complex = cafeStatement.querySelector('#complex').checked;\r\n\r\n const hasError = cafeStatement.querySelector('.has-danger');\r\n\r\n let errorString;\r\n\r\n //for browsers that does not support input type date\r\n if(!dateInputSupported && (\r\n _.isUndefined(fromDate) ||\r\n _.isUndefined(toDate) ||\r\n _.isUndefined(fromDateString) ||\r\n _.isUndefined(toDateString)) &&\r\n _.isNull(hasError)) {\r\n errorString = 'One or more selected dates are invalid.';\r\n } else if (fromDate >= toDate) {\r\n errorString = 'From date occurs after the To date.';\r\n }\r\n\r\n if (errorString) {\r\n this.setState({\r\n dateError: errorString\r\n });\r\n return;\r\n }\r\n\r\n if(_.isNull(hasError)) {\r\n this.props.dispatch(fetchCafeteriaReport(fromDateString, toDateString, patronID, complex));\r\n }\r\n }\r\n\r\n resetDateError() {\r\n this.setState({\r\n dateError: undefined\r\n });\r\n }\r\n\r\n disableComplex(mt5) {\r\n this.setState({\r\n studentClassic: !mt5\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <h4 className=\"sr-only\">Cafeteria account statement</h4>\r\n <button className=\"btn-header btn-link collapsed dropdown\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#report-accordion\"\r\n href=\"#cafe-statement\"\r\n aria-expanded=\"true\"\r\n >\r\n <div className=\"card-header\" role=\"tab\" id=\"balance-heading\">\r\n <h4 className=\"card-title\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right balance-caret\"></i>\r\n Cafeteria Account Statement Report\r\n </h4>\r\n </div>\r\n </button>\r\n <div\r\n id=\"cafe-statement\"\r\n className=\"report-option collapse\"\r\n role=\"tabpanel\"\r\n aria-labelledby=\"balance-heading\"\r\n style={{height: 'auto !important'}}\r\n >\r\n <div className=\"panel-content\">\r\n <small className=\"text-muted\">Review all transactions in a given time period</small>\r\n <hr/>\r\n <DateRangeOption\r\n callback={this.resetDateError}\r\n error={this.state.dateError}/>\r\n Select a student:\r\n <div className=\"dropdown student-dropdown\">\r\n <StudentSelect\r\n patrons={this.props.patrons}\r\n disableComplex={this.disableComplex.bind(this)}/>\r\n </div>\r\n <div className=\"form-check report-form-check\">\r\n <label htmlFor=\"complex\" className={\"form-check-label\" + (this.state.studentClassic ? \" text-muted\" : \"\")}>\r\n <input\r\n className=\"form-check-input\"\r\n id=\"complex\"\r\n type=\"checkbox\"\r\n name=\"complex\"\r\n disabled={this.state.studentClassic}\r\n />\r\n Show complex statement for all cafeteria account members\r\n </label>\r\n {\r\n this.state.studentClassic ?\r\n <div className=\"error-text small\">This student's school is unable to generate complex reports.</div> :\r\n null\r\n }\r\n </div>\r\n\r\n <div className=\"report-card-footer\">\r\n <button\r\n className=\"btn btn-success create-pdf expand-btn show\"\r\n onClick={this.fetchReport.bind(this)}\r\n id=\"cafBtn\"\r\n >\r\n {\r\n this.props.loading ?\r\n <Loader/> :\r\n \"Generate Report\"\r\n }\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nCafeteriaAccountStatement.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n patrons: PropTypes.array.isRequired\r\n};\r\n\r\nclass OnlineTransactionHistory extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.resetDateError = this.resetDateError.bind(this);\r\n\r\n this.state = {\r\n dateError: undefined\r\n };\r\n }\r\n\r\n formatDateString(d) {\r\n let inputDate = new Date(d);\r\n\r\n if(inputDate.toString() === 'Invalid Date') {\r\n return undefined;\r\n }\r\n inputDate.setDate(inputDate.getDate() + 1);\r\n let year = inputDate.getFullYear().toString();\r\n let month = (inputDate.getMonth() + 1 < 10) ? '0' + (inputDate.getMonth() + 1) : (inputDate.getMonth() + 1).toString();\r\n let day = (inputDate.getDate() < 10) ? '0' + (inputDate.getDate()) : inputDate.getDate().toString();\r\n\r\n return year + '-' + month + '-' + day;\r\n }\r\n\r\n resetDateError() {\r\n this.setState({\r\n dateError: undefined\r\n });\r\n }\r\n\r\n generateTransReport(e) {\r\n // JS date object strikes again!\r\n const dayMilli = 86400000;\r\n const transHistory = document.querySelector('#transaction-history');\r\n const fromInput = transHistory.querySelector('.from input');\r\n const toInput = transHistory.querySelector('.to input');\r\n\r\n const dateInputSupported = (fromInput.type === 'date' && toInput.type === 'date');\r\n const fromDate = dateInputSupported ? new Date(fromInput.valueAsNumber + dayMilli) : fromInput.value;\r\n const toDate = dateInputSupported ? new Date(toInput.valueAsNumber + dayMilli) : toInput.value;\r\n const fromDateString = dateInputSupported ? Utils.dateFormat(fromDate, false) : this.formatDateString(fromDate);\r\n const toDateString = dateInputSupported ? Utils.dateFormat(toDate, false) : this.formatDateString(toDate);\r\n const hasError = transHistory.querySelector('.has-danger');\r\n\r\n let errorString;\r\n\r\n //for browsers that does not support input type date\r\n if(!dateInputSupported && (\r\n _.isUndefined(fromDate) ||\r\n _.isUndefined(toDate) ||\r\n _.isUndefined(fromDateString) ||\r\n _.isUndefined(toDateString)) &&\r\n _.isNull(hasError)) {\r\n errorString = 'One or more selected dates are invalid.';\r\n } else if (fromDate >= toDate) {\r\n errorString = 'From date occurs after the To date.';\r\n }\r\n\r\n if (errorString) {\r\n this.setState({\r\n dateError: errorString\r\n });\r\n return;\r\n }\r\n\r\n if(_.isNull(hasError)) {\r\n this.props.dispatch(fetchTransactionReport(fromDateString, toDateString));\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <h4 className=\"sr-only\">Online transaction history</h4>\r\n <button className=\"btn-header btn-link collapsed dropdown\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#report-accordion\"\r\n href=\"#transaction-history\"\r\n aria-expanded=\"false\"\r\n >\r\n <div className=\"card-header\" role=\"tab\" id=\"transaction-heading\">\r\n <h4 className=\"card-title\">\r\n <i className=\"caret-right fa fa-lg fa-caret-right deposit-caret\"></i>\r\n Online Transaction History Report\r\n </h4>\r\n </div>\r\n </button>\r\n <div\r\n id=\"transaction-history\"\r\n className=\"report-option collapse\"\r\n role=\"tabpanel\"\r\n aria-labelledby=\"deposit-heading\"\r\n >\r\n <div className=\"panel-content\">\r\n <hr/>\r\n <DateRangeOption\r\n callback={this.resetDateError}\r\n error={this.state.dateError}/>\r\n <div className=\"report-card-footer\">\r\n <button\r\n className=\"btn btn-success create-pdf expand-btn show\"\r\n onClick={this.generateTransReport.bind(this)}\r\n disabled={this.props.loading}\r\n id=\"transBtn\"\r\n >\r\n {\r\n this.props.loading ?\r\n <Loader/> :\r\n \"Generate Report\"\r\n }\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nOnlineTransactionHistory.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired\r\n};\r\n\r\nclass GeneratedReports extends React.Component {\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.reports.length !== nextProps.reports.length) {\r\n // This seems like a poor idea. The user never took this action\r\n $('#report-accordion .collapse.show').collapse('hide');\r\n }\r\n }\r\n\r\n getPDF(e) {\r\n const reportID = e.currentTarget.dataset.repid;\r\n this.props.dispatch(getReportPDF(reportID));\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"generated-reports\" className=\"card\">\r\n <div className=\"card-block\">\r\n <span className=\"text-muted small\"><p>These reports are ready to read, download, and send. Reports will remain here for 7 days before they are discarded.</p></span>\r\n <span className=\"text-muted small\"><p>Some browsers may require that you turn off your pop-up blockers in order to see the report.</p></span>\r\n <hr/>\r\n {\r\n _.map(this.props.reports, report => {\r\n let repDate = Utils.convertFromDatetime(report.enteredDateTime);\r\n const minutesSince = Utils.minutesSince(repDate);\r\n const daysSince = Math.floor(minutesSince / 1440);\r\n const newReport = (minutesSince < 5);\r\n return <button\r\n key={report.reportID}\r\n data-repid={report.reportID}\r\n className={\"btn-reports btn-link available-report day-\" + daysSince + (newReport ? ' pop' : '')}\r\n onClick={this.getPDF.bind(this)}\r\n >\r\n <span>\r\n <p className=\"faux-link\">\r\n {Utils.dateFormat(repDate, false)} {Utils.timeFormat(repDate)} - {report.reportTitle} {newReport ? ' (New)' : null}\r\n <br />\r\n <span className=\"text-muted small additional-info\">\r\n {report.additionalInfo}\r\n </span>\r\n </p>\r\n </span>\r\n </button>;\r\n })\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nGeneratedReports.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n reports: PropTypes.array.isRequired\r\n};\r\n\r\nclass DateRangeOption extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let t = new Date();\r\n this.today = this.formatDateToString(t);\r\n\r\n t.setDate(t.getDate() - 30);\r\n this.from = this.formatDateToString(t);\r\n\r\n this.state = {\r\n fromDate: undefined,\r\n fromDateString: undefined,\r\n toDate: undefined,\r\n toDateString: undefined,\r\n validRange: true\r\n };\r\n }\r\n\r\n /**\r\n * Returns date as a formatted string\r\n * @param {Date} d Date to be converted\r\n * @return {String} Date as string 'yyyy-mm-dd'\r\n */\r\n formatDateToString(d) {\r\n let year = d.getFullYear().toString();\r\n let month = (d.getMonth() + 1 < 10) ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1).toString();\r\n let day = (d.getDate() < 10) ? '0' + (d.getDate()) : d.getDate().toString();\r\n return year + '-' + month + '-' + day;\r\n }\r\n\r\n resetDateState() {\r\n const resetDateError = this.props.callback;\r\n\r\n if (resetDateError) {\r\n resetDateError();\r\n }\r\n\r\n this.setState({\r\n fromDate: undefined,\r\n fromDateString: undefined,\r\n toDate: undefined,\r\n toDateString: undefined,\r\n validRange: true\r\n });\r\n }\r\n\r\n dateChecker(e) {\r\n let transBtn = document.getElementById('transBtn');\r\n let cafBtn = document.getElementById('cafBtn');\r\n const isFromDate = e.currentTarget.classList.contains('fromDate');\r\n let checkAgainst = new Date();\r\n let inputDate = new Date(e.currentTarget.value);\r\n // For some reason it will set the date object to the day before\r\n inputDate.setDate(inputDate.getDate() + 1);\r\n\r\n if (isFromDate) {\r\n // Should check against yesterday\r\n checkAgainst.setDate(checkAgainst.getDate() - 1);\r\n }\r\n\r\n if (inputDate > checkAgainst) {\r\n // Date is in the future\r\n e.currentTarget.value = this.formatDateToString(checkAgainst);\r\n return;\r\n }\r\n\r\n if (isFromDate) {\r\n const toValue = this.toInput.value;\r\n let toDate = new Date(toValue);\r\n toDate.setDate(toDate.getDate() + 1);\r\n // From date is after to date\r\n if (inputDate >= toDate) {\r\n const adjustedDate = new Date(toDate.setDate(toDate.getDate() - 1));\r\n e.currentTarget.value = this.formatDateToString(adjustedDate);\r\n }\r\n\r\n if(inputDate.toString() === 'Invalid Date') {\r\n //this.state.fromDate = inputDate.toString();\r\n this.setState({\r\n fromDate: inputDate.toString()\r\n });\r\n if(!_.isUndefined(transBtn)) transBtn.disabled = true;\r\n if(!_.isUndefined(cafBtn)) cafBtn.disabled = true;\r\n } else {\r\n //this.state.fromDate = undefined;\r\n this.setState({\r\n fromDate: undefined\r\n });\r\n if(!_.isUndefined(transBtn)) transBtn.disabled = false;\r\n if(!_.isUndefined(cafBtn)) cafBtn.disabled = false;\r\n }\r\n } else {\r\n const fromValue = this.fromInput.value;\r\n let fromDate = new Date(fromValue);\r\n fromDate.setDate(fromDate.getDate() + 1);\r\n // To date is before from date\r\n if (inputDate <= fromDate) {\r\n e.currentTarget.value = this.formatDateToString(checkAgainst);\r\n }\r\n\r\n if(inputDate.toString() === 'Invalid Date') {\r\n //this.state.toDate = inputDate.toString();\r\n this.setState({\r\n toDate: inputDate.toString()\r\n });\r\n if(!_.isUndefined(transBtn)) transBtn.disabled = true;\r\n if(!_.isUndefined(cafBtn)) cafBtn.disabled = true;\r\n } else {\r\n //this.state.toDate = undefined;\r\n this.setState({\r\n toDate: undefined\r\n });\r\n if(!_.isUndefined(transBtn)) transBtn.disabled = false;\r\n if(!_.isUndefined(cafBtn)) cafBtn.disabled = false;\r\n }\r\n }\r\n\r\n this.forceUpdate();\r\n }\r\n\r\n validateDate(e) {\r\n const isFromDate = e.currentTarget.classList.contains('fromDate');\r\n\r\n let inputString = e.currentTarget.value.toString();\r\n let inputDate = new Date(inputString.replace(/-/g, '/'));\r\n\r\n if (isFromDate) {\r\n this.setState({\r\n fromDate: inputDate,\r\n fromDateString: inputDate.toString()\r\n });\r\n } else {\r\n this.setState({\r\n toDate: inputDate,\r\n toDateString: inputDate.toString()\r\n });\r\n }\r\n }\r\n\r\n dateRangeToggle(e) {\r\n let delta = JSON.parse(e.currentTarget.selectedOptions[0].dataset.delta);\r\n if (delta === -1) {\r\n this.fromInput.disabled = false;\r\n this.toInput.disabled = false;\r\n } else {\r\n this.resetDateState();\r\n this.fromInput.disabled = true;\r\n this.toInput.disabled = true;\r\n let t = new Date();\r\n if (delta === 0) {\r\n let month = t.getMonth();\r\n let year = t.getFullYear();\r\n let fromDate = '-07-01';\r\n let toDate = '-06-30';\r\n\r\n if (month >= 6) { // Between July - December\r\n fromDate = year + fromDate;\r\n toDate = (year + 1) + toDate;\r\n } else { // Into next year\r\n fromDate = (year - 1) + fromDate;\r\n toDate = year + toDate;\r\n }\r\n this.toInput.value = toDate;\r\n this.fromInput.value = fromDate;\r\n } else {\r\n this.toInput.value = this.formatDateToString(t);\r\n\r\n t.setDate(t.getDate() - delta);\r\n this.fromInput.value = this.formatDateToString(t);\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n let today = new Date();\r\n let yesterday = new Date();\r\n yesterday.setDate(yesterday.getDate() - 1);\r\n\r\n return (\r\n <div className=\"date-range\">\r\n Set the date range:\r\n <div className=\"dropdown report-dropdown\">\r\n <select\r\n className=\"btn btn-sm btn-secondary dropdown-toggle date-dropdown\"\r\n onChangeCapture={this.dateRangeToggle.bind(this)}>\r\n <option data-delta={30}>Last 30 days</option>\r\n <option data-delta={90}>Last 90 days</option>\r\n <option data-delta={180}>Last 180 days</option>\r\n <option data-delta={0}>School year</option>\r\n <option data-delta={-1}>Custom</option>\r\n </select>\r\n </div>\r\n <div className=\"report-dates\">\r\n <div>\r\n <div className=\"input-group input-group-sm report-date from\">\r\n <div className={(this.state.fromDateString === 'Invalid Date' || !this.state.validRange) ? \"input-group-sm has-danger\" : \"input-group-sm\"}>\r\n <input\r\n type=\"date\"\r\n className=\"form-control fromDate\"\r\n defaultValue={this.from}\r\n ref={node => this.fromInput = node}\r\n max={this.formatDateToString(yesterday)}\r\n onChangeCapture={this.validateDate.bind(this)}\r\n disabled\r\n />\r\n {\r\n (this.state.fromDateString === 'Invalid Date') ?\r\n <div className=\"error-text small\">Invalid Date</div> :\r\n null\r\n }\r\n </div>\r\n </div>\r\n <span> — </span>\r\n <div className=\"input-group input-group-sm report-date to\">\r\n <div className={(this.state.toDateString === 'Invalid Date' || !this.state.validRange) ? \"input-group-sm has-danger\" : \"input-group-sm\"}>\r\n <input\r\n type=\"date\"\r\n className=\"form-control toDate\"\r\n defaultValue={this.today}\r\n ref={node => this.toInput = node}\r\n max={this.formatDateToString(today)}\r\n onChangeCapture={this.validateDate.bind(this)}\r\n disabled\r\n />\r\n {\r\n (this.state.toDateString === 'Invalid Date') ?\r\n <div className=\"error-text small\">Invalid Date</div> :\r\n null\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n {\r\n _.isEmpty(this.props.error) ?\r\n null :\r\n <div className=\"error-text small\">\r\n {this.props.error}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nDateRangeOption.propTypes = {\r\n callback: PropTypes.func,\r\n error: PropTypes.object\r\n};\r\n\r\n/**\r\n * Student dropdown option\r\n */\r\nclass StudentSelect extends React.Component {\r\n /**\r\n * Updates the text to the student selected\r\n * @param {Event} e Click event\r\n */\r\n selectStudent(e) {\r\n let isMT5 = JSON.parse(e.currentTarget.selectedOptions[0].dataset.mpower.toLowerCase());\r\n if (!isMT5) {\r\n // If the student can't use the complex report, uncheck for them\r\n document.querySelector('.report-option #complex').checked = isMT5;\r\n }\r\n this.props.disableComplex(isMT5);\r\n }\r\n\r\n getOptions(patrons) {\r\n let options = [];\r\n _.map(this.props.patrons, acct => {\r\n return _.map(acct.patrons, s => {\r\n options.push(\r\n <option\r\n key={s.patronID}\r\n data-name={s.fullName}\r\n data-pid={s.patronID}\r\n data-mpower={s.schoolMT5}\r\n >{s.fullName}</option>\r\n );\r\n });\r\n });\r\n\r\n return options;\r\n }\r\n\r\n render() {\r\n return (\r\n <select\r\n className=\"btn btn-sm btn-secondary dropdown-toggle student-select\"\r\n onChangeCapture={this.selectStudent.bind(this)}\r\n >\r\n {this.getOptions(this.props.patrons)}\r\n </select>\r\n );\r\n }\r\n}\r\n\r\nStudentSelect.propTypes = {\r\n disableComplex: PropTypes.func.isRequired,\r\n patrons: PropTypes.array.isRequired\r\n};\r\n\r\nexport default connect(mapStateToProps)(Reports);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Reports/Reports.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport App from 'App';\r\nimport ErrorModal from '../../components/Modals/Error/Error.jsx';\r\nimport Login from 'Login';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n isAuthenticated: store.auth.isAuthenticated,\r\n token: store.auth.token\r\n };\r\n};\r\n\r\nclass Root extends React.Component {\r\n static propTypes = {\r\n children: PropTypes.element,\r\n dispatch: PropTypes.func.isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n token: PropTypes.string\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.authenticated = false;\r\n }\r\n\r\n /*\r\n * We grab the token instead of checking for it because\r\n * this.props.token will be undefined until REHYDRATE\r\n */\r\n componentWillMount() {\r\n let token = Utils.checkForToken();\r\n if (!_.isUndefined(token)) {\r\n this.authenticated = true;\r\n }\r\n }\r\n\r\n render() {\r\n let token = Utils.checkForToken();\r\n this.authenticated = !_.isUndefined(token);\r\n let fromAbout = _.isUndefined(this.props.location.state) ? this.props.location.state : this.props.location.state.forgot;\r\n let cookieEnabled = navigator.cookieEnabled;\r\n let rootContent;\r\n\r\n if (cookieEnabled) {\r\n rootContent =\r\n <div id=\"root\">\r\n {\r\n this.authenticated ?\r\n <App>\r\n {this.props.children}\r\n </App> :\r\n <Login forgot={fromAbout}/>\r\n }\r\n <ErrorModal />\r\n </div>;\r\n } else {\r\n rootContent =\r\n <div id=\"no-cookie\">\r\n <div>It looks like you have cookies disabled. In order to use My MealTime cookies must be enabled.</div>\r\n </div>;\r\n }\r\n\r\n return (rootContent);\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(Root);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Root/Root.jsx","import React from 'react';\nimport {connect} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport LeftCol from '../../components/LeftCol/LeftCol';\nimport RightCol from '../../components/RightCol/RightCol';\nimport SubSetting from '../../components/SubSetting/SubSetting.jsx';\nimport Toggle from '../../components/Toggle/Toggle';\nimport ToggleLoader from '../../components/ToggleLoader/ToggleLoader.jsx';\n\nimport { biometryIsAvailable, getBiometryState, setBiometry, disableBiometry } from '../../js/Biometry.js';\nimport {initPushNotifications, getPushNotificationState} from '../../js/Push.js';\n\nimport {updateGlobalPush} from '../../actions/UserAction.js';\nimport {addRememberAlert} from '../../actions/RememberAction.js';\n\nimport {getUserByToken, getUserNotificationSettings} from '../../../common/actions/UserAction.js';\nimport {getPaymentMethods} from '../../../common/actions/TransAction.js';\nimport NotificationDebug from '../../../common/components/NotificationDebug/NotificationDebug.jsx';\nimport {env} from '../../../version.json';\nimport './Settings.scss';\n\n//App Settings route\nconst mapStateToProps = store => {\n return {\n globalPushEnabled: store.user.globalPushEnabled,\n userID: store.user.id,\n username: store.user.userInfo.username,\n pushNotLoading: store.user.pushNotLoading,\n loading: store.user.loading\n };\n};\n\nclass Settings extends React.Component {\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n globalPushEnabled: PropTypes.bool,\n userID: PropTypes.number,\n username: PropTypes.string,\n pushNotLoading: PropTypes.bool,\n loading: PropTypes.bool\n };\n\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.state = {\n biometryIsSupported: false,\n show: false,\n context: ''\n };\n }\n\n\n componentDidMount() {\n this._isMounted = true;\n document.addEventListener('change-sub', e => {\n if (this._isMounted && !this.state.show) {\n this.setState({\n show: true,\n context: e.detail.type\n });\n }\n });\n\n document.addEventListener('hide-settings', this.hideSubSettingSwitchToDefault.bind(this));\n\n if(Utils.isApp()) {\n (async() => {\n const check = await biometryIsAvailable();\n if(check.isAvailable) {\n this.setState({biometryIsSupported: true});\n }\n })();\n\n this.props.dispatch(getUserNotificationSettings(Utils.getFromStorage('devicePushRegID')));\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n document.removeEventListener('hide-settings', this.hideSubSettingSwitchToDefault.bind(this));\n }\n\n hideSubSettingSwitchToDefault() {\n document.dispatchEvent(new CustomEvent('change-sub', {detail: {type: 'payment'}}));\n\n if (this._isMounted) {\n this.setState({\n show: false,\n context: ''\n });\n }\n }\n\n render() {\n return (\n <div id=\"settings\">\n <LeftCol>\n {\n env === 'dev' ?\n <NotificationDebug data={this.props} /> : null\n }\n {\n Utils.isApp() ?\n <Notifications\n dispatch={this.props.dispatch}\n globalPushEnabled={this.props.globalPushEnabled}\n userID={this.props.userID}\n loading={this.props.pushNotLoading}\n /> :\n null\n }\n <PaymentMethods dispatch={this.props.dispatch} />\n <Account dispatch={this.props.dispatch}/>\n {\n this.state.biometryIsSupported ?\n <Security\n dispatch={this.props.dispatch}\n userID={this.props.userID}\n username={this.props.username}\n /> :\n null\n }\n <ThemePicker userID={this.props.userID}/>\n </LeftCol>\n <RightCol>\n <div id=\"setting-info\" className={\"card\" + (this.state.show ? '' : ' ghost')}>\n <SubSetting load={this.state.context} />\n </div>\n </RightCol>\n </div>\n );\n }\n}\n\nclass Notifications extends React.Component {\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.state = {\n enabled: true,\n pushUserID: undefined,\n isOSAllowed: true\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n if(Utils.isApp()) {\n (async () => {\n let permissionState = await getPushNotificationState();\n if (permissionState.receive == 'granted') {\n this.setState({\n isOSAllowed: true\n });\n } else {\n this.setState({\n isOSAllowed: false\n });\n }\n })();\n\n document.addEventListener('resume', this.onResume.bind(this));\n }\n }\n\n onResume() {\n (async () => {\n let registrationId = Utils.getFromStorage('devicePushRegID');\n let permissionState = await getPushNotificationState();\n if (permissionState.receive == 'granted') {\n this.setState({\n isOSAllowed: true\n });\n\n if(registrationId == undefined && this.props.globalPushEnabled == undefined) {//push notif hasn't registered yet, so init registration\n (async () => {\n await initPushNotifications(this.props.dispatch)\n })();\n }\n\n } else {\n this.setState({\n isOSAllowed: false\n });\n }\n })();\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n document.removeEventListener('resume', this.onResume.bind(this));\n }\n\n changeSub() {\n const enabled = this.state.isOSAllowed ? this.props.globalPushEnabled : false;\n if(this.state.isOSAllowed) {\n if (Utils.isMobile()) {\n Utils.updateModal('settings', {load: 'notification', enabled: enabled});\n document.dispatchEvent(new Event('hide-settings'));\n } else {\n document.dispatchEvent(new CustomEvent('change-sub', {detail: {type: 'notification', enabled: enabled}}));\n }\n } else {\n Utils.updateModal('confirm', {\n header: 'Notification Settings',\n msg: 'Notifications are currently disabled by your device. Enable them in your device settings first.'\n });\n return;\n }\n }\n\n toggleHandler(e) {\n if(Utils.isApp()) {\n let registrationId = Utils.getFromStorage('devicePushRegID');\n let isChecked = this.state.isOSAllowed ? this.props.globalPushEnabled : false;\n if(isChecked) {//disable on api level\n this.props.dispatch(updateGlobalPush(registrationId, false));\n } else { //disabled\n if(registrationId == undefined && this.props.globalPushEnabled == undefined) {//push notif hasn't registered yet, so init registration\n (async () => {\n await initPushNotifications(this.props.dispatch)\n })();\n }\n\n if(this.state.isOSAllowed && !this.props.globalPushEnabled && registrationId) { //enable push on api\n this.props.dispatch(updateGlobalPush(registrationId, true));\n } else if(!this.state.isOSAllowed) { //found disabled by device\n Utils.updateModal('confirm', {\n header: 'Notification Settings',\n msg: 'Notifications are currently disabled by your device. Enable them in your device settings first.'\n });\n }\n }\n }\n }\n\n render() {\n // If the push notifications have been enabled for any user on the device,\n // there will be a device id stored in local storage\n //let pushNotificationID = Utils.getFromStorage('devicePushRegID');\n //let enabledNotifications = !_.isUndefined(pushNotificationID);\n let isChecked = this.state.isOSAllowed ? this.props.globalPushEnabled : false;\n\n return (\n <div id=\"notification-settings\" className=\"card\">\n <h4 className=\"sr-only\">Notifications</h4>\n <div className=\"list-group\">\n <li className=\"list-group-item\" onClick={this.changeSub.bind(this)}>\n <div className=\"form-check\">\n Notification Settings\n <i className=\"fa fa-chevron-circle-right pull-right\" aria-hidden=\"true\"></i>\n </div>\n </li>\n\n <hr />\n\n <li className=\"list-group-item notif-enable\">\n <div className=\"form-check\">\n <label className=\"form-check-label\">\n Enable Notifications\n </label>\n {\n this.props.loading ?\n <label className=\"switch pull-right\">\n <ToggleLoader checked={isChecked} />\n </label> :\n <Toggle\n right={true}\n changeHandler={this.toggleHandler.bind(this)}\n checked={isChecked}\n />\n }\n </div>\n </li>\n </div>\n </div>\n );\n }\n}\n\nNotifications.propTypes = {\n dispatch: PropTypes.func.isRequired,\n globalPushEnabled: PropTypes.bool,\n userID: PropTypes.number,\n loading: PropTypes.bool.isRequired\n};\n\nclass PaymentMethods extends React.Component {\n changeSub(e) {\n let checkpoint = e.target;\n this.props.dispatch(getPaymentMethods());\n if (Utils.isMobile()) {\n Utils.updateModal('settings', {load: 'payment'});\n document.dispatchEvent(new Event('hide-settings'));\n } else {\n document.dispatchEvent(new CustomEvent('change-sub', {detail: {type: 'payment'}}));\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\n focalPointID: 'dummy-right-col-container',\n checkpoint: checkpoint\n }}));\n }\n }\n\n render() {\n return (\n <div id=\"payment-settings\" className=\"card card-swap-padding\">\n <h4 className=\"sr-only\">Payment methods</h4>\n <button id=\"payment-setting-button\" className=\"setting-button\" onClick={this.changeSub.bind(this)}>\n <div className=\"list-group\">\n <li className=\"list-group-item\">\n <div className=\"form-check\">\n Payment Methods\n <i className=\"fa fa-chevron-circle-right pull-right\" aria-hidden=\"true\"></i>\n </div>\n </li>\n </div>\n </button>\n </div>\n );\n }\n}\n\nPaymentMethods.propTypes = {\n dispatch: PropTypes.func\n};\n\nclass Account extends React.Component {\n changeSub(e) {\n let checkpoint = e.target;\n this.props.dispatch(getUserByToken());\n if (Utils.isMobile()) {\n Utils.updateModal('settings', {load: 'account'});\n document.dispatchEvent(new Event('hide-settings'));\n } else {\n document.dispatchEvent(new CustomEvent('change-sub', {detail: {type: 'account'}}));\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\n focalPointID: 'dummy-right-col-container',\n checkpoint: checkpoint\n }}));\n }\n }\n\n render() {\n return (\n <div id=\"account-settings\" className=\"card card-swap-padding\">\n <h4 className=\"sr-only\">MyMealTime.com account</h4>\n <button id=\"account-setting-button\" className=\"setting-button\" onClick={this.changeSub.bind(this)}>\n <div className=\"list-group\">\n <li className=\"list-group-item\">\n <div className=\"form-check\">\n MyMealTime.com Account\n <i className=\"fa fa-chevron-circle-right pull-right\" aria-hidden=\"true\"></i>\n </div>\n </li>\n </div>\n </button>\n </div>\n );\n }\n}\n\nAccount.propTypes = {\n dispatch: PropTypes.func\n};\n\nclass Security extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n biometrySupported: false,\n credentials: false,\n biometryType: {\n member: 'NONE',\n name: 'None'\n }\n };\n }\n\n componentWillMount() {\n if(Utils.isApp()) {\n (async () => {\n let biometryState = await getBiometryState();\n\n this.setState({\n biometrySupported: biometryState.isAvailable,\n credentials: biometryState.credentials,\n biometryType: biometryState.biometryType\n });\n })();\n }\n }\n\n setSecurity(e) {\n //only OG can make biometry changes\n if(this.state.credentials != false) if(this.state.credentials.username != this.props.userID.toString()) {\n Utils.updateModal('master', {\n headerTxt: `${this.state.biometryType.name} Settings`\n });\n return;\n }\n\n if(e.currentTarget.checked) {\n //set biometry\n (async () => {\n let creds = await setBiometry(this.props.userID, this.props.username, this.props.dispatch);\n this.setState({\n credentials: creds\n })\n })();\n this.props.dispatch(addRememberAlert({alert: \"fingerprint\"}));\n } else {\n //disable biometry\n (async () => {\n let credentials = await disableBiometry();\n this.setState({\n credentials: credentials\n })\n })();\n }\n }\n\n render() {\n return (\n <div id=\"security-settings\" className=\"card\">\n <h4 className=\"sr-only\">Security</h4>\n <li className=\"list-group-item\">\n <div className=\"form-check\">\n <label className=\"form-check-label\">\n {`Secure with ${this.state.biometryType.name}`}\n </label>\n <Toggle\n changeHandler={this.setSecurity.bind(this)}\n right={true}\n checked={this.state.credentials != false}\n disabled={!this.state.biometrySupported}\n />\n </div>\n </li>\n </div>\n );\n }\n}\n\nSecurity.propTypes = {\n dispatch: PropTypes.func,\n userID: PropTypes.number,\n username: PropTypes.string\n};\nclass ThemePicker extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n currentTheme: this.getCurrentTheme()\n };\n }\n\n changeTheme(theme) {\n document.body.className = theme + \"-theme\";\n setUserData(this.props.userID, 'theme', {theme: theme});\n // if (window.cordova && window.StatusBar) {\n // Utils.setStatusBarColor();\n // }\n this.setState({\n currentTheme: this.getCurrentTheme()\n });\n }\n\n getCurrentTheme() {\n switch (document.body.className) {\n case 'default-theme':\n return 'Default';\n case 'red-theme':\n return 'Red';\n case 'green-theme':\n return 'Green';\n case 'orange-theme':\n return 'Orange';\n case 'purple-theme':\n return 'Purple';\n case 'dark-theme':\n return 'Dark';\n case 'contrast-theme':\n return 'High Contrast';\n default:\n return 'Unknown';\n }\n }\n\n render() {\n // it might be kind of dumb to pass the user id to each theme...\n const themes = [\n 'default',\n 'red',\n 'green',\n 'orange',\n 'purple',\n 'dark',\n 'contrast'\n ];\n return (\n <div id=\"theme-picker\" className=\"card\">\n <h4 className=\"sr-only\">Theme selection</h4>\n <div>{\"Theme: \" + this.state.currentTheme}</div>\n <form>\n <fieldset>\n <div id=\"themes\">\n {\n _.map(themes, theme => {\n return (\n <div key={theme}>\n <ThemeOption\n theme={theme}\n userID={this.props.userID}\n changeTheme={this.changeTheme.bind(this)}\n currentTheme={this.state.currentTheme}\n />\n </div>\n );\n }, this)\n }\n </div>\n </fieldset>\n </form>\n </div>\n );\n }\n}\n\nThemePicker.propTypes = {\n userID: PropTypes.number\n};\n\nclass ThemeOption extends React.Component {\n render() {\n return (\n <label className=\"theme-container\" htmlFor={this.props.theme + \"-skin\"}>\n <input\n id={this.props.theme + \"-skin\"}\n type=\"radio\" name=\"theme\"\n onClick={() => this.props.changeTheme(this.props.theme)}\n checked={this.props.currentTheme.toUpperCase().includes(this.props.theme.toUpperCase()) }\n />\n <div className=\"theme-opt\">\n <div className={this.props.theme + \"-skin\"}>\n <div className=\"tnav\"></div>\n <div className=\"tapp\">\n <span className=\"tside\">\n <div className=\"tlink\">\n <span className=\"tbox\"></span>\n <span className=\"titem\"></span>\n </div>\n <div className=\"tlink\">\n <span className=\"tbox\"></span>\n <span className=\"titem\"></span>\n </div>\n <div className=\"tlink\">\n <span className=\"tbox\"></span>\n <span className=\"titem\"></span>\n </div>\n <div className=\"tlink\">\n <span className=\"tbox\"></span>\n <span className=\"titem\"></span>\n </div>\n <div className=\"tlink\">\n <span className=\"tbox\"></span>\n <span className=\"titem\"></span>\n </div>\n </span>\n <span className=\"tcontent\">\n <div className=\"tcard\">\n <div></div>\n </div>\n <div className=\"tcard\">\n <div></div>\n </div>\n </span>\n </div>\n <div className=\"tfoot\">\n <div></div>\n </div>\n </div>\n </div>\n </label>\n );\n }\n}\n\nThemeOption.propTypes = {\n theme: PropTypes.string.isRequired,\n userID: PropTypes.number,\n changeTheme: PropTypes.func.isRequired,\n currentTheme: PropTypes.string.isRequired\n};\n\nexport default connect(mapStateToProps)(Settings);\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Settings/Settings.jsx","import React from 'react';\r\nimport {withRouter} from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport './SignedOutSuccess.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {};\r\n};\r\n\r\nclass SignedOutSuccess extends React.Component {\r\n static propTypes = {\r\n router: PropTypes.object\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.timer = setTimeout(() => {\r\n this.signInAgain(this);\r\n }, 300000);\r\n }\r\n\r\n componentWillMount() {\r\n let backdrop = document.querySelector('.modal-backdrop.show');\r\n if (_.isObject(backdrop)) document.body.removeChild(backdrop);\r\n }\r\n\r\n componentDidMount() {\r\n let clickOverlay = document.querySelector('.click-overlay');\r\n if (_.isObject(clickOverlay)) document.body.removeChild(clickOverlay);\r\n\r\n $('body').css('overflow', '');\r\n }\r\n\r\n componentWillUnmount() {\r\n clearTimeout(this.timer);\r\n }\r\n\r\n signInAgain(e) {\r\n this.props.router.push(\"/\");\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"signed-out-success\">\r\n <i className=\"fa fa-check-circle fa-5x\"></i>\r\n <div className=\"msg\">\r\n <p>You've been successfully signed out of the program</p>\r\n <p>Thank you for using My MealTime!</p>\r\n </div>\r\n <button\r\n className=\"btn btn-success\"\r\n title=\"Return to Sign-in\"\r\n onClick={this.signInAgain.bind(this)}>\r\n Return to Sign-in\r\n </button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst composedWithRouter = withRouter(SignedOutSuccess);\r\nexport default connect(mapStateToProps)(composedWithRouter);\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/SignedOutSuccess/SignedOutSuccess.jsx","import React from 'react';\r\nimport {Link} from 'react-router';\r\n\r\nimport SinglePage from '../../components/SinglePage/SinglePage.jsx';\r\n\r\nimport './Support.scss';\r\n\r\nclass Support extends React.Component {\r\n render() {\r\n return (\r\n <SinglePage>\r\n <div id=\"support\" className=\"card\">\r\n <div id=\"questionsAccordion\" role=\"tablist\">\r\n <a href=\"#q1\" data-toggle=\"collapse\" data-parent=\"#questionsAccordion\">MealTime Online is not a part of the school district but a company that provides this web site for your school district.</a>\r\n <div className=\"collapse\" id=\"q1\">\r\n <div className=\"card card-block\">\r\n <p>You must use the same username and password that you supplied when you registered your new profile.</p>\r\n\r\n <p>If you have forgotten your username we can send you an email with your profile information – <Link to=\"/forgot\">I forgot my username</Link></p>\r\n\r\n <p>If you have forgotten your password we can send you an email with a new password - <Link to=\"/forgot\">I forgot my password</Link></p>\r\n\r\n <p>If you do not have a profile you can create a new profile here – <Link to=\"/register\">Create new profile</Link></p>\r\n </div>\r\n </div>\r\n\r\n <br/>\r\n\r\n <a href=\"#q2\" data-toggle=\"collapse\" data-parent=\"#questionsAccordion\">The website tells me that my username or password is incorrect or I have forgotten my username or password.</a>\r\n <div className=\"collapse\" id=\"q2\">\r\n <div className=\"card card-block\">\r\n <p>Your Internet browser must have cookies enabled. MealTime Online also requires that SSL be enabled in your browser.</p>\r\n\r\n <p>If you have accessed MealTime Online from your school district's website, try clicking here to login: <a href=\"http://www.mymealtime.com\">www.mymealtime.com</a></p>\r\n </div>\r\n </div>\r\n\r\n <br/>\r\n\r\n <a href=\"#q3\" data-toggle=\"collapse\" data-parent=\"#questionsAccordion\">Why is the SignIn page redisplayed each time I try to sign in?</a>\r\n <div className=\"collapse\" id=\"q3\">\r\n <div className=\"card card-block\">\r\n <p>Once you are locked out of the site, you must close all open instances of your browser and restart it before trying again.</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </SinglePage>\r\n );\r\n }\r\n}\r\n\r\nexport default Support;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Support/Support.jsx","import React from 'react';\r\nimport {Link} from 'react-router';\r\n\r\nimport TermsOfUseContents from '../../components/AboutComponents/Contents/TermOfUseContents.jsx';\r\nimport './Terms.scss';\r\n\r\nclass Terms extends React.Component {\r\n\r\n componentWillMount() {\r\n let backdrop = document.querySelector('.modal-backdrop.show');\r\n if (_.isObject(backdrop)) document.body.removeChild(backdrop);\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"terms\">\r\n <header className=\"navbar navbar-default\" role=\"banner\">\r\n <div className=\"navbar-header\">\r\n <div className=\"center-image-container\">\r\n <img\r\n alt=\"MyMealTime Logo\"\r\n src=\"img/MT_HEADER.svg\"\r\n height=\"50\"\r\n width=\"auto\"\r\n />\r\n </div>\r\n </div>\r\n </header>\r\n <div className=\"container\">\r\n <div className=\"settings\">\r\n <div>\r\n <div className=\"login-text\">\r\n <Link to=\"/\"> Back To Home </Link>\r\n </div>\r\n <TermsOfUseContents />\r\n <hr/>\r\n <div className=\"login-text\">\r\n <Link to=\"/\"> Back To Home </Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Terms;\r\n\n\n\n// WEBPACK FOOTER //\n// app/common/routes/Terms/Terms.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {withRouter} from 'react-router';\r\n\r\nimport Header from '../../../common/components/Header/Header.jsx';\r\nimport Modal from '../../../common/components/Modals/Modal/Modal.jsx';\r\nimport ReauthModal from '../../../common/components/Modals/Reauth/Reauth.jsx';\r\nimport FocusRover from '../../../common/components/FocusRover/FocusRover.js';\r\n\r\nimport Sidebar from '../Sidebar/Sidebar.jsx';\r\n\r\nimport {triggerReauthenticate} from '../../../common/actions/AuthAction.js';\r\nimport {getReceipts} from '../../../common/actions/CartAction.js';\r\nimport {\r\n getPatrons,\r\n getBalanceNotifications\r\n} from '../../../common/actions/PatronsAction.js';\r\nimport {getScheduledDeposits} from '../../../common/actions/SubAction.js';\r\nimport {getPaymentMethods} from '../../../common/actions/TransAction.js';\r\nimport {getUserByToken} from '../../../common/actions/UserAction.js';\r\n\r\nimport './App.scss';\r\n\r\n// Body of application that hosts all the routes.\r\n// Exported parent component.\r\nconst mapStateToProps = store => {\r\n return {\r\n authLoading: store.auth.loading,\r\n cartTotal: store.cart.total,\r\n defaultPayment: store.trans.defaultPayment,\r\n isAuthenticated: store.auth.isAuthenticated,\r\n items: store.cart.items,\r\n lastActivity: store.auth.lastActivity,\r\n messages: store.user.messages,\r\n paymentMethod: store.cart.paymentMethod,\r\n persisted: store.auth.persisted,\r\n rememberAlerts: store.remember.alerts,\r\n token: store.auth.token,\r\n tokenLength: store.auth.tokenLength,\r\n userID: store.user.id,\r\n username: store.user.userInfo.username,\r\n validationErrors: store.error.validationErrors\r\n };\r\n};\r\n\r\nclass App extends React.Component {\r\n /*\r\n * So, when wrapping a component in connect(), Component.PropTypes is tied to\r\n * the connected component, so it doesn't get any of the wrapped components\r\n * properties, meaning they all come up as undefined. By defining them inside\r\n * the component itself, we can avoid that problem. So that's why all the\r\n * connected components have their propTypes defined as such.\r\n */\r\n static propTypes = {\r\n authLoading: PropTypes.bool.isRequired,\r\n cartTotal: PropTypes.number.isRequired,\r\n children: PropTypes.element.isRequired,\r\n defaultPayment: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n items: PropTypes.array.isRequired,\r\n lastActivity: PropTypes.instanceOf(Date),\r\n messages: PropTypes.array,\r\n paymentMethod: PropTypes.string,\r\n persisted: PropTypes.bool,\r\n rememberAlerts: PropTypes.array,\r\n router: PropTypes.object,\r\n token: PropTypes.string,\r\n tokenLength: PropTypes.number,\r\n userID: PropTypes.number,\r\n username: PropTypes.string,\r\n validationErrors: PropTypes.array.isRequired\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.locked = false;\r\n this._isMounted = false;\r\n this.state = {\r\n isEnabled: false,\r\n focalPointId: '',\r\n checkpoints: [],\r\n trapEnabled: false,\r\n focusOn: '',\r\n persistFocus: false,\r\n restore: false,\r\n lastActivity: undefined,\r\n triggerElement: null\r\n };\r\n }\r\n\r\n /*\r\n * redux-persist pulls old redux out of localStorage, but executes\r\n * REHYDRATE well after componentWill/Did/Could/ShouldMount, making redux\r\n * props a less-than-ideal way to check if the user has already loaded\r\n * their patrons. We instead check if the data is in localStorage, and if\r\n * so, let REHYDRATE take care of loading the data later, otherwise we\r\n * dispatch the appropriate action(s). Same for user info, etc.\r\n *\r\n */\r\n componentWillMount() {\r\n if (this.props.router.getCurrentLocation().pathname.includes('/register') ||\r\n this.props.router.getCurrentLocation().pathname.includes('/index.html')) {\r\n this.props.router.push('/');\r\n }\r\n if (Utils.hasUser() && getUserData) {\r\n let user = Utils.getFromStorage('reduxPersist:user');\r\n getUserData(user.id,\r\n 'theme',\r\n this.getUserThemeSuccess.bind(this),\r\n this.getUserThemeSuccess.bind(this));\r\n } else {\r\n // Fetch user\r\n this.props.dispatch(getUserByToken(this.props.token, this.props.router, this.getUserThemeSuccess.bind(this)));\r\n }\r\n if (!Utils.hasPaymentMethods()) {\r\n this.props.dispatch(getPaymentMethods());\r\n }\r\n if (!Utils.hasPatrons()) {\r\n // Fetch user patrons\r\n this.props.dispatch(getPatrons());\r\n this.props.dispatch(getBalanceNotifications());\r\n }\r\n if (!Utils.hasScheduledDeposits()) {\r\n this.props.dispatch(getScheduledDeposits());\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener('refresh-data', this.getAppData.bind(this));\r\n document.addEventListener('resume', this.checkForTimeout.bind(this));\r\n window.setInterval(this.checkForTimeout.bind(this), 5000);\r\n this._isMounted = true;\r\n document.addEventListener('rove-focal-point', this.roveFocalPoint.bind(this));\r\n document.addEventListener('rove-on-modals', this.roveOnModals.bind(this));\r\n document.addEventListener('keydown', this.keyDownHandler.bind(this), true);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.isAuthenticated && !this.props.isAuthenticated) {\r\n // App has been reauthenticated\r\n this.locked = false;\r\n\r\n // We need to fetch app specific data here. Not available in the student app\r\n this.props.dispatch(getScheduledDeposits());\r\n }\r\n\r\n // In order to keep the setInterval up to date, we use state instead of props\r\n // for checking when the last API activity was\r\n if (this._isMounted) {\r\n this.setState({\r\n lastActivity: nextProps.lastActivity\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n document.removeEventListener('refresh-data', this.getAppData.bind(this));\r\n document.removeEventListener('resume', this.checkForTimeout.bind(this));\r\n document.removeEventListener('rove-focal-point', this.roveFocalPoint.bind(this));\r\n document.removeEventListener('rove-on-modals', this.roveOnModals.bind(this));\r\n document.removeEventListener('keydown', this.keyDownHandler.bind(this), true);\r\n }\r\n\r\n checkForTimeout() {\r\n if (!this._isMounted) return;\r\n let tokenExpired = Utils.hasTokenExpired(this.state.lastActivity,\r\n this.props.tokenLength);\r\n if (tokenExpired && !this.locked && this.props.isAuthenticated) {\r\n this.props.dispatch(triggerReauthenticate());\r\n Utils.reauthenticate(this.props.userID, this.props.dispatch);\r\n this.locked = true;\r\n }\r\n }\r\n\r\n getUserThemeSuccess(response) {\r\n if (_.isUndefined(response) || _.isNull(response)) {\r\n document.body.className = 'default-theme';\r\n return;\r\n }\r\n let storage;\r\n if (_.isString(response)) {\r\n storage = JSON.parse(response);\r\n } else {\r\n storage = response;\r\n }\r\n\r\n if (_.isObject(storage) && storage.theme) {\r\n // Set theme\r\n document.body.className = storage.theme + '-theme';\r\n Utils.setStatusBarColor();\r\n } else {\r\n document.body.className = 'default-theme';\r\n }\r\n }\r\n\r\n /**\r\n * When a push notification comes in, refresh all data\r\n * @param {Event} e Event used to trigger refresh\r\n */\r\n getAppData(e) {\r\n this.props.dispatch(getPatrons());\r\n this.props.dispatch(getBalanceNotifications());\r\n this.props.dispatch(getScheduledDeposits());\r\n this.props.dispatch(getReceipts());\r\n // this.props.dispatch(getSchoolFees());\r\n // this.props.dispatch(getPaymentMethods());\r\n }\r\n\r\n /**\r\n * controls rover on user's keydowns\r\n * @param {event} e custom event\r\n */\r\n keyDownHandler(e) {\r\n if((e.shiftKey && e.keyCode === 9) || e.keyCode === 37) {\r\n if (this.state.focalPointId === \"dummy-app-body\") {\r\n this.setState({\r\n isEnabled: false,\r\n focusOn: 'keydown-custom',\r\n event: e\r\n });\r\n return;\r\n }\r\n\r\n if(this.state.focalPointId === \"dummy-right-col-container\") {\r\n let rightColumn = document.getElementById(\"right-col-container\");\r\n let dummyRightColumn = document.getElementById(\"dummy-right-col-container\");\r\n\r\n if($(rightColumn).has(document.activeElement).length || document.activeElement === dummyRightColumn) {\r\n this.setState({\r\n isEnabled: false,\r\n focusOn: 'keydown-custom',\r\n event: e,\r\n callback: null\r\n });\r\n } else {\r\n const callback = (function() {\r\n let $container = document.getElementById(\"app-body\");\r\n if(_.isUndefined($container) || _.isNull($container)) return;\r\n let focusables = $container.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\r\n if(document.activeElement === (focusables[0])) {\r\n let $desktopMenu = document.getElementById(\"desktopMenu\");\r\n let $active = $desktopMenu.getElementsByClassName(\"active\");\r\n ($active[0]).focus();\r\n e.preventDefault();\r\n }\r\n });\r\n\r\n if(this._isMounted) {\r\n this.setState({\r\n isEnabled: false,\r\n focusOn: 'keydown-custom',\r\n event: e,\r\n callback: callback\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * controls rover on modals\r\n * @param {event} e custom event\r\n */\r\n roveOnModals(e) {\r\n let checkpoints = this.state.checkpoints;\r\n let lastCheckpoint = checkpoints[(checkpoints.length > 0 ? checkpoints.length - 1 : checkpoints[0])];\r\n if(lastCheckpoint && lastCheckpoint.id) {\r\n if(lastCheckpoint.id.startsWith(\"method-\")) checkpoints.push({id: 'add-new-pm'});\r\n }\r\n\r\n if(e.detail.modalShown &&\r\n e.detail.checkpoint.tagName !== \"BODY\" &&\r\n lastCheckpoint !== e.detail.checkpoint) checkpoints.push(e.detail.checkpoint);\r\n\r\n //todo In the future with other languages this would need\r\n //to be updated to work accordingly.\r\n if (!e.detail.modalShown &&\r\n e.detail.context) {\r\n if (e.detail.context === '×Your settings have been saved.OK' ||\r\n e.detail.context === 'hideAccountInfo') {\r\n for (var i = checkpoints.length -1; i >= 0; i--){\r\n if (checkpoints[i].id === 'dummy-right-col-container') checkpoints.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n if(this._isMounted) {\r\n this.setState({\r\n isEnabled: false,\r\n focusOn: 'checkpoints',\r\n checkpoints: checkpoints,\r\n restore: !e.detail.modalShown,\r\n callback: null\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * controls rover on nav and right-column\r\n * @param {event} e custom event\r\n */\r\n roveFocalPoint(e) {\r\n let checkpoints = [];\r\n let persistFocus = false;\r\n let callback = null;\r\n //set checkpoints for app-body\r\n if(e.detail.focalPointID === \"dummy-app-body\") {\r\n let $hamburg = document.getElementById(\"hamburg\");\r\n if($($hamburg).is(\":visible\")) checkpoints.push($hamburg);\r\n checkpoints.push(e.detail.checkpoint);\r\n persistFocus = true;\r\n }\r\n\r\n //set checkpoints for right-col\r\n if(e.detail.focalPointID === \"dummy-right-col-container\") {\r\n let $fauxNewBtn = {id: 'new-student-btn'};\r\n let $fauxNewBtnSch = {id: 'new-sch-btn'};\r\n let $desktopMenu = document.getElementById(\"desktopMenu\");\r\n let $active = $desktopMenu.getElementsByClassName(\"active\");\r\n if($active.length > 0) checkpoints.push($active[0]);\r\n\r\n if(e.detail.routeChange) {\r\n switch (e.detail.routeChange) {\r\n case 'accounts': {\r\n let $appBody = document.getElementById(\"dummy-app-body\");\r\n checkpoints.push($appBody);\r\n checkpoints.push($fauxNewBtn);\r\n let $fauxTrigger = {id: e.detail.triggerId};\r\n checkpoints.push($fauxTrigger);\r\n if (e.detail.checkpoint) checkpoints.push(e.detail.checkpoint);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n } else {\r\n checkpoints.push($fauxNewBtnSch);\r\n checkpoints.push($fauxNewBtn);\r\n checkpoints.push(e.detail.checkpoint);\r\n }\r\n }\r\n\r\n if(this._isMounted) {\r\n this.setState({\r\n isEnabled: true,\r\n focalPointId: e.detail.focalPointID,\r\n checkpoints: checkpoints,\r\n trapEnabled: false,\r\n focusOn: 'focalpoint',\r\n persistFocus: persistFocus,\r\n triggerElement: checkpoints[(checkpoints.length > 0 ? checkpoints.length - 1 : checkpoints[0])],\r\n callback: callback\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"app\">\r\n {\r\n <p className=\"sr-only\" aria-live=\"polite\">\r\n {\r\n Utils.generateSROnlyErrorMsg(this.props.validationErrors)\r\n }\r\n </p>\r\n }\r\n <FocusRover\r\n isEnabled={this.state.isEnabled}\r\n focalPointId={this.state.focalPointId}\r\n checkpoints={this.state.checkpoints}\r\n focusOn={this.state.focusOn}\r\n persistFocus={this.state.persistFocus}\r\n triggerElement={this.state.triggerElement}\r\n restore={this.state.restore}\r\n event={this.state.event}\r\n callback={this.state.callback}\r\n >\r\n <Header\r\n cartTotal={this.props.cartTotal}\r\n dispatch={this.props.dispatch}\r\n items={this.props.items}\r\n messages={this.props.messages}\r\n userID={this.props.userID}\r\n persisted={this.props.persisted}\r\n />\r\n <Sidebar\r\n dispatch={this.props.dispatch}\r\n persisted={this.props.persisted}\r\n token={this.props.token}\r\n userID={this.props.userID}\r\n rememberAlerts={this.props.rememberAlerts}\r\n />\r\n <div id=\"main\">\r\n <div id=\"dummy-app-body\" tabIndex=\"-1\" />\r\n <div id=\"app-body\">{this.props.children}</div>\r\n </div>\r\n <Modal dispatch={this.props.dispatch}/>\r\n <ReauthModal\r\n defaultPayment={this.props.defaultPayment}\r\n dispatch={this.props.dispatch}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'authError')}\r\n isAuthenticated={this.props.isAuthenticated}\r\n loading={this.props.authLoading}\r\n paymentMethod={this.props.paymentMethod}\r\n persisted={this.props.persisted}\r\n username={this.props.username}\r\n />\r\n </FocusRover>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst appWithRouter = withRouter(App);\r\n\r\nexport default connect(mapStateToProps)(appWithRouter);\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/components/App/App.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Loader from '../../../common/components/Loader/Loader.jsx';\r\nimport {\r\n ForgotPassword,\r\n SecurityAnswer\r\n} from '../../../common/components/ForgotPassword/ForgotPassword.jsx';\r\nimport ForgotUsername from '../../../common/components/ForgotUsername/ForgotUsername.jsx';\r\n\r\nimport {requestSignIn} from '../../../common/actions/AuthAction.js';\r\nimport {clearAllErrors, validationError} from '../../../common/actions/ErrorAction.js';\r\nimport {updateRemember} from '../../../common/actions/RememberAction';\r\nimport CoppaUtils from '../../../common/js/coppa.js';\r\nimport AppBanner from '../../../common/components/AppBanner/AppBanner.jsx';\r\n\r\nimport './DesktopLogin.scss';\r\n/**\r\n * Desktop login component. Will not show on mobile screens\r\n */\r\nclass DesktopLogin extends React.Component {\r\n componentDidMount() {\r\n document.querySelector('body').className = 'default-theme';\r\n }\r\n\r\n render() {\r\n let schoolYear = Utils.getSchoolYear();\r\n\r\n return (\r\n <div className={Utils.isApp() ? \"ghost desktop container\" : \"hidden-md-down desktop container\"}>\r\n { schoolYear.showAds ?\r\n <AppBanner/> :\r\n null\r\n }\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <Login\r\n forgot={this.props.forgot}\r\n dispatch={this.props.dispatch}\r\n emailSent={this.props.emailSent}\r\n emailContext={this.props.emailContext}\r\n loading={this.props.loading}\r\n persistedUsername={this.props.persistedUsername}\r\n securityQuestionID={this.props.securityQuestionID}\r\n userLoading={this.props.userLoading}\r\n username={this.props.username}\r\n validationErrors={this.props.validationErrors}\r\n userCoppa={this.props.userCoppa}\r\n coppaLoading={this.props.coppaLoading}\r\n />\r\n <Content userCoppa={this.props.userCoppa} />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nDesktopLogin.propTypes = {\r\n forgot: PropTypes.bool,\r\n dispatch: PropTypes.func.isRequired,\r\n emailSent: PropTypes.bool,\r\n emailContext: PropTypes.string.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n persistedUsername: PropTypes.string,\r\n securityQuestionID: PropTypes.number,\r\n userLoading: PropTypes.bool.isRequired,\r\n username: PropTypes.string,\r\n validationErrors: PropTypes.array.isRequired,\r\n userCoppa: PropTypes.object.isRequired,\r\n coppaLoading: PropTypes.bool.isRequired\r\n};\r\n\r\n/**\r\n * Left-side content used by desktop component. Contains logo.\r\n */\r\nclass Content extends React.Component {\r\n requestRegister(e) {\r\n e.preventDefault();\r\n if (CoppaUtils.coppafyNewUser(this.props.userCoppa)) {\r\n Utils.updateModal('coppa', {\r\n configData: \"\"\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"content-box\" className=\"col-md-7 hidden-sm-down\">\r\n <img id=\"mt-logo\" src=\"img/MyMealTime_Logo_900x320.svg\" alt=\"MyMealTime\" width=\"100%\" />\r\n <div className=\"site-mission\">Make school lunch deposits, pay fees, and manage cafeteria accounts from anywhere on any device.</div>\r\n <a className=\"register-dup\" tabIndex=\"0\"\r\n onClick={this.requestRegister.bind(this)}\r\n onKeyDown={Utils.accessibleEnterKey}\r\n >\r\n Register now for your FREE account.\r\n </a>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nContent.propTypes = {\r\n userCoppa: PropTypes.object.isRequired\r\n};\r\n\r\n/**\r\n * Right-side login component used by desktop component.\r\n */\r\nclass Login extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this._isMounted = false;\r\n\r\n this.state = {\r\n cardContent: props.forgot ? 'forgot-pass' : 'login'\r\n };\r\n }\r\n componentDidMount() {\r\n this._isMounted = true;\r\n document.addEventListener('change-login', this.changeCardContent.bind(this));\r\n }\r\n\r\n componentWillUnmount() {\r\n this._isMounted = false;\r\n document.removeEventListener('change-login', this.changeCardContent);\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const propChanged = (this.props.securityQuestionID !== prevProps.securityQuestionID);\r\n // Prevents the dialog from showing if the user refreshes page\r\n const fromLogin = prevState.cardContent === 'login';\r\n if (!_.isUndefined(this.props.securityQuestionID) && propChanged && !fromLogin) {\r\n document.dispatchEvent(new CustomEvent('change-login', {detail: 'answer'}));\r\n }\r\n }\r\n\r\n changeCardContent(e) {\r\n if (this._isMounted) {\r\n const type = e.detail;\r\n this.setState({\r\n cardContent: type\r\n });\r\n }\r\n }\r\n\r\n openMTAO(e) {\r\n e.preventDefault();\r\n Utils.openLink(MTAO_URL, '_blank');\r\n }\r\n\r\n render() {\r\n const schoolYear = Utils.getSchoolYear();\r\n let content;\r\n switch (this.state.cardContent) {\r\n case 'forgot-pass':\r\n content = <ForgotPassword\r\n desktop={true}\r\n dispatch={this.props.dispatch}\r\n emailContext={this.props.emailContext}\r\n loading={this.props.userLoading}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'username')}\r\n />;\r\n break;\r\n case 'forgot-user':\r\n content = <ForgotUsername\r\n desktop={true}\r\n dispatch={this.props.dispatch}\r\n emailSent={this.props.emailSent}\r\n emailContext={this.props.emailContext}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'email', 'username')}\r\n loading={this.props.userLoading}\r\n />;\r\n break;\r\n case 'answer':\r\n content = <SecurityAnswer\r\n desktop={true}\r\n dispatch={this.props.dispatch}\r\n emailSent={this.props.emailSent}\r\n emailContext={this.props.emailContext}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'securityA')}\r\n loading={this.props.userLoading}\r\n securityQuestionID={this.props.securityQuestionID}\r\n username={this.props.username}\r\n />;\r\n break;\r\n case 'login':\r\n default:\r\n content = <LoginHandler\r\n dispatch={this.props.dispatch}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'authError', 'username')}\r\n loading={this.props.loading}\r\n persistedUsername={this.props.persistedUsername}\r\n userCoppa={this.props.userCoppa}\r\n coppaLoading={this.props.coppaLoading}\r\n />;\r\n }\r\n\r\n return (\r\n <div id=\"form-box\" className=\"col-12 col-md-5\">\r\n <div className=\"card\">\r\n {content}\r\n </div>\r\n\r\n <button className=\"apply-online\" onClick={this.openMTAO.bind(this)}>\r\n <span className=\"apply-img\">\r\n <img src=\"img/MTAO_WHITE.svg\" alt=\"MealTime Apply Online. Application for free and Reduced Meals.\"></img>\r\n </span>\r\n <div className=\"apply-text\">\r\n {\"Click to apply for free meals for the \" + schoolYear.schoolStartYear + \"-\" + schoolYear.schoolEndYear + \" school year!\"}\r\n <small>\r\n <i> (participating schools only) </i>\r\n </small>\r\n </div>\r\n </button>\r\n\r\n <div className=\"app-store\">\r\n <a href=\"https://play.google.com/store/apps/details?id=com.mealtime.mto.parent\" target=\"_blank\" rel=\"noreferrer\">\r\n <img src=\"img/Get_it_on_Google_play.svg\" alt=\"Get it on Google Play\"></img></a>\r\n <a href=\"https://itunes.apple.com/us/app/my-mealtime/id1236912569?ls=1&mt=8\" target=\"_blank\" rel=\"noreferrer\">\r\n <img src=\"img/Download_on_the_app_store.svg\" alt=\"Download on the App Store\"></img></a>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nLogin.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n emailSent: PropTypes.bool,\r\n emailContext: PropTypes.string.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n persistedUsername: PropTypes.string,\r\n securityQuestionID: PropTypes.number,\r\n userLoading: PropTypes.bool.isRequired,\r\n username: PropTypes.string,\r\n validationErrors: PropTypes.array.isRequired,\r\n userCoppa: PropTypes.object.isRequired,\r\n coppaLoading: PropTypes.bool.isRequired,\r\n forgot: PropTypes.bool\r\n};\r\n\r\nclass LoginHandler extends React.Component {\r\n showForgotPassword(e) {\r\n this.props.dispatch(clearAllErrors());\r\n document.dispatchEvent(new CustomEvent('change-login',\r\n {detail: 'forgot-pass'}));\r\n }\r\n\r\n showForgotUsername(e) {\r\n this.props.dispatch(clearAllErrors());\r\n document.dispatchEvent(new CustomEvent('change-login',\r\n {detail: 'forgot-user'}));\r\n }\r\n\r\n togglePass(e) {\r\n let group = e.currentTarget.parentElement;\r\n let input = group.querySelector('input');\r\n\r\n if (input.type === 'password') {\r\n input.type = 'text';\r\n } else if (input.type === 'text') {\r\n input.type = 'password';\r\n }\r\n }\r\n\r\n requestLogin(e) {\r\n e.preventDefault();\r\n if (this.props.loading) return false;\r\n this.props.dispatch(clearAllErrors());\r\n const elements = e.currentTarget.elements;\r\n const username = elements.loginUsername.value;\r\n const password = elements.loginPassword.value;\r\n const remember = elements.loginRemember.checked;\r\n const birthdate = '';\r\n\r\n if (remember) {\r\n this.props.dispatch(updateRemember(username));\r\n } else {\r\n this.props.dispatch(updateRemember(null));\r\n }\r\n\r\n if (username === '' || password === '') {\r\n let errors = [];\r\n if (username === '') {\r\n errors.push({\r\n errorCode: 'UsernameRequired',\r\n errorMessage: 'Username is required.'\r\n });\r\n }\r\n if (password === '') {\r\n errors.push({\r\n errorCode: 'CredentialsPasswordRequired',\r\n errorMessage: 'Password is required.'\r\n });\r\n }\r\n if (!_.isEmpty(errors)) this.props.dispatch(validationError(errors));\r\n } else {\r\n this.props.dispatch(requestSignIn(username, password, birthdate, remember));\r\n }\r\n\r\n return false;\r\n }\r\n\r\n requestRegister(e) {\r\n e.preventDefault();\r\n\r\n this.props.dispatch(clearAllErrors());\r\n\r\n if (CoppaUtils.coppafyNewUser(this.props.userCoppa)) {\r\n Utils.updateModal('coppa', {\r\n configData: \"\"\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"login-handler\">\r\n <div className=\"card-header\">\r\n <h4>Sign In/Register for My MealTime</h4>\r\n </div>\r\n <div className=\"card-block\">\r\n <form onSubmit={this.requestLogin.bind(this)}>\r\n <div className={\"form-group\" + (_.isUndefined(this.props.error.username) ? '' : ' has-danger')}>\r\n <label htmlFor=\"loginUsername\">Username</label>\r\n <input\r\n key={this.props.persistedUsername}\r\n type=\"text\"\r\n id=\"loginUsername\"\r\n className=\"form-control\"\r\n defaultValue={this.props.persistedUsername}\r\n autoFocus\r\n aria-invalid={!_.isEmpty(this.props.error.username)}\r\n aria-required=\"true\"\r\n />\r\n {\r\n _.isEmpty(this.props.error.username) ?\r\n null :\r\n <div className=\"form-control-feedback small\">\r\n {this.props.error.username}\r\n </div>\r\n }\r\n </div>\r\n\r\n <div className={\"form-group\" + (_.isUndefined(this.props.error.authError) ? '' : ' has-danger')}>\r\n <label htmlFor=\"loginPassword\">Password</label>\r\n <div className=\"input-group\">\r\n <input\r\n type=\"password\"\r\n id=\"loginPassword\"\r\n className=\"form-control pass-inp\"\r\n aria-invalid={!_.isEmpty(this.props.error.authError)}\r\n aria-required=\"true\"\r\n />\r\n <button\r\n type=\"button\"\r\n className=\"input-group-addon see-pass\"\r\n title=\"View password\"\r\n onClick={this.togglePass.bind(this)}\r\n >\r\n <i className=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n {\r\n _.isEmpty(this.props.error.authError) ?\r\n null :\r\n <div className=\"form-control-feedback small\">\r\n {this.props.error.authError}\r\n </div>\r\n }\r\n </div>\r\n\r\n <div className=\"form-check\">\r\n <label className=\"form-check-label\" htmlFor=\"loginRemember\">\r\n <input\r\n key={this.props.persistedUsername}\r\n id=\"loginRemember\"\r\n className=\"form-check-input remember\"\r\n type=\"checkbox\"\r\n ref={node => this.remember = node}\r\n defaultChecked={_.isString(this.props.persistedUsername)}\r\n />\r\n Remember me\r\n </label>\r\n </div>\r\n <button\r\n id=\"signInButton\"\r\n type=\"submit\"\r\n className=\"btn btn-primary si\">\r\n {this.props.loading ? <Loader/> : \"Sign In\"}\r\n </button>\r\n <button\r\n className=\"btn btn-secondary\"\r\n id=\"registerButton\"\r\n onMouseDown={this.requestRegister.bind(this)}\r\n onClick={this.requestRegister.bind(this)}\r\n >\r\n Register\r\n </button>\r\n <div className=\"fp\">\r\n <button\r\n className=\"btn btn-link\"\r\n onClick={this.showForgotPassword.bind(this)}\r\n >\r\n Forgot your username or password?\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nLoginHandler.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n error: PropTypes.object,\r\n loading: PropTypes.bool.isRequired,\r\n persistedUsername: PropTypes.string,\r\n userCoppa: PropTypes.object.isRequired,\r\n coppaLoading: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default DesktopLogin;\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/components/DesktopLogin/DesktopLogin.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {addRememberAlert} from '../../../common/actions/RememberAction.js';\r\n\r\nimport './MenuAlert.scss';\r\n\r\nclass MenuAlert extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.schoolYear = Utils.getSchoolYear();\r\n }\r\n\r\n dismissAlert() {\r\n this.props.dispatch(addRememberAlert(\r\n {\r\n alert: \"menuAlert\",\r\n userID: this.props.userID,\r\n schoolYear: `${this.schoolYear.schoolStartYear}-${this.schoolYear.schoolEndYear}`\r\n }));\r\n }\r\n\r\n checkDismissed() {\r\n let target =\r\n {\r\n alert: \"menuAlert\",\r\n userID: this.props.userID,\r\n schoolYear: `${this.schoolYear.schoolStartYear}-${this.schoolYear.schoolEndYear}`\r\n };\r\n let alert = _.findWhere(this.props.rememberAlerts, target);\r\n\r\n if(_.isUndefined(alert)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n openLink(e) {\r\n e.preventDefault();\r\n Utils.openLink(MTAO_URL, '_system');\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"menuAlert\">\r\n {\r\n (!this.checkDismissed() && this.schoolYear.showAds && !_.isUndefined(this.props.userID)) ?\r\n <div className=\"side-nav-alert\">\r\n <button\r\n type=\"button\"\r\n className=\"close\"\r\n aria-label=\"Close notification\"\r\n onClick={this.dismissAlert.bind(this)}\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <img id=\"mtaoLogo\" src=\"img/MTAO_GRAY.svg\" alt=\"MealTime Apply Online\" />\r\n <div className=\"menu-alert-body\">\r\n {\r\n `If you're looking for your ${this.schoolYear.schoolStartYear}-${this.schoolYear.schoolEndYear}\r\n school year application for free school\r\n meals, look no further. You can even\r\n use your existing My MealTime\r\n username and password to log in.`\r\n }\r\n </div>\r\n <div className=\"text-center\">\r\n <button\r\n className=\"btn btn-secondary menu-alert-button\"\r\n onClick={this.openLink.bind(this)}>\r\n Let's go!\r\n </button>\r\n </div>\r\n </div> :\r\n null\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nMenuAlert.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n userID: PropTypes.number,\r\n rememberAlerts: PropTypes.array.isRequired\r\n};\r\n\r\nexport default MenuAlert;\n\n\n// WEBPACK FOOTER //\n// app/parent/components/MenuAlert/MenuAlert.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass ScheduleSentence extends React.Component {\r\n render() {\r\n let nextDate = Utils.dateFormat(Utils.convertFromDatetime(this.props.sub.nextScheduledDate));\r\n\r\n return (\r\n <div className=\"sch-read sch-text\">\r\n {\"This scheduled deposit will be made \"}\r\n <strong>\r\n {this.props.sub.generateSentence()}\r\n </strong>\r\n {this.props.sub.paused && this.props.sub.pauseEndDate === null ?\r\n \" and is currently \" : \", beginning \"}\r\n {this.props.sub.paused && this.props.sub.pauseEndDate === null ?\r\n <strong>paused</strong> : <strong>{nextDate}</strong>}\r\n {\". A total of \"}\r\n <strong>\r\n ${this.props.sub.getTotal().toFixed(2)}\r\n </strong>\r\n {\" will be processed using your \"}\r\n <strong>\r\n card ending in {this.props.sub.getLast4()}\r\n </strong>\r\n {\" each time. \"}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nScheduleSentence.propTypes = {\r\n sub: PropTypes.object\r\n};\r\n\r\nexport default ScheduleSentence;\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Subscriptions/ScheduleSentence.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ToolTip from '../../../common/components/ToolTip/ToolTip.jsx';\n\nimport './Subscriptions.scss';\n\nclass SubscriptionAccountItem extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n inputValue: undefined\n };\n }\n\n handleBlur(e) {\n let checkingAccountIDs = _.pluck(this.props.patron.patrons, 'posCheckingAccountID');\n checkingAccountIDs = _.without(checkingAccountIDs, null);\n\n let depObj = {\n id: this.props.patron.defaultPatronID,\n patronID: this.props.patron.defaultPatronID,\n depositAmount: Number(this.input.value),\n checkingAccountID: checkingAccountIDs[0],\n patron: {\n patronID: this.props.patron.defaultPatronID,\n checkingAccountID: checkingAccountIDs[0]\n },\n patronNames: Utils.namesOnAccount(this.props.patron.patrons),\n subAccountID: null,\n priceEach: null,\n quantity: null\n };\n\n this.props.loadedSub.addDeposit(depObj, this.props.dispatch);\n }\n\n render() {\n let defaultVal = this.props.depositAmount;\n\n return (\n <div data-acct={this.props.id} className={\"form-check acct-check\" + (this.props.notExists ? \" sd-has-error\" : \"\")}>\n <label htmlFor={Utils.setElementId(\"SDAcctItem\" + this.props.id)} className={\"form-check-label\" + ((this.props.accountStatus.reason === \"inActiveMPowerStudent\" || this.props.accountStatus.reason === \"InactiveClassicStudent\") ? \" font-italic text-muted\" : \"\")}>\n {this.props.label}\n {\n (this.props.accountStatus.reason === \"inActiveMPowerStudent\" || this.props.accountStatus.reason === \"InactiveClassicStudent\") ?\n \" (Inactive)\" :\n null\n }\n {\n this.props.accountStatus.canDeposit ?\n null :\n <ToolTip\n toolTipClassName={this.props.notExists ? \"fa fa-exclamation-triangle warn pull-right icon-right\" : \"fa fa-question-circle-o pull-right icon-right\"}\n title={this.props.accountStatus.msg}\n direction={Utils.isSmallFormFactor() ? \"bottom\" : \"left\"}\n />\n }\n {\n (this.props.accountStatus.canDeposit && this.props.accountStatus.reason === \"inActiveMPowerStudent\") ?\n <ToolTip\n toolTipClassName={\"fa fa-question-circle-o pull-right icon-right\"}\n title={\"Scheduled deposits that include students with an enrollment status of 'inactive' will not be processed. Please contact the school with any questions regarding your student's enrollment status.\"}\n direction={Utils.isSmallFormFactor() ? \"bottom\" : \"left\"}\n /> :\n null\n }\n </label>\n <div className={\"input-group input-group-sm student-deposit\" + (this.props.notExists ? \" sd-has-error\" : \"\")}>\n <span className={\"input-group-addon\" + (this.props.notExists ? \" sd-has-error\" : \"\")}>$</span>\n <input\n id={Utils.setElementId(\"SDAcctItem\" + this.props.id)}\n data-patronaccountnumber={this.props.id}\n key={Math.random()}\n type=\"text\"\n className={\"form-control dollar-input\" + (this.props.notExists ? \" sd-has-error\" : \"\")}\n onInput={e => Utils.moneyOnly(e)}\n disabled={!this.props.accountStatus.canDeposit}\n defaultValue={defaultVal}\n //onBlur={this.handleBlur.bind(this)}\n ref={node => this.input = node}\n aria-invalid={Utils.isInValidAmount(defaultVal)}\n />\n </div>\n </div>\n );\n }\n}\n\nSubscriptionAccountItem.propTypes = {\n id: PropTypes.number.isRequired,\n label: PropTypes.string.isRequired,\n accountStatus: PropTypes.object.isRequired,\n depositAmount: PropTypes.string.isRequired,\n notExists: PropTypes.bool.isRequired,\n loadedSub: PropTypes.object.isRequired,\n patron: PropTypes.object,\n dispatch: PropTypes.func\n};\n\nexport default SubscriptionAccountItem;\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Subscriptions/SubscriptionAccountItem.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SubscriptionAccountItem from './SubscriptionAccountItem';\r\n\r\nclass SubscriptionAccounts extends React.Component {\r\n render() {\r\n let missingAccounts = [];\r\n let subscription = _.findIndex(this.props.subscriptions, {scheduledDepositID: this.props.sub.id});\r\n if (subscription !== -1) {\r\n for (let detail of this.props.subscriptions[subscription].details) {\r\n let detailIndex = _.findIndex(this.props.sub.deposits, {scheduledDepositDetailID: detail.scheduledDepositDetailID});\r\n if (detailIndex === -1) {\r\n //Check if the patron is no longer on the account\r\n if (_.isNull(detail.patron.patronAccountNum)) {\r\n if (_.isUndefined(_.findWhere(this.props.patrons, {defaultPatronID: detail.patron.patronID}))) {\r\n missingAccounts.push(detail);\r\n }\r\n } else if (_.isUndefined(Utils.getPatronsByID(this.props.patrons, detail.patron.patronAccountNum))) {\r\n missingAccounts.push(detail);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <div className=\"select-acct\">\r\n <div className=\"sch-text\">\r\n Enter the desired amount for each Cafeteria Account you wish to fund automatically. You may schedule multiple deposits if desired.\r\n </div>\r\n <div className=\"deposit-option\">\r\n {\r\n _.isEmpty(missingAccounts) ?\r\n null :\r\n _.map(missingAccounts, dep => {\r\n let canDepositResult = Utils.canDeposit(dep.patron);\r\n return <SubscriptionAccountItem\r\n key={dep.patron.patronID}\r\n id={Math.random()}\r\n label={dep.patronNames}\r\n notExists={true}\r\n accountStatus={canDepositResult}\r\n depositAmount={dep.depositAmount.toFixed(2).toString()}\r\n loadedSub={this.props.sub}\r\n />;\r\n })\r\n }\r\n {\r\n _.map(this.props.patrons, pat => {\r\n let students = _.pluck(pat.patrons, 'fullName');\r\n let canDepositResult = Utils.canDeposit(pat);\r\n let depAmount = '';\r\n\r\n if(!_.isEmpty(this.props.sub.deposits)) {\r\n let exists = _.find(this.props.sub.deposits, deposit => {\r\n return (deposit.patron.patronID === pat.defaultPatronID);\r\n });\r\n if (_.isObject(exists)) depAmount = exists.depositAmount.toFixed(2).toString();\r\n }\r\n\r\n return <SubscriptionAccountItem\r\n key={pat.defaultPatronID}\r\n id={pat.patronAccountNum}\r\n label={Utils.nameFormat(students, true)}\r\n notExists={false}\r\n accountStatus={canDepositResult}\r\n depositAmount={depAmount}\r\n patron={pat}\r\n loadedSub={this.props.sub}\r\n dispatch={this.props.dispatch}\r\n />;\r\n })\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSubscriptionAccounts.propTypes = {\r\n sub: PropTypes.object.isRequired,\r\n patrons: PropTypes.array.isRequired,\r\n subscriptions: PropTypes.array.isRequired,\r\n dispatch: PropTypes.func.isRequired\r\n};\r\n\r\nexport default SubscriptionAccounts;\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Subscriptions/SubscriptionAccounts.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Receipt from '../../../common/components/Receipt/Receipt.jsx';\nimport ToolTip from '../../../common/components/ToolTip/ToolTip.jsx';\nimport {clearValidationErrors} from '../../../common/actions/ErrorAction.js';\n\nimport {\n validateScheduledDeposit,\n runScheduledDeposit,\n loadSubscriptionForm,\n //updateSubscriptionPaused,\n getResumeDate\n} from '../../../common/actions/SubAction.js';\n\nimport Sub from '../../../common/js/Sub.js';\nimport {env} from '../../../version.json';\n\nclass SubscriptionCard extends React.Component {\n\n getSubPatrons(defaultPatronID) {\n return _.findWhere(this.props.patrons, {defaultPatronID});\n }\n\n validateSub(e) {\n this.props.dispatch(validateScheduledDeposit(this.props.sub.scheduledDepositID));\n }\n\n runSub(e) {\n this.props.dispatch(runScheduledDeposit(this.props.sub.scheduledDepositID));\n }\n\n loadSubForm(e) {\n this.props.dispatch(clearValidationErrors());\n let trimmedSub = Utils.trimSubscription(this.subscriptionData, this.props.patrons);\n this.props.dispatch(loadSubscriptionForm(new Sub(trimmedSub)));\n\n if(Utils.isMobile()) {\n Utils.updateModal('subscription-form', {\n dispatch: this.props.dispatch\n });\n } else {\n let checkpoint = e.target;\n window.scrollTo(0, 0);\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\n focalPointID: 'dummy-right-col-container',\n checkpoint: checkpoint\n }}));\n }\n }\n\n parseSubscription() {\n this.subscriptionData = this.props.sub;\n this.subscriptionObj = new Sub(this.props.sub);\n this.subscriptionIssues = [];\n this.subscriptionErrors = [];\n this.missingPatrons = [];\n this.blockedPatrons = [];\n this.lastDate = undefined;\n this.nextDate = undefined;\n this.isPaused = false;\n this.acctSubs = {\n details: []\n };\n\n for (let dep of this.props.sub.details) {\n let subPatron = this.getSubPatrons(dep.patron.patronID);\n\n if(_.isUndefined(subPatron)) {\n this.missingPatrons.push(dep.patronNames);\n } else {\n let canDepositResult = Utils.canDeposit(subPatron);\n if(!canDepositResult.canDeposit) {\n this.blockedPatrons.push(dep.patronNames);\n }\n }\n\n let depositItems = {\n type: 'deposit',\n depositAmount: dep.depositAmount,\n depositDetailID: dep.scheduledDepositDetailID,\n patronNames: dep.patronNames || Utils.namesOnAccount(this.getSubPatrons(dep.patron.patronID).patrons)\n };\n\n this.acctSubs.details.push(depositItems);\n this.acctSubs.totalUserFeeAmount = this.props.sub.totalUserFeeAmount;\n this.acctSubs.minDepositAmount = 0; \n this.acctSubs.totalAmount = _.reduce(this.acctSubs.details, (memo, deposit) => {\n return memo + deposit.depositAmount;\n }, 0) + this.acctSubs.totalUserFeeAmount;\n }\n\n if (this.props.sub.last) {\n let d = new Date(Number(this.props.sub.last));\n this.lastDate = Utils.dateFormat(d);\n }\n\n if (new Date(this.props.sub.nextScheduledDate) !== \"Invalid Date\") {\n this.nextDate = Utils.dateFormat(Utils.convertFromDatetime(this.props.sub.nextScheduledDate));\n }\n\n if(_.isUndefined(this.props.paymentMethod)) {\n this.subscriptionIssues.push({paymentMethod: \"The payment method for this scheduled deposit is no longer valid.\"});\n } else {\n this.acctSubs.cardTypeName = this.props.paymentMethod.brand;\n this.acctSubs.cardLast4 = this.props.paymentMethod.last4;\n }\n\n if(!_.isEmpty(this.missingPatrons)) {\n this.subscriptionIssues.push({missingPatrons: this.missingPatrons});\n }\n\n if(!_.isEmpty(this.blockedPatrons)) {\n this.subscriptionIssues.push({blockedPatrons: this.blockedPatrons});\n }\n\n this.props.sub.errors.forEach(subError => {\n if (subError.error.errorType === 'StripePaymentCardError') {\n this.subscriptionErrors.push(subError);\n }\n });\n }\n\n pauseSch(e) {\n e.currentTarget.focus();\n Utils.updateModal('pause-sch', {\n subId: this.props.sub.scheduledDepositID,\n dispatch: this.props.dispatch\n });\n }\n\n resumeSch(e) {\n e.currentTarget.focus();\n let sub = {\n scheduledDepositId: this.props.sub.scheduledDepositID,\n scheduleTypeId: this.props.sub.scheduleTypeID,\n intervalId: this.props.sub.scheduledTaskIntervalID,\n dayOfWeek: this.props.sub.dayOfWeek,\n dispatch: this.props.dispatch\n };\n this.props.dispatch(getResumeDate(sub));\n }\n\n render() {\n this.parseSubscription();\n let noIssue = _.isEmpty(this.subscriptionIssues) && _.isEmpty(this.subscriptionErrors);\n let cardTitle = noIssue ? this.subscriptionObj.generateSentence(true) : \"Disabled\";\n let isPaused = this.props.sub.paused;\n return (\n <div>\n <div className=\"card-header\">\n <h4 className=\"sr-only\">\n {(isPaused ? \"Paused \" : \"\") + \"Scheduled deposit for $\" + this.acctSubs.totalAmount + (!noIssue ? \" with issues\" : \"\")}\n </h4>\n <button className=\"btn btn-primary btn-sm pull-right\" onClick={this.loadSubForm.bind(this)}>Edit</button>\n <div className=\"card-title\">\n <h4 role=\"none\">Scheduled Deposit: <strong>{cardTitle}</strong>\n {\n (isPaused && noIssue ? \" (Paused)\" : \"\")\n }\n </h4>\n {\n noIssue ?\n null :\n <ToolTip\n toolTipClassName={\"fa fa-exclamation-triangle warn in-title\"}\n title={\"\"}\n direction=\"bottom\"\n />\n }\n </div>\n </div>\n <hr className=\"header-hr\"/>\n {\n noIssue ?\n null :\n <small className=\"error-text\">IMPORTANT: Something has changed that needs your attention!</small>\n }\n {\n _.isEmpty(this.missingPatrons) ?\n null :\n <small className=\"error-text\">\n {Utils.multiNameString(this.missingPatrons)} {\n /,/.test(Utils.multiNameString(this.missingPatrons)) ?\n 'are' :\n 'is'\n } no longer associated with your MyMealTime.com account.\n </small>\n }\n {\n _.isEmpty(this.blockedPatrons) ?\n null :\n <small className=\"error-text\">\n {Utils.multiNameString(this.blockedPatrons)} {\n /,/.test(Utils.multiNameString(this.blockedPatrons)) ?\n '' :\n ''\n } cannot make online deposits at this time.\n </small>\n }\n {\n _.isUndefined(this.props.paymentMethod) ?\n <small className=\"error-text\">The payment method for this scheduled deposit is no longer valid.</small> :\n null\n }\n {\n _.isEmpty(this.subscriptionErrors) ?\n null :\n _.map(this.subscriptionErrors, (subError, index) => {\n return <small className=\"error-text\" key={this.props.sub.scheduledDepositId + subError.errorType + index}>{subError.error.errorMessage}</small>;\n })\n }\n <Receipt transaction={this.acctSubs} />\n {this.lastDate ? <small>Last Run: {this.lastDate}</small> : null}\n {\n //noIssue ? <small>Next scheduled deposit: {this.nextDate}</small> : null\n }\n {\n noIssue && isPaused && _.isNull(this.props.sub.nextScheduledDate) ?\n <small>Next scheduled deposit: {\"Unscheduled\"}</small> :\n noIssue ? <small>Next scheduled deposit: {this.nextDate}</small> :\n null\n }\n {\n noIssue ?\n isPaused ?\n <small>\n <button id={Utils.setElementId(\"pause-sch-\" + this.props.sub.scheduledDepositID)} className=\"btn-link sch-play-pause\" onClick={this.resumeSch.bind(this)}>\n <i className=\"fa fa-play-circle-o fa-1x-pause\"></i>\n <label htmlFor={Utils.setElementId(\"pause-sch-\" + this.props.sub.scheduledDepositID)} className=\"faux-link\">Resume scheduled deposit</label>\n </button>\n </small> :\n <small>\n <button id={Utils.setElementId(\"pause-sch-\" + this.props.sub.scheduledDepositID)} className=\"btn-link sch-play-pause\" onClick={this.pauseSch.bind(this)}>\n <i className=\"fa fa-pause-circle-o fa-1x-pause\"></i>\n <label htmlFor={Utils.setElementId(\"pause-sch-\" + this.props.sub.scheduledDepositID)} className=\"btn-link\">Pause scheduled deposit</label>\n </button>\n </small> :\n null\n }\n {\n //push notification testing\n env === 'dev' ?\n <div>\n <span><button type=\"button\" className=\"btn btn-info btn-sm m-1\" onClick={this.runSub.bind(this)}>Run Sub</button></span>\n <span><button type=\"button\" className=\"btn btn-info btn-sm m-1\" onClick={this.validateSub.bind(this)}>Validate Sub</button></span>\n </div> :\n null\n }\n </div>\n );\n }\n}\n\nSubscriptionCard.propTypes = {\n dispatch: PropTypes.func.isRequired,\n loading: PropTypes.bool.isRequired,\n patrons: PropTypes.array.isRequired,\n paymentMethod: PropTypes.object,\n sub: PropTypes.object.isRequired\n};\n\nexport default SubscriptionCard;\n\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Subscriptions/SubscriptionCard.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport Receipt from '../../../common/components/Receipt/Receipt.jsx';\r\nimport Loader from '../../../common/components/Loader/Loader.jsx';\r\nimport ScheduleSentence from './ScheduleSentence.jsx';\r\n\r\nimport {\r\n updateSubscription,\r\n addNewSubscription\r\n} from '../../../common/actions/SubAction.js';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n loading: store.sub.loading\r\n };\r\n};\r\n\r\nclass SubscriptionConfirmation extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n sub: PropTypes.object.isRequired,\r\n loading: PropTypes.bool.isRequired\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.saveSubscritionMethod = _.throttle(this.saveSubscrition, 30000, {trailing: false});\r\n }\r\n\r\n saveSubscrition(e) {\r\n this.clicked = true;\r\n if (_.isUndefined(this.props.sub.id)) {\r\n // Create new sub\r\n this.props.dispatch(addNewSubscription(this.props.sub));\r\n } else {\r\n // Update existing sub\r\n this.props.dispatch(updateSubscription(this.props.sub));\r\n }\r\n }\r\n\r\n cancel(e) {\r\n if(Utils.isMobile()) {\r\n Utils.updateModal('subscription-form', {\r\n dispatch: this.props.dispatch\r\n });\r\n } else {\r\n $('.gen-modal').modal('hide');\r\n }\r\n }\r\n\r\n parseSubscription() {\r\n this.acctSubs = {\r\n details: []\r\n };\r\n\r\n for (let dep of this.props.sub.deposits) {\r\n let depositItems = {\r\n type: 'deposit',\r\n depositAmount: dep.depositAmount,\r\n depositDetailID: dep.scheduledDepositDetailID,\r\n patronNames: dep.patronNames\r\n };\r\n\r\n this.acctSubs.details.push(depositItems);\r\n this.acctSubs.totalUserFeeAmount = this.props.sub.fee;\r\n this.acctSubs.totalAmount = _.reduce(this.acctSubs.details, (memo, deposit) => {\r\n return memo + deposit.depositAmount;\r\n }, 0) + this.acctSubs.totalUserFeeAmount;\r\n this.acctSubs.cardTypeName = this.props.sub.payment.brand;\r\n this.acctSubs.cardLast4 = this.props.sub.payment.last4;\r\n }\r\n }\r\n\r\n render() {\r\n this.parseSubscription();\r\n return (\r\n <div>\r\n <div className=\"card-header\">\r\n <div className=\"card-title\">\r\n <h4>Scheduled Deposit: <strong>this.props.sub.generateSentence(true)</strong></h4>\r\n </div>\r\n </div>\r\n <hr className=\"header-hr\"/>\r\n <Receipt transaction={this.acctSubs} />\r\n <div className=\"m-t-4\"/>\r\n <ScheduleSentence sub={this.props.sub} />\r\n <div className=\"sch-btns pull-right\">\r\n <button\r\n id={Utils.setElementId(\"sch-confirm-btn-cancel\")}\r\n className=\"btn btn-grey expand-btn\"\r\n onClick={this.cancel.bind(this)}\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n id={Utils.setElementId(\"sch-confirm-btn-save\")}\r\n className=\"btn btn-success expand-btn\"\r\n onClick={this.saveSubscritionMethod.bind(this)}\r\n disabled={this.clicked || this.props.loading}\r\n >\r\n {\r\n this.props.loading ?\r\n <Loader /> :\r\n 'Save'\r\n }\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(SubscriptionConfirmation);\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Subscriptions/SubscriptionConfirmation.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './Subscriptions.scss';\r\n\r\nclass SubscriptionScheduler extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const payment = {\r\n id: 1234\r\n };\r\n this.state = {\r\n paymentID: payment.id\r\n };\r\n }\r\n\r\n /**\r\n * Correctly enables/disables the schedule options\r\n * @param {Event} e Click event\r\n */\r\n radioEnable(e) {\r\n //disable all selections\r\n let $main = $(e.currentTarget).parents('.sub-schedule');\r\n $main.find('.sub-toggle').prop('disabled', true).addClass('disabled');\r\n\r\n //enable current selection\r\n let $target = $(e.currentTarget).parents('.sch-opt');\r\n $target.find('.sub-toggle').prop('disabled', false).removeClass('disabled').addClass('inp-active');\r\n\r\n let type = e.currentTarget.dataset.type;\r\n if (type === 'weekly') {\r\n let freq = Number($target.find('.freq')[0].selectedOptions[0].textContent);\r\n let weekDay = $target.find('.week-day')[0].selectedOptions[0].textContent;\r\n this.props.sub.setIntervalValue(freq);\r\n this.props.sub.setDayOfWeek(weekDay);\r\n } else if (type === 'week-monthly') {\r\n let weekNum = $target.find('.week-num')[0].selectedOptions[0].textContent;\r\n let weekDay = $target.find('.week-day')[0].selectedOptions[0].textContent;\r\n this.props.sub.setIntervalValue(weekNum);\r\n this.props.sub.setDayOfWeek(weekDay);\r\n } else if (type === 'day-monthly') {\r\n let monthDay = Number($target.find('.month-day')[0].selectedOptions[0].dataset.day);\r\n this.props.sub.setIntervalValue(monthDay);\r\n }\r\n\r\n this.props.sub.setInterval(type);\r\n let $header = $('.sd-sentence')[0];\r\n if($header.innerHTML !== 'Schedule a new deposit') {\r\n $header.innerHTML = 'Scheduled Deposit: ' + this.props.sub.generateSentence(true);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"sub-schedule\" ref={node => this.node = node}>\r\n <div className=\"sch-text\">Funds will be automatically deposited into your selected Cafeteria Account(s) based on your chosen schedule.</div>\r\n\r\n <div className=\"form-check sch-opt cw\">\r\n <label className=\"form-check-label\" htmlFor=\"weekDay\">\r\n <input\r\n key={Math.random()}\r\n id=\"weekDay\"\r\n className=\"form-check-input inp-buf\"\r\n type=\"radio\"\r\n name=\"sub-type\"\r\n data-type=\"weekly\"\r\n defaultChecked={this.props.sub.interval === 2}\r\n onChange={this.radioEnable.bind(this)}\r\n />\r\n {\"Every \"}\r\n <WeekDropdown\r\n enabled={this.props.sub.interval === 2}\r\n sub={this.props.sub}\r\n />\r\n {\" week(s) on \"}\r\n <WeekDayDropdown\r\n enabled={this.props.sub.interval === 2}\r\n sub={this.props.sub}\r\n defaultActive={true}\r\n />\r\n </label>\r\n </div>\r\n\r\n <div className=\"form-check sch-opt fd\">\r\n <label className=\"form-check-label\" htmlFor=\"weekNum\">\r\n <input\r\n key={Math.random()}\r\n id=\"weekNum\"\r\n className=\"form-check-input inp-buf\"\r\n type=\"radio\"\r\n name=\"sub-type\"\r\n data-type=\"week-monthly\"\r\n defaultChecked={this.props.sub.interval === 3}\r\n onChange={this.radioEnable.bind(this)}\r\n />\r\n {\"Every \"}\r\n <WeekNumDropdown\r\n enabled={this.props.sub.interval === 3}\r\n sub={this.props.sub}\r\n /> <WeekDayDropdown\r\n enabled={this.props.sub.interval === 3}\r\n sub={this.props.sub}\r\n />\r\n {\" of the month\"}\r\n </label>\r\n </div>\r\n\r\n <div className=\"form-check sch-opt om\">\r\n <label className=\"form-check-label\" htmlFor=\"day\">\r\n <input\r\n key={Math.random()}\r\n id=\"day\"\r\n className=\"form-check-input inp-buf\"\r\n type=\"radio\"\r\n name=\"sub-type\"\r\n data-type=\"day-monthly\"\r\n defaultChecked={this.props.sub.interval === 4}\r\n onChange={this.radioEnable.bind(this)}\r\n />\r\n {\"Every \"}\r\n <DayDropdown\r\n enabled={this.props.sub.interval === 4}\r\n sub={this.props.sub}\r\n />\r\n {\" day of the month\"}\r\n </label>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSubscriptionScheduler.propTypes = {\r\n sub: PropTypes.object,\r\n dispatch: PropTypes.func.isRequired\r\n};\r\n\r\nclass WeekDropdown extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n let state = {selected: 1};\r\n if (props.enabled && props.sub) {\r\n state = {selected: props.sub.intervalValue};\r\n }\r\n this.state = state;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.enabled && nextProps.sub) {\r\n this.setState({\r\n selected: nextProps.sub.intervalValue\r\n });\r\n } else {\r\n this.setState({\r\n selected: 1\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if(this.weekDropdown.value !== this.state.selected) this.weekDropdown.value = this.state.selected;\r\n }\r\n\r\n handleBlur(e) {\r\n this.props.sub.setIntervalValue(e.currentTarget.selectedOptions[0].textContent);\r\n this.setState({\r\n selected: e.currentTarget.selectedOptions[0].textContent\r\n });\r\n\r\n let $header = $('.sd-sentence')[0];\r\n if($header.innerHTML !== 'Schedule a new deposit') {\r\n $header.innerHTML = 'Scheduled Deposit: ' + this.props.sub.generateSentence(true);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"dropdown\" ref={node => this.node = node}>\r\n <select className={\"btn btn-secondary btn-sm dropdown-toggle sub-toggle freq\" + (this.props.enabled ? ' inp-active' : ' disabled')}\r\n ref={node => this.weekDropdown = node}\r\n defaultValue={this.state.selected}\r\n onChangeCapture={this.handleBlur.bind(this)}\r\n disabled={!this.props.enabled}>\r\n <option key={\"1\"} value={1}>1</option>\r\n <option key={\"2\"} value={2}>2</option>\r\n <option key={\"3\"} value={3}>3</option>\r\n </select>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nWeekDropdown.propTypes = {\r\n sub: PropTypes.object,\r\n enabled: PropTypes.bool.isRequired\r\n};\r\n\r\nclass WeekNumDropdown extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n let state = {\r\n selected: 'First',\r\n get: 0\r\n };\r\n if (props.enabled && props.sub) {\r\n state = {\r\n selected: props.sub.getWeekNum(),\r\n get: props.sub.intervalValue\r\n };\r\n }\r\n this.state = state;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.enabled && nextProps.sub) {\r\n this.setState({\r\n selected: nextProps.sub.intervalValue,\r\n get: nextProps.sub.getWeekNum()\r\n });\r\n } else {\r\n this.setState({\r\n selected: 'First',\r\n get: 0\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if(this.weekNumDropdown.value !== this.state.selected) this.weekNumDropdown.value = this.state.selected;\r\n }\r\n\r\n handleBlur(e) {\r\n this.props.sub.setIntervalValue(e.currentTarget.selectedOptions[0].textContent);\r\n this.setState({\r\n selected: e.currentTarget.selectedOptions[0].textContent,\r\n get: e.currentTarget.selectedOptions[0].dataset.get\r\n });\r\n\r\n let $header = $('.sd-sentence')[0];\r\n if($header.innerHTML !== 'Schedule a new deposit') {\r\n $header.innerHTML = 'Scheduled Deposit: ' + this.props.sub.generateSentence(true);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"dropdown\" ref={node => this.node = node}>\r\n <select className={\"btn btn-secondary btn-sm dropdown-toggle sub-toggle week-num\" + (this.props.enabled ? ' inp-active' : ' disabled')}\r\n ref={node => this.weekNumDropdown = node}\r\n defaultValue={this.state.selected}\r\n onChangeCapture={this.handleBlur.bind(this)}\r\n disabled={!this.props.enabled}>\r\n <option key={\"0\"} value={\"First\"} data-get={0}>First</option>\r\n <option key={\"1\"} value={\"Second\"} data-get={1}>Second</option>\r\n <option key={\"2\"} value={\"Third\"} data-get={2}>Third</option>\r\n <option key={\"3\"} value={\"Fourth\"} data-get={3}>Fourth</option>\r\n <option key={\"-4\"} value={\"Last\"} data-get={-1}>Last</option>\r\n </select>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nWeekNumDropdown.propTypes = {\r\n sub: PropTypes.object,\r\n enabled: PropTypes.bool.isRequired\r\n};\r\n\r\nclass WeekDayDropdown extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const week = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n this.dayOptions = [];\r\n\r\n for (let day in week) {\r\n if(day) {\r\n this.dayOptions.push(\r\n <option\r\n key={day}\r\n value={day}\r\n data-day={day}>\r\n {week[day]}\r\n </option>\r\n );\r\n }\r\n }\r\n\r\n let state = {\r\n selected: week[0],\r\n day: 0\r\n };\r\n\r\n if (props.enabled && props.sub) {\r\n state = {\r\n selected: props.sub.getDayOfWeek(),\r\n day: props.sub.dayOfWeek\r\n };\r\n }\r\n this.state = state;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.enabled && nextProps.sub) {\r\n this.setState({\r\n selected: nextProps.sub.getDayOfWeek(),\r\n day: nextProps.sub.dayOfWeek\r\n });\r\n } else {\r\n this.setState({\r\n selected: 'Sunday',\r\n day: 0\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if(this.weekDayDropdown.value !== this.state.selected) this.weekDayDropdown.value = this.state.selected;\r\n }\r\n\r\n handleBlur(e) {\r\n const english = {\r\n weekDay: e.currentTarget.selectedOptions[0].textContent\r\n };\r\n\r\n const $parent = $(e.currentTarget).parents('.sch-opt');\r\n\r\n if ($parent.hasClass('cw')) {\r\n const numMap = {\r\n 1: \"\",\r\n 2: \"other \",\r\n 3: \"third \"\r\n };\r\n const selection = document.querySelector('.cw .freq').textContent;\r\n english.weekFreq = numMap[selection];\r\n } else if ($parent.hasClass('fd')) {\r\n english.weekNum = document.querySelector('.fd .week-num').selectedOptions[0].textContent;\r\n }\r\n\r\n this.props.sub.setDayOfWeek(e.currentTarget.selectedOptions[0].textContent);\r\n\r\n this.setState({\r\n selected: e.currentTarget.selectedOptions[0].textContent,\r\n day: e.currentTarget.selectedOptions[0].dataset.day\r\n });\r\n\r\n let $header = $('.sd-sentence')[0];\r\n if($header.innerHTML !== 'Schedule a new deposit') {\r\n $header.innerHTML = 'Scheduled Deposit: ' + this.props.sub.generateSentence(true);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"dropdown\" ref={node => this.node = node}>\r\n <select className={\"btn btn-secondary btn-sm dropdown-toggle sub-toggle week-day\" + (this.props.enabled ? ' inp-active' : ' disabled')}\r\n ref={node => this.weekDayDropdown = node}\r\n defaultValue={this.state.selected}\r\n onChangeCapture={this.handleBlur.bind(this)}\r\n disabled={!this.props.enabled}>\r\n <option key={0} value={\"Sunday\"} data-day={0}>Sunday</option>\r\n <option key={1} value={\"Monday\"} data-day={1}>Monday</option>\r\n <option key={2} value={\"Tuesday\"} data-day={2}>Tuesday</option>\r\n <option key={3} value={\"Wednesday\"} data-day={3}>Wednesday</option>\r\n <option key={4} value={\"Thursday\"} data-day={4}>Thursday</option>\r\n <option key={5} value={\"Friday\"} data-day={5}>Friday</option>\r\n <option key={6} value={\"Saturday\"} data-day={6}>Saturday</option>\r\n </select>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nWeekDayDropdown.propTypes = {\r\n sub: PropTypes.object,\r\n enabled: PropTypes.bool\r\n};\r\n\r\nclass DayDropdown extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.days = [];\r\n\r\n for (var i = 1; i <= 31; i++) {\r\n this.days.push(\r\n <option\r\n key={i}\r\n className=\"dropdown-item\"\r\n value={Utils.daySuffix(i)}\r\n data-day={i}>\r\n {Utils.daySuffix(i)}\r\n </option>\r\n );\r\n }\r\n\r\n let state = {\r\n selected: '1st',\r\n day: 1\r\n };\r\n\r\n if (props.enabled && props.sub) {\r\n state = {\r\n selected: Utils.daySuffix(props.sub.intervalValue),\r\n day: props.sub.intervalValue\r\n };\r\n }\r\n\r\n this.state = state;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.enabled && nextProps.sub) {\r\n this.setState({\r\n selected: Utils.daySuffix(nextProps.sub.intervalValue),\r\n day: nextProps.sub.intervalValue\r\n });\r\n } else {\r\n this.setState({\r\n selected: '1st',\r\n day: 1\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if(this.dayDropdown.value !== this.state.selected) this.dayDropdown.value = this.state.selected;\r\n }\r\n\r\n handleBlur(e) {\r\n this.props.sub.setIntervalValue(e.currentTarget.selectedOptions[0].dataset.day);\r\n\r\n this.setState({\r\n selected: Utils.daySuffix(this.props.sub.intervalValue),\r\n day: this.props.sub.intervalValue\r\n });\r\n\r\n let $header = $('.sd-sentence')[0];\r\n if($header.innerHTML !== 'Schedule a new deposit') {\r\n $header.innerHTML = 'Scheduled Deposit: ' + this.props.sub.generateSentence(true);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"dropdown\" ref={node => this.node = node}>\r\n <select className={\"btn btn-secondary btn-sm dropdown-toggle sub-toggle month-day\" + (this.props.enabled ? ' inp-active' : ' disabled')}\r\n ref={node => this.dayDropdown = node}\r\n defaultValue={this.state.selected}\r\n onChangeCapture={this.handleBlur.bind(this)}\r\n disabled={!this.props.enabled}>\r\n {this.days}\r\n </select>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nDayDropdown.propTypes = {\r\n sub: PropTypes.object,\r\n enabled: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default SubscriptionScheduler;\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Subscriptions/SubscriptionScheduler.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport SubscriptionCard from './SubscriptionCard.jsx';\r\nimport Sub from '../../../common/js/Sub.js';\r\nimport {loadSubscriptionForm, getScheduledDeposits} from '../../../common/actions/SubAction.js';\r\nimport {getPaymentMethods} from '../../../common/actions/TransAction.js';\r\n\r\nimport './Subscriptions.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n defaultPayment: store.trans.defaultPayment,\r\n loading: store.sub.loading,\r\n patrons: store.patrons.patrons,\r\n paymentMethods: store.trans.methods,\r\n persisted: store.user.persisted,\r\n subscriptions: store.sub.subscriptions,\r\n userID: store.user.id\r\n };\r\n};\r\n\r\nclass Subscriptions extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.newSub = {\r\n scheduledDepositID: undefined,\r\n stripePaymentSourceID: undefined,\r\n totalUserFeeAmount: 0,\r\n scheduleTypeID: 2,\r\n scheduledTaskIntervalID: 1,\r\n dayOfWeek: null,\r\n details: [],\r\n errors: []\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n this.props.dispatch(getPaymentMethods());\r\n this.props.dispatch(getScheduledDeposits());\r\n }\r\n\r\n newSubscription(e) {\r\n this.props.dispatch(loadSubscriptionForm(new Sub({})));\r\n\r\n if(Utils.isMobile()) {\r\n Utils.updateModal('subscription-form', {\r\n dispatch: this.props.dispatch\r\n });\r\n } else {\r\n let checkpoint = e.target;\r\n window.scrollTo(0, 0);\r\n document.dispatchEvent(new CustomEvent('rove-focal-point', {detail: {\r\n focalPointID: 'dummy-right-col-container',\r\n checkpoint: checkpoint\r\n }}));\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"sub-list\" className=\"sub-option\" role=\"tablist\" aria-multiselectable=\"true\">\r\n {\r\n _.map(this.props.subscriptions, sub => {\r\n return <div className=\"card sub-card\" data-sub={sub.scheduledDepositID} key={Math.random()}>\r\n <SubscriptionCard\r\n dispatch={this.props.dispatch}\r\n loading={this.props.loading}\r\n patrons={this.props.patrons}\r\n paymentMethod={Utils.getPaymentByStripeID(this.props.paymentMethods, sub.stripePaymentSourceID)}\r\n sub={sub}\r\n />\r\n </div>;\r\n })\r\n }\r\n <div className=\"card new-sub\">\r\n <h4 className=\"sr-only\">Schedule a new deposit</h4>\r\n <label htmlFor={Utils.setElementId(\"new-sch-btn\")}>\r\n + Schedule a new deposit\r\n <button id={Utils.setElementId(\"new-sch-btn\")} onClick={this.newSubscription.bind(this)} className=\"btn btn-primary btn-sm pull-right\">New</button>\r\n </label>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSubscriptions.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n patrons: PropTypes.array.isRequired,\r\n paymentMethods: PropTypes.array.isRequired,\r\n subscriptions: PropTypes.array.isRequired\r\n};\r\n\r\nexport default connect(mapStateToProps)(Subscriptions);\n\n\n// WEBPACK FOOTER //\n// app/parent/components/Subscriptions/Subscriptions.jsx","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {connect} from 'react-redux';\nimport PullRefresh from 'react-pullrefresh';\n\n// import PullRefresh from '../../../common/components/NullComponent/NullComponent';\nimport LeftCol from '../../../common/components/LeftCol/LeftCol';\nimport RightCol from '../../../common/components/RightCol/RightCol';\nimport AddStudent from '../../../common/components/AddStudent/AddStudent';\nimport Alert from '../../../common/components/Alert/Alert';\nimport Loader from '../../../common/components/Loader/Loader';\nimport StudentInfo from '../../../common/components/StudentInfo/StudentInfo';\nimport DashCard from '../../../common/components/Card/Card';\nimport {getBiometryState} from '../../../common/js/Biometry.js';\n\nimport {\n getPatrons,\n getBalanceNotifications,\n} from '../../../common/actions/PatronsAction.js';\nimport {resetRegistrationStatus} from '../../../common/actions/UserAction.js';\nimport {addRememberAlert} from '../../../common/actions/RememberAction.js';\nimport './Dashboard.scss';\n\n/**\n * Home route\n */\nconst mapStateToProps = store => {\n return {\n defaultPayment: store.cart.paymentMethod,\n items: store.cart.items,\n loadedAccount: store.patrons.loadedAccount,\n loadedPatron: store.patrons.loadedPatron,\n patronLoading: store.patrons.loading,\n patrons: store.patrons.patrons,\n paymentMethods: store.trans.methods,\n paymentLoading: store.trans.loading,\n userLoading: store.user.loading,\n userPatrons: store.patrons.userPatrons,\n userRegistered: store.user.userRegistered,\n userInfo: store.user.userInfo,\n userID: store.user.id,\n persisted: store.user.persisted,\n rememberAlerts: store.remember.alerts,\n subscriptions: store.sub.subscriptions\n };\n};\n\nclass Dashboard extends React.Component {\n static propTypes = {\n defaultPayment: PropTypes.string,\n dispatch: PropTypes.func.isRequired,\n items: PropTypes.array,\n loadedAccount: PropTypes.object,\n loadedPatron: PropTypes.object,\n patronLoading: PropTypes.bool.isRequired,\n patrons: PropTypes.array.isRequired,\n paymentMethods: PropTypes.array,\n paymentLoading: PropTypes.bool,\n persisted: PropTypes.bool.isRequired,\n userLoading: PropTypes.bool.isRequired,\n userPatrons: PropTypes.array,\n userRegistered: PropTypes.bool\n }\n\n componentWillMount() {\n document.dispatchEvent(new Event('refresh-data'));\n }\n\n defaultCardExpired() {\n let defaultCardExpired = false;\n const defaultCard = Utils.getPaymentByStripeID(this.props.paymentMethods,\n this.props.defaultPayment);\n let d = new Date();\n if (!_.isUndefined(defaultCard) &&\n (defaultCard.expYear <= d.getFullYear()) &&\n (defaultCard.expMonth < d.getMonth() + 1)) {\n defaultCardExpired = true;\n }\n\n return defaultCardExpired;\n }\n\n checkExpiredMethods() {\n let expiredMethods = [];\n _.map(this.props.paymentMethods, method => {\n if (Utils.hasPaymentExpired(method)) {\n let target = {alert: \"expiredMethod\", stripeCardID: method.stripeCardID};\n let alert = _.findWhere(this.props.rememberAlerts, target);\n\n if(_.isUndefined(alert)) {\n expiredMethods.push(method);\n }\n }\n });\n\n return expiredMethods;\n }\n\n checkExpiringMethods() {\n let expiringMethods = [];\n _.map(this.props.paymentMethods, method => {\n if (Utils.willMethodExpire(method)) {\n let target = {alert: \"expiringMethod\", stripeCardID: method.stripeCardID};\n let alert = _.findWhere(this.props.rememberAlerts, target);\n\n if(_.isUndefined(alert)) {\n expiringMethods.push(method);\n }\n }\n });\n\n return expiringMethods;\n }\n\n render() {\n return (\n <div className=\"dash\">\n <div className=\"row\">\n <CardContainer\n cardExpired={this.checkExpiredMethods()}\n cardExpiring={this.checkExpiringMethods()}\n dispatch={this.props.dispatch}\n items={this.props.items}\n loadedAccount={this.props.loadedAccount}\n loadedPatron={this.props.loadedPatron}\n patrons={this.props.patrons}\n defaultPayment={this.props.defaultPayment}\n patronLoading={this.props.patronLoading}\n persisted={this.props.persisted}\n userLoading={this.props.userLoading}\n userPatrons={this.props.userPatrons}\n userRegistered={this.props.userRegistered}\n userInfo={this.props.userInfo}\n userID={this.props.userID}\n router={this.props.router}\n paymentMethods={this.props.paymentMethods}\n paymentLoading={this.props.paymentLoading}\n rememberAlerts={this.props.rememberAlerts}\n subscriptions={this.props.subscriptions}\n />\n <RightCol>\n {\n (Utils.isMobile() || (this.props.patrons.length === 0 || this.props.userPatrons.length === 0)) ?\n null :\n <div className=\"card\">\n <StudentInfo />\n </div>\n }\n </RightCol>\n </div>\n </div>\n );\n }\n}\n\n/**\n * Left column, contains all the account cards.\n */\nclass CardContainer extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showFingerAlert: false,\n fingerprintType: '',\n biometrySupported: false,\n credentials: false,\n biometryType: {\n member: 'NONE',\n name: 'None'\n }\n };\n }\n\n openNewPaymentModal(e) {\n Utils.updateModal('new-payment', {});\n\n this.props.dispatch(addRememberAlert({alert: \"noMethod\", userID: this.props.userID}));\n }\n\n dismissNoMethodAlert(e) {\n this.props.dispatch(addRememberAlert({alert: \"noMethod\", userID: this.props.userID}));\n }\n\n updateExpiredPayment(e) {\n Utils.updateModal('payment-select', {save: true});\n this.rememberMethods(\"expiredMethod\", this.props.cardExpired);\n }\n\n dismissExpiredMethods(e) {\n this.rememberMethods(\"expiredMethod\", this.props.cardExpired);\n }\n\n rememberMethods(alertType, methods) {\n _.map(methods, method => {\n let target = {alert: alertType, stripeCardID: method.stripeCardID};\n let alert = _.findWhere(this.props.rememberAlerts, target);\n\n if(_.isUndefined(alert)) {\n this.props.dispatch(addRememberAlert(target));\n }\n });\n }\n\n updateExpiringMethods(e) {\n Utils.updateModal('payment-select', {save: true});\n this.rememberMethods(\"expiringMethod\", this.props.cardExpiring);\n }\n\n dismissExpiringMethods(e) {\n this.rememberMethods(\"expiringMethod\", this.props.cardExpiring);\n }\n\n patronRefresh(resolveFunc) {\n if(document.documentElement.scrollTop > 40) {\n if (_.isFunction(resolveFunc)) resolveFunc();\n return;\n }\n\n Utils.vibrate(50);\n this.props.dispatch(getPatrons(resolveFunc));\n this.props.dispatch(getBalanceNotifications());\n if (_.isFunction(resolveFunc)) resolveFunc();\n }\n\n clearRegistration() {\n this.props.dispatch(resetRegistrationStatus());\n }\n\n openSettings(e) {\n this.props.dispatch(addRememberAlert({alert: \"fingerprint\"}));\n\n this.setState({\n showFingerAlert: false\n });\n this.props.router.push('/settings');\n }\n\n openScheduledDeposits = alertSource => e => {\n if (alertSource === 'issues') {\n this.rememberScheduledDepositIssues();\n } else if (alertSource === 'errors') {\n this.rememberScheduledDepositErrors();\n }\n this.props.router.push('/deposit');\n }\n\n dismissScheduledDepositAlert(e) {\n this.rememberScheduledDepositIssues();\n }\n\n dismissScheduledDepositErrorAlert(e) {\n this.rememberScheduledDepositErrors();\n }\n\n rememberScheduledDepositIssues() {\n _.map(this.scheduledDepositIssues, scheduledDepositID => {\n let target = {alert: \"scheduledDeposit\", scheduledDepositID: scheduledDepositID};\n let alert = _.findWhere(this.props.rememberAlerts, target);\n\n if(_.isUndefined(alert)) {\n this.props.dispatch(addRememberAlert(target));\n }\n });\n }\n\n rememberScheduledDepositErrors() {\n _.map(this.scheduledDepositErrors, scheduledDepositID => {\n let target = {alert: \"scheduledDepositError\", scheduledDepositID: scheduledDepositID};\n let alert = _.findWhere(this.props.rememberAlerts, target);\n\n if (_.isUndefined(alert)) {\n this.props.dispatch(addRememberAlert(target));\n }\n });\n }\n\n checkScheduledDepositIssues() {\n this.scheduledDepositIssues = [];\n\n _.map(this.props.subscriptions, sub => {\n let missingPatrons = [];\n let blockedPatrons = [];\n let inactivePatrons = [];\n\n\n sub.errors.forEach(subError => {\n if (subError.error.errorCode === 'ScheduledDepositPatronInactiveError') {\n let alert = _.findWhere(this.props.rememberAlerts, {alert: \"scheduledDepositError\", scheduledDepositID: sub.scheduledDepositID});\n if (_.isUndefined(alert)) {\n inactivePatrons.push(sub.scheduledDepositID);\n }\n }\n });\n \n for (let dep of sub.details) {\n let subPatron = _.findWhere(this.props.patrons, {defaultPatronID: dep.patron.patronID});\n\n if(_.isUndefined(subPatron)) {\n missingPatrons.push(dep.patronNames);\n } else {\n let canDepositResult = Utils.canDeposit(subPatron);\n if(!canDepositResult.canDeposit) {\n blockedPatrons.push(dep.patronNames);\n }\n }\n }\n\n let scheduledDepositMethod = Utils.getPaymentByStripeID(this.props.paymentMethods, sub.stripePaymentSourceID);\n\n if (_.isUndefined(scheduledDepositMethod) ||\n !_.isEmpty(missingPatrons) ||\n !_.isEmpty(blockedPatrons) ||\n !_.isEmpty(inactivePatrons)) {\n let alert = _.findWhere(this.props.rememberAlerts, {alert: \"scheduledDeposit\", scheduledDepositID: sub.scheduledDepositID});\n if (_.isUndefined(alert)) {\n this.scheduledDepositIssues.push(sub.scheduledDepositID);\n }\n }\n });\n }\n\n checkScheduledDepositErrors() {\n this.scheduledDepositErrors = [];\n\n _.map(this.props.subscriptions, sub => {\n sub.errors.forEach(subError => {\n if (subError.error.errorType === 'StripePaymentCardError') {\n if (subError.error.errorCode === 'ScheduledDepositPatronInactiveError') {\n this.scheduledDepositErrors.push(sub.scheduledDepositID);\n }\n else{\n let alert = _.findWhere(this.props.rememberAlerts, {alert: \"scheduledDepositError\", scheduledDepositID: sub.scheduledDepositID});\n if (_.isUndefined(alert)) {\n this.scheduledDepositErrors.push(sub.scheduledDepositID);\n }\n }\n }\n });\n });\n }\n\n componentDidMount() {\n if(Utils.isApp()) {\n this.checkBiometryDashboard()\n }\n }\n\n checkBiometryDashboard() {\n (async () => {\n const biometryState = await getBiometryState();\n this.setState({\n biometrySupported: biometryState.isAvailable,\n credentials: biometryState.credentials,\n biometryType: biometryState.biometryType,\n showFingerAlert: (biometryState.isAvailable && biometryState.credentials == false)\n });\n })();\n }\n\n closeFingerprintAlert(e) {\n this.props.dispatch(addRememberAlert({alert: \"fingerprint\"}));\n }\n\n showNoMethodAlert(loading) {\n let show = false;\n\n if (_.isEmpty(this.props.paymentMethods) && !_.isEmpty(this.props.patrons) && !loading && this.props.persisted) {\n if (!_.findWhere(this.props.rememberAlerts, {alert: \"noMethod\", userID: this.props.userID})) {\n show = true;\n }\n }\n\n return show;\n }\n\n showScheduledDepositAlert(loading, type) {\n let show = false;\n\n if (!loading) {\n if (type === 'issues') {\n this.checkScheduledDepositIssues();\n\n if (!_.isEmpty(this.scheduledDepositIssues) && this.props.persisted) {\n show = true;\n }\n } else if (type === 'errors') {\n this.checkScheduledDepositErrors();\n\n if (!_.isEmpty(this.scheduledDepositErrors) && this.props.persisted) {\n show = true;\n }\n }\n }\n\n return show;\n }\n\n render() {\n const loading = this.props.userLoading || this.props.patronLoading || this.props.paymentLoading;\n return (\n <LeftCol>\n {\n (this.state.showFingerAlert && !loading) ?\n <Alert\n message={`Your device supports ${this.state.biometryType.name}. Click here to manage your settings.`}\n type=\"info\"\n clickHandler={this.openSettings.bind(this)}\n onClose={this.closeFingerprintAlert.bind(this)}\n /> :\n null\n }\n {\n this.showNoMethodAlert(loading) ?\n <Alert\n message=\"You have yet to set up a payment method for this account. You can click here to do that now.\"\n type=\"info\"\n clickHandler={this.openNewPaymentModal.bind(this)}\n onClose={this.dismissNoMethodAlert.bind(this)}\n /> :\n null\n }\n {\n (_.isEmpty(this.props.userInfo.email) && !loading) ?\n <Alert\n message=\"You have yet to set up an email for this account. You can click here to update your MyMealTime.com Account.\"\n type=\"danger\"\n clickHandler={this.openSettings.bind(this)}\n /> :\n null\n }\n {\n (_.isNull(this.props.userInfo.securityQuestionID) && !loading) ?\n <Alert\n message=\"You have yet to set up a security question for this account. You can click here to update your MyMealTime.com Account.\"\n type=\"danger\"\n clickHandler={this.openSettings.bind(this)}\n /> :\n null\n }\n {\n (!_.isEmpty(this.props.cardExpired) && !loading && this.props.persisted) ?\n <Alert\n message={this.props.cardExpired.length > 1 ?\n \"Multiple payment methods have expired and need to be updated. You can click here to do that now.\" :\n \"A payment method has expired and needs to be updated. You can click here to do that now.\"}\n type=\"info\"\n clickHandler={this.updateExpiredPayment.bind(this)}\n onClose={this.dismissExpiredMethods.bind(this)}\n /> :\n null\n }\n {\n (!_.isEmpty(this.props.cardExpiring) && !loading && this.props.persisted) ?\n <Alert\n message={this.props.cardExpiring.length > 1 ?\n \"Multiple payment methods are about to expire. You can click here to review now.\" :\n \"A payment method is about to expire. You can click here to review now.\"}\n type=\"info\"\n clickHandler={this.updateExpiringMethods.bind(this)}\n onClose={this.dismissExpiringMethods.bind(this)}\n /> :\n null\n }\n {\n (this.props.userRegistered && !loading) ?\n <Alert\n message=\"Your registration was successful. An email has been sent to the address on file.\"\n type=\"success\"\n onClose={this.clearRegistration.bind(this)}\n /> :\n null\n }\n {\n this.showScheduledDepositAlert(loading, 'issues') ?\n <Alert\n message={this.scheduledDepositIssues.length > 1 ?\n \"Multiple scheduled deposits need your attention. You can click here to review now.\" :\n \"A scheduled deposit needs your attention. You can click here to review now.\"}\n type=\"danger\"\n onClose={this.dismissScheduledDepositAlert.bind(this)}\n clickHandler={this.openScheduledDeposits('issues')}\n /> :\n null\n }\n {\n this.showScheduledDepositAlert(loading, 'errors') ?\n <Alert\n message={this.scheduledDepositErrors.length > 1 ?\n \"Multiple scheduled deposits failed. You can click here to review now.\" :\n \"A scheduled deposit failed. You can click here to review now.\"}\n type=\"danger\"\n onClose={this.dismissScheduledDepositErrorAlert.bind(this)}\n clickHandler={this.openScheduledDeposits('errors')}\n /> :\n null\n }\n {\n this.props.patrons.length > 0 &&\n this.props.userPatrons.length > 0 ?\n <PullRefresh\n onRefresh={this.patronRefresh.bind(this)}\n zIndex={5}\n >\n <div\n id=\"ptr\"\n style={{\n width: '100%',\n minHeight: '79vh'\n }}\n >\n {\n _.map(this.props.patrons, acct => {\n return <DashCard\n key={Math.random()}\n dispatch={this.props.dispatch}\n items={this.props.items}\n loadedAccount={this.props.loadedAccount}\n loadedPatron={this.props.loadedPatron}\n patron={acct}\n userPatron={_.findWhere(this.props.userPatrons, {patronID: acct.defaultPatronID})}\n />;\n })\n }\n </div>\n </PullRefresh> :\n null\n }\n {\n loading ?\n <Loader /> :\n null\n }\n {\n (this.props.patrons.length === 0 &&\n //this.props.userPatrons.length === 0 &&\n !loading &&\n this.props.persisted) ?\n <AddStudent /> :\n null\n }\n </LeftCol>\n );\n }\n}\n\nCardContainer.propTypes = {\n cardExpired: PropTypes.array,\n cardExpiring: PropTypes.array,\n dispatch: PropTypes.func.isRequired,\n defaultPayment: PropTypes.string,\n items: PropTypes.array,\n loadedAccount: PropTypes.object,\n loadedPatron: PropTypes.object,\n patrons: PropTypes.array.isRequired,\n patronLoading: PropTypes.bool.isRequired,\n paymentMethod: PropTypes.bool,\n paymentLoading: PropTypes.bool,\n persisted: PropTypes.bool.isRequired,\n userLoading: PropTypes.bool.isRequired,\n userPatrons: PropTypes.array.isRequired,\n userRegistered: PropTypes.bool\n};\n\nexport default connect(mapStateToProps)(Dashboard);\n\n\n\n// WEBPACK FOOTER //\n// app/parent/routes/Dashboard/Dashboard.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {withRouter} from 'react-router';\r\n\r\nimport LeftCol from '../../../common/components/LeftCol/LeftCol.jsx';\r\nimport RightCol from '../../../common/components/RightCol/RightCol';\r\nimport Loader from '../../../common/components/Loader/Loader';\r\nimport AddStudent from '../../../common/components/AddStudent/AddStudent';\r\nimport FeeInfo from '../../../common/components/FeeInfo/FeeInfo';\r\nimport {FeeCard, StudentInput} from '../../../common/components/FeeCard/FeeCard.jsx';\r\n\r\nimport {getFeesPaid} from '../../../common/actions/CartAction.js';\r\nimport {getSchoolFees} from '../../../common/actions/PatronsAction.js';\r\n\r\nimport './Fees.scss';\r\n\r\n/**\r\n * Pay School Fees route\r\n */\r\nconst mapStateToProps = store => {\r\n return {\r\n cart: store.cart.items,\r\n fees: store.patrons.fees,\r\n feesPaid: store.cart.feesPaid,\r\n loading: store.patrons.loading,\r\n memos: store.cart.memos,\r\n patrons: store.patrons.patrons\r\n };\r\n};\r\n\r\nclass Fees extends React.Component {\r\n static propTypes = {\r\n cart: PropTypes.array.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n fees: PropTypes.array.isRequired,\r\n feesPaid: PropTypes.array.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n memos: PropTypes.array.isRequired,\r\n patrons: PropTypes.array.isRequired\r\n };\r\n\r\n componentWillMount() {\r\n this.props.dispatch(getSchoolFees());\r\n\r\n if (_.isEmpty(this.props.feesPaid)) {\r\n this.props.dispatch(getFeesPaid());\r\n }\r\n }\r\n\r\n getFeeStudents(fee) {\r\n // No need to pass all the students to every fee\r\n const feesInCart = _.where(this.props.cart, {subAccountID: fee.subAccountID});\r\n let feeStudents = [];\r\n let nonProhibitedAccounts = _.where(this.props.patrons, {paymentsProhibited: false});\r\n\r\n //for (let patron of this.props.patrons) {\r\n for (let patron of nonProhibitedAccounts) {\r\n let res = Utils.canDeposit(patron);\r\n\r\n if(res.canDeposit) {\r\n for (let stu of patron.patrons) {\r\n const districtFeeStudent = (_.isNull(fee.schoolLocationID) && stu.districtLocationID === fee.districtLocationID);\r\n const schoolFeeStudent = (!_.isNull(fee.schoolLocationID) && stu.schoolLocationID === fee.schoolLocationID);\r\n\r\n // We don't care what type of fee it is, just if the student is under the umbrella\r\n if (districtFeeStudent || schoolFeeStudent) {\r\n const existingFee = _.findWhere(feesInCart, {patronID: stu.patronID});\r\n const isInActiveMpower = (stu.schoolMT5 === true && stu.patronActive === false) ? true : false;\r\n feeStudents.push(<StudentInput\r\n key={stu.patronID}\r\n acctID={patron.patronAccountNum}\r\n name={stu.fullName}\r\n patronID={stu.patronID}\r\n inCart={\r\n _.isUndefined(existingFee) ?\r\n undefined :\r\n existingFee.amount\r\n }\r\n quantity={fee.maxQuantity}\r\n amount={fee.priceEach}\r\n isInActiveMpower={isInActiveMpower}\r\n />);\r\n }\r\n }\r\n }\r\n }\r\n return feeStudents;\r\n }\r\n\r\n //ref BG17033 - remove restriction wether student can make deposit or not\r\n getFeeStudents_lessRestricted(fee) {\r\n const feesInCart = _.where(this.props.cart, {subAccountID: fee.subAccountID});\r\n let feeStudents = [];\r\n let nonProhibitedAccounts = _.where(this.props.patrons, {paymentsProhibited: false});\r\n for (let patron of nonProhibitedAccounts) {\r\n for (let stu of patron.patrons) {\r\n const districtFeeStudent = (_.isNull(fee.schoolLocationID) && stu.districtLocationID === fee.districtLocationID);\r\n const schoolFeeStudent = (!_.isNull(fee.schoolLocationID) && stu.schoolLocationID === fee.schoolLocationID);\r\n\r\n if (districtFeeStudent || schoolFeeStudent) {\r\n const existingFee = _.findWhere(feesInCart, {patronID: stu.patronID});\r\n const isInActiveMpower = (stu.schoolMT5 === true && stu.patronActive === false) ? true : false;\r\n feeStudents.push(<StudentInput\r\n key={stu.patronID}\r\n acctID={patron.patronAccountNum}\r\n name={stu.fullName}\r\n patronID={stu.patronID}\r\n inCart={\r\n _.isUndefined(existingFee) ?\r\n undefined :\r\n existingFee.amount\r\n }\r\n quantity={fee.maxQuantity}\r\n amount={fee.priceEach}\r\n isInActiveMpower={isInActiveMpower}\r\n />);\r\n }\r\n }\r\n }\r\n return feeStudents;\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"fee-page\">\r\n <LeftCol>\r\n {\r\n this.props.loading ?\r\n <Loader/> :\r\n null\r\n }\r\n {\r\n _.isEmpty(this.props.patrons) && !this.props.loading ?\r\n <AddStudent/> :\r\n _.isEmpty(this.props.fees) && !this.props.loading ?\r\n <h5 className=\"no-items-found\">No school fees are available for payment using this application.</h5> :\r\n _.map(this.props.fees, fee => {\r\n let feePatrons = this.getFeeStudents_lessRestricted(fee);\r\n if (feePatrons.length === 0) return null;\r\n return <FeeCard\r\n patrons={this.props.patrons}\r\n key={fee.subAccountID}\r\n amount={fee.priceEach}\r\n dispatch={this.props.dispatch}\r\n fee={fee}\r\n inCart={!_.isEmpty(_.where(this.props.cart,\r\n {subAccountID: fee.subAccountID}))}\r\n condensed={this.props.fees.length > 3}\r\n feePatrons={feePatrons}\r\n existingMemo={\r\n _.findWhere(this.props.memos,\r\n {id: fee.subAccountID})\r\n }\r\n router={this.props.router}\r\n />;\r\n })\r\n }\r\n </LeftCol>\r\n <RightCol>\r\n {\r\n _.isEmpty(this.props.patrons) ||\r\n _.isEmpty(this.props.feesPaid) ?\r\n null :\r\n <FeeInfo\r\n dispatch={this.props.dispatch}\r\n feesPaid={this.props.feesPaid}\r\n />\r\n }\r\n </RightCol>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst feesRouter = withRouter(Fees);\r\nexport default connect(mapStateToProps)(feesRouter);\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/routes/Fees/Fees.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {withRouter, Link} from 'react-router';\r\n\r\nimport {clearAllErrors} from '../../../common/actions/ErrorAction.js';\r\nimport {signOutSimple} from '../../../common/actions/AuthAction.js';\r\n\r\nimport MobileLogin from '../../../common/components/MobileLogin/MobileLogin.jsx';\r\nimport Modal from '../../../common/components/Modals/Modal/Modal.jsx';\r\n\r\nimport DesktopLogin from '../../components/DesktopLogin/DesktopLogin.jsx';\r\n\r\nimport './Login.scss';\r\n// import './Screens.scss';\r\n\r\nimport {version, env} from '../../../version.json';\r\n\r\n// Login route. Served by /\r\n// Maybe there's a better way to reduce the number of props used here?\r\nconst mapStateToProps = store => {\r\n return {\r\n emailSent: store.auth.emailSent,\r\n emailContext: store.auth.emailContext,\r\n isAuthenticated: store.auth.isAuthenticated,\r\n loading: store.auth.loading,\r\n persistedUserID: store.user.id,\r\n persistedUsername: store.remember.username,\r\n securityQuestionID: store.user.forgotPassInfo.securityQuestionID,\r\n userLoading: store.user.loading,\r\n username: store.user.forgotPassInfo.username,\r\n validationErrors: store.error.validationErrors,\r\n userCoppa: store.auth.userCoppa,\r\n coppaLoading: store.auth.coppaLoading\r\n };\r\n};\r\n\r\nclass LoginPage extends React.Component {\r\n static propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n emailSent: PropTypes.bool,\r\n emailContext: PropTypes.string.isRequired,\r\n isAuthenticated: PropTypes.bool.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n persistedUserID: PropTypes.number,\r\n persistedUsername: PropTypes.string,\r\n router: PropTypes.object.isRequired,\r\n securityQuestionID: PropTypes.number,\r\n userLoading: PropTypes.bool.isRequired,\r\n username: PropTypes.string,\r\n validationErrors: PropTypes.array.isRequired,\r\n userCoppa: PropTypes.object.isRequired,\r\n coppaLoading: PropTypes.bool.isRequired,\r\n forgot: PropTypes.bool\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n loginReset: false\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n // Clear old errors\r\n this.props.dispatch(clearAllErrors());\r\n document.body.className = 'default-theme';\r\n }\r\n\r\n componentDidMount() {\r\n // Just in case the user had an error on log out\r\n let backdrop = document.querySelector('.modal-backdrop.show');\r\n if (_.isObject(backdrop)) document.body.removeChild(backdrop);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (!this.state.loginReset) {\r\n this.setState({loginReset: true});\r\n\r\n this.props.dispatch(signOutSimple());\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"login-wrapper\">\r\n <div className=\"login\">\r\n {\r\n _.isEmpty(this.props.validationErrors) ?\r\n null :\r\n <p className=\"sr-only\" aria-live=\"polite\">\r\n {\r\n Utils.generateSROnlyErrorMsg(this.props.validationErrors)\r\n }\r\n </p>\r\n }\r\n <MobileLogin\r\n forgot={this.props.forgot}\r\n dispatch={this.props.dispatch}\r\n loading={this.props.loading}\r\n error={Utils.getErrorsByID(this.props.validationErrors, 'username', 'authError')}\r\n persistedUsername={this.props.persistedUsername}\r\n persistedUserID={this.props.persistedUserID}\r\n userCoppa={this.props.userCoppa}\r\n coppaLoading={this.props.coppaLoading}\r\n />\r\n <DesktopLogin\r\n forgot={this.props.forgot}\r\n dispatch={this.props.dispatch}\r\n emailSent={this.props.emailSent}\r\n emailContext={this.props.emailContext}\r\n loading={this.props.loading}\r\n persistedUserID={this.props.persistedUserID}\r\n persistedUsername={this.props.persistedUsername}\r\n securityQuestionID={this.props.securityQuestionID}\r\n userLoading={this.props.userLoading}\r\n username={this.props.username}\r\n validationErrors={this.props.validationErrors}\r\n userCoppa={this.props.userCoppa}\r\n coppaLoading={this.props.coppaLoading}\r\n />\r\n <div className=\"version\">\r\n <Link to=\"/public\" className=\"version-font\" >About</Link>\r\n <span> | v{version + \" \" + env}</span>\r\n <span> | {\"© The CLM Group, Inc\"}</span>\r\n </div>\r\n </div>\r\n <Modal dispatch={this.props.dispatch}/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst composedWithRouter = withRouter(LoginPage);\r\n\r\nexport default connect(mapStateToProps)(composedWithRouter);\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/routes/Login/Login.jsx","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\n\r\nimport LeftCol from '../../../common/components/LeftCol/LeftCol';\r\nimport RightCol from '../../../common/components/RightCol/RightCol';\r\nimport Loader from '../../../common/components/Loader/Loader';\r\nimport AddStudent from '../../../common/components/AddStudent/AddStudent';\r\n//import SubInfo from '../../components/Subscription/Subscription.jsx';\r\n//import SubCard from '../../components/SubCard/SubCard.jsx';\r\nimport Subscriptions from '../../components/Subscriptions/Subscriptions.jsx'\r\nimport SubscriptionForm from '../../components/Subscriptions/SubscriptionForm.jsx'\r\n//import Sub from '../../../common/js/Sub.js';\r\n\r\nimport './ScheduleDeposit.scss';\r\n\r\nconst mapStateToProps = store => {\r\n return {\r\n defaultPayment: store.trans.defaultPayment,\r\n loading: store.sub.loading,\r\n patrons: store.patrons.patrons,\r\n paymentMethods: store.trans.methods,\r\n persisted: store.user.persisted,\r\n subscriptions: store.sub.subscriptions,\r\n subscriptionForm: store.sub.subscriptionForm,\r\n userID: store.user.id\r\n };\r\n};\r\n\r\n/**\r\n * Schedule deposits route\r\n */\r\nclass Deposit extends React.Component {\r\n static propTypes = {\r\n defaultPayment: PropTypes.string,\r\n dispatch: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n patrons: PropTypes.array.isRequired,\r\n paymentMethods: PropTypes.array,\r\n persisted: PropTypes.bool,\r\n subscriptions: PropTypes.array,\r\n subscriptionForm: PropTypes.object,\r\n userID: PropTypes.number\r\n }\r\n\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n show: false,\r\n header: 'Schedule a new deposit'\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n <div id=\"deposit-page\">\r\n <LeftCol>\r\n {\r\n this.props.loading && _.isEmpty(this.props.patrons) ?\r\n <Loader/> :\r\n null\r\n }\r\n {\r\n _.isEmpty(this.props.patrons) && this.props.persisted ?\r\n <AddStudent/> :\r\n null\r\n\r\n }\r\n {\r\n !_.isEmpty(this.props.patrons) && this.props.persisted ?\r\n <Subscriptions\r\n dispatch={this.props.dispatch}\r\n defaultPayment={this.props.defaultPayment}\r\n loading={this.props.loading}\r\n patrons={this.props.patrons}\r\n paymentMethods={this.props.paymentMethods}\r\n subscriptions={this.props.subscriptions}\r\n /> :\r\n null\r\n }\r\n </LeftCol>\r\n <RightCol>\r\n {\r\n !_.isUndefined(this.props.subscriptionForm) && !Utils.isMobile() ?\r\n <div className={\"card sch-dep-card\"}>\r\n <SubscriptionForm\r\n dispatch={this.props.dispatch}\r\n />\r\n </div> :\r\n null\r\n }\r\n </RightCol>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(Deposit);\r\n\n\n\n// WEBPACK FOOTER //\n// app/parent/routes/ScheduleDeposit/ScheduleDeposit.jsx","\"use strict\";\n\nrequire(\"core-js/shim\");\n\nrequire(\"regenerator-runtime/runtime\");\n\nrequire(\"core-js/fn/regexp/escape\");\n\nif (global._babelPolyfill) {\n throw new Error(\"only one instance of babel-polyfill is allowed\");\n}\nglobal._babelPolyfill = true;\n\nvar DEFINE_PROPERTY = \"defineProperty\";\nfunction define(O, key, value) {\n O[key] || Object[DEFINE_PROPERTY](O, key, {\n writable: true,\n configurable: true,\n value: value\n });\n}\n\ndefine(String.prototype, \"padLeft\", \"\".padStart);\ndefine(String.prototype, \"padRight\", \"\".padEnd);\n\n\"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill\".split(\",\").forEach(function (key) {\n [][key] && define(Array, key, Function.call.bind([][key]));\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-polyfill/lib/index.js\n// module id = 542\n// module chunks = 0","/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n if (typeof global.process === \"object\" && global.process.domain) {\n invoke = global.process.domain.bind(invoke);\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // Among the various tricks for obtaining a reference to the global\n // object, this seems to be the most reliable technique that does not\n // use indirect eval (which violates Content Security Policy).\n typeof global === \"object\" ? global :\n typeof window === \"object\" ? window :\n typeof self === \"object\" ? self : this\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-polyfill/~/regenerator-runtime/runtime.js\n// module id = 543\n// module chunks = 0","require('../../modules/core.regexp.escape');\nmodule.exports = require('../../modules/_core').RegExp.escape;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/fn/regexp/escape.js\n// module id = 544\n// module chunks = 0","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-species-constructor.js\n// module id = 545\n// module chunks = 0","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_date-to-iso-string.js\n// module id = 546\n// module chunks = 0","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_date-to-primitive.js\n// module id = 547\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_enum-keys.js\n// module id = 548\n// module chunks = 0","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_function-to-string.js\n// module id = 549\n// module chunks = 0","module.exports = function (regExp, replace) {\n var replacer = replace === Object(replace) ? function (part) {\n return replace[part];\n } : replace;\n return function (it) {\n return String(it).replace(regExp, replacer);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_replacer.js\n// module id = 550\n// module chunks = 0","// https://github.com/benjamingr/RexExp.escape\nvar $export = require('./_export');\nvar $re = require('./_replacer')(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/core.regexp.escape.js\n// module id = 551\n// module chunks = 0","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.copy-within.js\n// module id = 552\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.every.js\n// module id = 553\n// module chunks = 0","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.fill.js\n// module id = 554\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.filter.js\n// module id = 555\n// module chunks = 0","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.find-index.js\n// module id = 556\n// module chunks = 0","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.find.js\n// module id = 557\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.for-each.js\n// module id = 558\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.from.js\n// module id = 559\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.index-of.js\n// module id = 560\n// module chunks = 0","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.is-array.js\n// module id = 561\n// module chunks = 0","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.join.js\n// module id = 562\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.last-index-of.js\n// module id = 563\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.map.js\n// module id = 564\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.of.js\n// module id = 565\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.reduce-right.js\n// module id = 566\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.reduce.js\n// module id = 567\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.slice.js\n// module id = 568\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.some.js\n// module id = 569\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.sort.js\n// module id = 570\n// module chunks = 0","require('./_set-species')('Array');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.array.species.js\n// module id = 571\n// module chunks = 0","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.date.now.js\n// module id = 572\n// module chunks = 0","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.date.to-iso-string.js\n// module id = 573\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.date.to-json.js\n// module id = 574\n// module chunks = 0","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.date.to-primitive.js\n// module id = 575\n// module chunks = 0","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.date.to-string.js\n// module id = 576\n// module chunks = 0","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.function.bind.js\n// module id = 577\n// module chunks = 0","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.function.has-instance.js\n// module id = 578\n// module chunks = 0","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.function.name.js\n// module id = 579\n// module chunks = 0","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.acosh.js\n// module id = 580\n// module chunks = 0","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.asinh.js\n// module id = 581\n// module chunks = 0","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.atanh.js\n// module id = 582\n// module chunks = 0","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.cbrt.js\n// module id = 583\n// module chunks = 0","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.clz32.js\n// module id = 584\n// module chunks = 0","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.cosh.js\n// module id = 585\n// module chunks = 0","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.expm1.js\n// module id = 586\n// module chunks = 0","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.fround.js\n// module id = 587\n// module chunks = 0","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.hypot.js\n// module id = 588\n// module chunks = 0","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.imul.js\n// module id = 589\n// module chunks = 0","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.log10.js\n// module id = 590\n// module chunks = 0","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.log1p.js\n// module id = 591\n// module chunks = 0","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.log2.js\n// module id = 592\n// module chunks = 0","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.sign.js\n// module id = 593\n// module chunks = 0","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.sinh.js\n// module id = 594\n// module chunks = 0","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.tanh.js\n// module id = 595\n// module chunks = 0","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.math.trunc.js\n// module id = 596\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.constructor.js\n// module id = 597\n// module chunks = 0","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.epsilon.js\n// module id = 598\n// module chunks = 0","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.is-finite.js\n// module id = 599\n// module chunks = 0","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.is-integer.js\n// module id = 600\n// module chunks = 0","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.is-nan.js\n// module id = 601\n// module chunks = 0","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.is-safe-integer.js\n// module id = 602\n// module chunks = 0","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.max-safe-integer.js\n// module id = 603\n// module chunks = 0","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.min-safe-integer.js\n// module id = 604\n// module chunks = 0","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.parse-float.js\n// module id = 605\n// module chunks = 0","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.parse-int.js\n// module id = 606\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.to-fixed.js\n// module id = 607\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.number.to-precision.js\n// module id = 608\n// module chunks = 0","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.assign.js\n// module id = 609\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.create.js\n// module id = 610\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.define-properties.js\n// module id = 611\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.define-property.js\n// module id = 612\n// module chunks = 0","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.freeze.js\n// module id = 613\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.get-own-property-descriptor.js\n// module id = 614\n// module chunks = 0","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.get-own-property-names.js\n// module id = 615\n// module chunks = 0","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.get-prototype-of.js\n// module id = 616\n// module chunks = 0","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.is-extensible.js\n// module id = 617\n// module chunks = 0","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.is-frozen.js\n// module id = 618\n// module chunks = 0","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.is-sealed.js\n// module id = 619\n// module chunks = 0","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.is.js\n// module id = 620\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.keys.js\n// module id = 621\n// module chunks = 0","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.prevent-extensions.js\n// module id = 622\n// module chunks = 0","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.seal.js\n// module id = 623\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.set-prototype-of.js\n// module id = 624\n// module chunks = 0","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.object.to-string.js\n// module id = 625\n// module chunks = 0","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.parse-float.js\n// module id = 626\n// module chunks = 0","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.parse-int.js\n// module id = 627\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.promise.js\n// module id = 628\n// module chunks = 0","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.apply.js\n// module id = 629\n// module chunks = 0","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.construct.js\n// module id = 630\n// module chunks = 0","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.define-property.js\n// module id = 631\n// module chunks = 0","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.delete-property.js\n// module id = 632\n// module chunks = 0","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.enumerate.js\n// module id = 633\n// module chunks = 0","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get-own-property-descriptor.js\n// module id = 634\n// module chunks = 0","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get-prototype-of.js\n// module id = 635\n// module chunks = 0","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get.js\n// module id = 636\n// module chunks = 0","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.has.js\n// module id = 637\n// module chunks = 0","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.is-extensible.js\n// module id = 638\n// module chunks = 0","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.own-keys.js\n// module id = 639\n// module chunks = 0","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.prevent-extensions.js\n// module id = 640\n// module chunks = 0","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.set-prototype-of.js\n// module id = 641\n// module chunks = 0","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.set.js\n// module id = 642\n// module chunks = 0","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.constructor.js\n// module id = 643\n// module chunks = 0","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.match.js\n// module id = 644\n// module chunks = 0","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.replace.js\n// module id = 645\n// module chunks = 0","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.search.js\n// module id = 646\n// module chunks = 0","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.split.js\n// module id = 647\n// module chunks = 0","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.regexp.to-string.js\n// module id = 648\n// module chunks = 0","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.anchor.js\n// module id = 649\n// module chunks = 0","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.big.js\n// module id = 650\n// module chunks = 0","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.blink.js\n// module id = 651\n// module chunks = 0","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.bold.js\n// module id = 652\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.code-point-at.js\n// module id = 653\n// module chunks = 0","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.ends-with.js\n// module id = 654\n// module chunks = 0","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fixed.js\n// module id = 655\n// module chunks = 0","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fontcolor.js\n// module id = 656\n// module chunks = 0","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.fontsize.js\n// module id = 657\n// module chunks = 0","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.from-code-point.js\n// module id = 658\n// module chunks = 0","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.includes.js\n// module id = 659\n// module chunks = 0","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.italics.js\n// module id = 660\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.iterator.js\n// module id = 661\n// module chunks = 0","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.link.js\n// module id = 662\n// module chunks = 0","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.raw.js\n// module id = 663\n// module chunks = 0","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.repeat.js\n// module id = 664\n// module chunks = 0","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.small.js\n// module id = 665\n// module chunks = 0","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.starts-with.js\n// module id = 666\n// module chunks = 0","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.strike.js\n// module id = 667\n// module chunks = 0","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.sub.js\n// module id = 668\n// module chunks = 0","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.sup.js\n// module id = 669\n// module chunks = 0","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.string.trim.js\n// module id = 670\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.symbol.js\n// module id = 671\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.array-buffer.js\n// module id = 672\n// module chunks = 0","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.data-view.js\n// module id = 673\n// module chunks = 0","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.float32-array.js\n// module id = 674\n// module chunks = 0","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.float64-array.js\n// module id = 675\n// module chunks = 0","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.int16-array.js\n// module id = 676\n// module chunks = 0","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.int32-array.js\n// module id = 677\n// module chunks = 0","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.int8-array.js\n// module id = 678\n// module chunks = 0","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.uint16-array.js\n// module id = 679\n// module chunks = 0","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.uint32-array.js\n// module id = 680\n// module chunks = 0","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.uint8-array.js\n// module id = 681\n// module chunks = 0","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.typed.uint8-clamped-array.js\n// module id = 682\n// module chunks = 0","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.weak-set.js\n// module id = 683\n// module chunks = 0","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar aFunction = require('./_a-function');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen, A;\n aFunction(callbackfn);\n sourceLen = toLength(O.length);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatMap');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.array.flat-map.js\n// module id = 684\n// module chunks = 0","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatten: function flatten(/* depthArg = 1 */) {\n var depthArg = arguments[0];\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatten');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.array.flatten.js\n// module id = 685\n// module chunks = 0","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.array.includes.js\n// module id = 686\n// module chunks = 0","// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\nvar $export = require('./_export');\nvar microtask = require('./_microtask')();\nvar process = require('./_global').process;\nvar isNode = require('./_cof')(process) == 'process';\n\n$export($export.G, {\n asap: function asap(fn) {\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.asap.js\n// module id = 687\n// module chunks = 0","// https://github.com/ljharb/proposal-is-error\nvar $export = require('./_export');\nvar cof = require('./_cof');\n\n$export($export.S, 'Error', {\n isError: function isError(it) {\n return cof(it) === 'Error';\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.error.is-error.js\n// module id = 688\n// module chunks = 0","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.G, { global: require('./_global') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.global.js\n// module id = 689\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.map.from.js\n// module id = 690\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.map.of.js\n// module id = 691\n// module chunks = 0","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.map.to-json.js\n// module id = 692\n// module chunks = 0","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clamp: function clamp(x, lower, upper) {\n return Math.min(upper, Math.max(lower, x));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.clamp.js\n// module id = 693\n// module chunks = 0","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.deg-per-rad.js\n// module id = 694\n// module chunks = 0","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar RAD_PER_DEG = 180 / Math.PI;\n\n$export($export.S, 'Math', {\n degrees: function degrees(radians) {\n return radians * RAD_PER_DEG;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.degrees.js\n// module id = 695\n// module chunks = 0","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar scale = require('./_math-scale');\nvar fround = require('./_math-fround');\n\n$export($export.S, 'Math', {\n fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n return fround(scale(x, inLow, inHigh, outLow, outHigh));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.fscale.js\n// module id = 696\n// module chunks = 0","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n iaddh: function iaddh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.iaddh.js\n// module id = 697\n// module chunks = 0","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n imulh: function imulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >> 16;\n var v1 = $v >> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.imulh.js\n// module id = 698\n// module chunks = 0","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n isubh: function isubh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.isubh.js\n// module id = 699\n// module chunks = 0","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.rad-per-deg.js\n// module id = 700\n// module chunks = 0","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar DEG_PER_RAD = Math.PI / 180;\n\n$export($export.S, 'Math', {\n radians: function radians(degrees) {\n return degrees * DEG_PER_RAD;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.radians.js\n// module id = 701\n// module chunks = 0","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { scale: require('./_math-scale') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.scale.js\n// module id = 702\n// module chunks = 0","// http://jfbastien.github.io/papers/Math.signbit.html\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { signbit: function signbit(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.signbit.js\n// module id = 703\n// module chunks = 0","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n umulh: function umulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >>> 16;\n var v1 = $v >>> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.math.umulh.js\n// module id = 704\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.define-getter.js\n// module id = 705\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter) {\n $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.define-setter.js\n// module id = 706\n// module chunks = 0","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.entries.js\n// module id = 707\n// module chunks = 0","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.get-own-property-descriptors.js\n// module id = 708\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n } while (O = getPrototypeOf(O));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.lookup-getter.js\n// module id = 709\n// module chunks = 0","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n } while (O = getPrototypeOf(O));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.lookup-setter.js\n// module id = 710\n// module chunks = 0","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.object.values.js\n// module id = 711\n// module chunks = 0","'use strict';\n// https://github.com/zenparsing/es-observable\nvar $export = require('./_export');\nvar global = require('./_global');\nvar core = require('./_core');\nvar microtask = require('./_microtask')();\nvar OBSERVABLE = require('./_wks')('observable');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar anInstance = require('./_an-instance');\nvar redefineAll = require('./_redefine-all');\nvar hide = require('./_hide');\nvar forOf = require('./_for-of');\nvar RETURN = forOf.RETURN;\n\nvar getMethod = function (fn) {\n return fn == null ? undefined : aFunction(fn);\n};\n\nvar cleanupSubscription = function (subscription) {\n var cleanup = subscription._c;\n if (cleanup) {\n subscription._c = undefined;\n cleanup();\n }\n};\n\nvar subscriptionClosed = function (subscription) {\n return subscription._o === undefined;\n};\n\nvar closeSubscription = function (subscription) {\n if (!subscriptionClosed(subscription)) {\n subscription._o = undefined;\n cleanupSubscription(subscription);\n }\n};\n\nvar Subscription = function (observer, subscriber) {\n anObject(observer);\n this._c = undefined;\n this._o = observer;\n observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(observer);\n var subscription = cleanup;\n if (cleanup != null) {\n if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };\n else aFunction(cleanup);\n this._c = cleanup;\n }\n } catch (e) {\n observer.error(e);\n return;\n } if (subscriptionClosed(this)) cleanupSubscription(this);\n};\n\nSubscription.prototype = redefineAll({}, {\n unsubscribe: function unsubscribe() { closeSubscription(this); }\n});\n\nvar SubscriptionObserver = function (subscription) {\n this._s = subscription;\n};\n\nSubscriptionObserver.prototype = redefineAll({}, {\n next: function next(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n try {\n var m = getMethod(observer.next);\n if (m) return m.call(observer, value);\n } catch (e) {\n try {\n closeSubscription(subscription);\n } finally {\n throw e;\n }\n }\n }\n },\n error: function error(value) {\n var subscription = this._s;\n if (subscriptionClosed(subscription)) throw value;\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.error);\n if (!m) throw value;\n value = m.call(observer, value);\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n },\n complete: function complete(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.complete);\n value = m ? m.call(observer, value) : undefined;\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n }\n }\n});\n\nvar $Observable = function Observable(subscriber) {\n anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\n};\n\nredefineAll($Observable.prototype, {\n subscribe: function subscribe(observer) {\n return new Subscription(observer, this._f);\n },\n forEach: function forEach(fn) {\n var that = this;\n return new (core.Promise || global.Promise)(function (resolve, reject) {\n aFunction(fn);\n var subscription = that.subscribe({\n next: function (value) {\n try {\n return fn(value);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n});\n\nredefineAll($Observable, {\n from: function from(x) {\n var C = typeof this === 'function' ? this : $Observable;\n var method = getMethod(anObject(x)[OBSERVABLE]);\n if (method) {\n var observable = anObject(method.call(x));\n return observable.constructor === C ? observable : new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n return new C(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n try {\n if (forOf(x, false, function (it) {\n observer.next(it);\n if (done) return RETURN;\n }) === RETURN) return;\n } catch (e) {\n if (done) throw e;\n observer.error(e);\n return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n },\n of: function of() {\n for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];\n return new (typeof this === 'function' ? this : $Observable)(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n for (var j = 0; j < items.length; ++j) {\n observer.next(items[j]);\n if (done) return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n }\n});\n\nhide($Observable.prototype, OBSERVABLE, function () { return this; });\n\n$export($export.G, { Observable: $Observable });\n\nrequire('./_set-species')('Observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.observable.js\n// module id = 712\n// module chunks = 0","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.promise.finally.js\n// module id = 713\n// module chunks = 0","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.promise.try.js\n// module id = 714\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.define-metadata.js\n// module id = 715\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.delete-metadata.js\n// module id = 716\n// module chunks = 0","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-metadata-keys.js\n// module id = 717\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-metadata.js\n// module id = 718\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-own-metadata-keys.js\n// module id = 719\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-own-metadata.js\n// module id = 720\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.has-metadata.js\n// module id = 721\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.has-own-metadata.js\n// module id = 722\n// module chunks = 0","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.metadata.js\n// module id = 723\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.set.from.js\n// module id = 724\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.set.of.js\n// module id = 725\n// module chunks = 0","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.set.to-json.js\n// module id = 726\n// module chunks = 0","'use strict';\n// https://github.com/mathiasbynens/String.prototype.at\nvar $export = require('./_export');\nvar $at = require('./_string-at')(true);\nvar $fails = require('./_fails');\n\nvar FORCED = $fails(function () {\n return '𠮷'.at(0) !== '𠮷';\n});\n\n$export($export.P + $export.F * FORCED, 'String', {\n at: function at(pos) {\n return $at(this, pos);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.string.at.js\n// module id = 727\n// module chunks = 0","'use strict';\n// https://tc39.github.io/String.prototype.matchAll/\nvar $export = require('./_export');\nvar defined = require('./_defined');\nvar toLength = require('./_to-length');\nvar isRegExp = require('./_is-regexp');\nvar getFlags = require('./_flags');\nvar RegExpProto = RegExp.prototype;\n\nvar $RegExpStringIterator = function (regexp, string) {\n this._r = regexp;\n this._s = string;\n};\n\nrequire('./_iter-create')($RegExpStringIterator, 'RegExp String', function next() {\n var match = this._r.exec(this._s);\n return { value: match, done: match === null };\n});\n\n$export($export.P, 'String', {\n matchAll: function matchAll(regexp) {\n defined(this);\n if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');\n var S = String(this);\n var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);\n var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\n rx.lastIndex = toLength(regexp.lastIndex);\n return new $RegExpStringIterator(rx, S);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.string.match-all.js\n// module id = 728\n// module chunks = 0","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.string.pad-end.js\n// module id = 729\n// module chunks = 0","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.string.pad-start.js\n// module id = 730\n// module chunks = 0","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function ($trim) {\n return function trimLeft() {\n return $trim(this, 1);\n };\n}, 'trimStart');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.string.trim-left.js\n// module id = 731\n// module chunks = 0","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function ($trim) {\n return function trimRight() {\n return $trim(this, 2);\n };\n}, 'trimEnd');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.string.trim-right.js\n// module id = 732\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.symbol.async-iterator.js\n// module id = 733\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.symbol.observable.js\n// module id = 734\n// module chunks = 0","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.S, 'System', { global: require('./_global') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.system.global.js\n// module id = 735\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.weak-map.from.js\n// module id = 736\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.weak-map.of.js\n// module id = 737\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.weak-set.from.js\n// module id = 738\n// module chunks = 0","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.weak-set.of.js\n// module id = 739\n// module chunks = 0","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/web.dom.iterable.js\n// module id = 740\n// module chunks = 0","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/web.immediate.js\n// module id = 741\n// module chunks = 0","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/web.timers.js\n// module id = 742\n// module chunks = 0","require('./modules/es6.symbol');\nrequire('./modules/es6.object.create');\nrequire('./modules/es6.object.define-property');\nrequire('./modules/es6.object.define-properties');\nrequire('./modules/es6.object.get-own-property-descriptor');\nrequire('./modules/es6.object.get-prototype-of');\nrequire('./modules/es6.object.keys');\nrequire('./modules/es6.object.get-own-property-names');\nrequire('./modules/es6.object.freeze');\nrequire('./modules/es6.object.seal');\nrequire('./modules/es6.object.prevent-extensions');\nrequire('./modules/es6.object.is-frozen');\nrequire('./modules/es6.object.is-sealed');\nrequire('./modules/es6.object.is-extensible');\nrequire('./modules/es6.object.assign');\nrequire('./modules/es6.object.is');\nrequire('./modules/es6.object.set-prototype-of');\nrequire('./modules/es6.object.to-string');\nrequire('./modules/es6.function.bind');\nrequire('./modules/es6.function.name');\nrequire('./modules/es6.function.has-instance');\nrequire('./modules/es6.parse-int');\nrequire('./modules/es6.parse-float');\nrequire('./modules/es6.number.constructor');\nrequire('./modules/es6.number.to-fixed');\nrequire('./modules/es6.number.to-precision');\nrequire('./modules/es6.number.epsilon');\nrequire('./modules/es6.number.is-finite');\nrequire('./modules/es6.number.is-integer');\nrequire('./modules/es6.number.is-nan');\nrequire('./modules/es6.number.is-safe-integer');\nrequire('./modules/es6.number.max-safe-integer');\nrequire('./modules/es6.number.min-safe-integer');\nrequire('./modules/es6.number.parse-float');\nrequire('./modules/es6.number.parse-int');\nrequire('./modules/es6.math.acosh');\nrequire('./modules/es6.math.asinh');\nrequire('./modules/es6.math.atanh');\nrequire('./modules/es6.math.cbrt');\nrequire('./modules/es6.math.clz32');\nrequire('./modules/es6.math.cosh');\nrequire('./modules/es6.math.expm1');\nrequire('./modules/es6.math.fround');\nrequire('./modules/es6.math.hypot');\nrequire('./modules/es6.math.imul');\nrequire('./modules/es6.math.log10');\nrequire('./modules/es6.math.log1p');\nrequire('./modules/es6.math.log2');\nrequire('./modules/es6.math.sign');\nrequire('./modules/es6.math.sinh');\nrequire('./modules/es6.math.tanh');\nrequire('./modules/es6.math.trunc');\nrequire('./modules/es6.string.from-code-point');\nrequire('./modules/es6.string.raw');\nrequire('./modules/es6.string.trim');\nrequire('./modules/es6.string.iterator');\nrequire('./modules/es6.string.code-point-at');\nrequire('./modules/es6.string.ends-with');\nrequire('./modules/es6.string.includes');\nrequire('./modules/es6.string.repeat');\nrequire('./modules/es6.string.starts-with');\nrequire('./modules/es6.string.anchor');\nrequire('./modules/es6.string.big');\nrequire('./modules/es6.string.blink');\nrequire('./modules/es6.string.bold');\nrequire('./modules/es6.string.fixed');\nrequire('./modules/es6.string.fontcolor');\nrequire('./modules/es6.string.fontsize');\nrequire('./modules/es6.string.italics');\nrequire('./modules/es6.string.link');\nrequire('./modules/es6.string.small');\nrequire('./modules/es6.string.strike');\nrequire('./modules/es6.string.sub');\nrequire('./modules/es6.string.sup');\nrequire('./modules/es6.date.now');\nrequire('./modules/es6.date.to-json');\nrequire('./modules/es6.date.to-iso-string');\nrequire('./modules/es6.date.to-string');\nrequire('./modules/es6.date.to-primitive');\nrequire('./modules/es6.array.is-array');\nrequire('./modules/es6.array.from');\nrequire('./modules/es6.array.of');\nrequire('./modules/es6.array.join');\nrequire('./modules/es6.array.slice');\nrequire('./modules/es6.array.sort');\nrequire('./modules/es6.array.for-each');\nrequire('./modules/es6.array.map');\nrequire('./modules/es6.array.filter');\nrequire('./modules/es6.array.some');\nrequire('./modules/es6.array.every');\nrequire('./modules/es6.array.reduce');\nrequire('./modules/es6.array.reduce-right');\nrequire('./modules/es6.array.index-of');\nrequire('./modules/es6.array.last-index-of');\nrequire('./modules/es6.array.copy-within');\nrequire('./modules/es6.array.fill');\nrequire('./modules/es6.array.find');\nrequire('./modules/es6.array.find-index');\nrequire('./modules/es6.array.species');\nrequire('./modules/es6.array.iterator');\nrequire('./modules/es6.regexp.constructor');\nrequire('./modules/es6.regexp.exec');\nrequire('./modules/es6.regexp.to-string');\nrequire('./modules/es6.regexp.flags');\nrequire('./modules/es6.regexp.match');\nrequire('./modules/es6.regexp.replace');\nrequire('./modules/es6.regexp.search');\nrequire('./modules/es6.regexp.split');\nrequire('./modules/es6.promise');\nrequire('./modules/es6.map');\nrequire('./modules/es6.set');\nrequire('./modules/es6.weak-map');\nrequire('./modules/es6.weak-set');\nrequire('./modules/es6.typed.array-buffer');\nrequire('./modules/es6.typed.data-view');\nrequire('./modules/es6.typed.int8-array');\nrequire('./modules/es6.typed.uint8-array');\nrequire('./modules/es6.typed.uint8-clamped-array');\nrequire('./modules/es6.typed.int16-array');\nrequire('./modules/es6.typed.uint16-array');\nrequire('./modules/es6.typed.int32-array');\nrequire('./modules/es6.typed.uint32-array');\nrequire('./modules/es6.typed.float32-array');\nrequire('./modules/es6.typed.float64-array');\nrequire('./modules/es6.reflect.apply');\nrequire('./modules/es6.reflect.construct');\nrequire('./modules/es6.reflect.define-property');\nrequire('./modules/es6.reflect.delete-property');\nrequire('./modules/es6.reflect.enumerate');\nrequire('./modules/es6.reflect.get');\nrequire('./modules/es6.reflect.get-own-property-descriptor');\nrequire('./modules/es6.reflect.get-prototype-of');\nrequire('./modules/es6.reflect.has');\nrequire('./modules/es6.reflect.is-extensible');\nrequire('./modules/es6.reflect.own-keys');\nrequire('./modules/es6.reflect.prevent-extensions');\nrequire('./modules/es6.reflect.set');\nrequire('./modules/es6.reflect.set-prototype-of');\nrequire('./modules/es7.array.includes');\nrequire('./modules/es7.array.flat-map');\nrequire('./modules/es7.array.flatten');\nrequire('./modules/es7.string.at');\nrequire('./modules/es7.string.pad-start');\nrequire('./modules/es7.string.pad-end');\nrequire('./modules/es7.string.trim-left');\nrequire('./modules/es7.string.trim-right');\nrequire('./modules/es7.string.match-all');\nrequire('./modules/es7.symbol.async-iterator');\nrequire('./modules/es7.symbol.observable');\nrequire('./modules/es7.object.get-own-property-descriptors');\nrequire('./modules/es7.object.values');\nrequire('./modules/es7.object.entries');\nrequire('./modules/es7.object.define-getter');\nrequire('./modules/es7.object.define-setter');\nrequire('./modules/es7.object.lookup-getter');\nrequire('./modules/es7.object.lookup-setter');\nrequire('./modules/es7.map.to-json');\nrequire('./modules/es7.set.to-json');\nrequire('./modules/es7.map.of');\nrequire('./modules/es7.set.of');\nrequire('./modules/es7.weak-map.of');\nrequire('./modules/es7.weak-set.of');\nrequire('./modules/es7.map.from');\nrequire('./modules/es7.set.from');\nrequire('./modules/es7.weak-map.from');\nrequire('./modules/es7.weak-set.from');\nrequire('./modules/es7.global');\nrequire('./modules/es7.system.global');\nrequire('./modules/es7.error.is-error');\nrequire('./modules/es7.math.clamp');\nrequire('./modules/es7.math.deg-per-rad');\nrequire('./modules/es7.math.degrees');\nrequire('./modules/es7.math.fscale');\nrequire('./modules/es7.math.iaddh');\nrequire('./modules/es7.math.isubh');\nrequire('./modules/es7.math.imulh');\nrequire('./modules/es7.math.rad-per-deg');\nrequire('./modules/es7.math.radians');\nrequire('./modules/es7.math.scale');\nrequire('./modules/es7.math.umulh');\nrequire('./modules/es7.math.signbit');\nrequire('./modules/es7.promise.finally');\nrequire('./modules/es7.promise.try');\nrequire('./modules/es7.reflect.define-metadata');\nrequire('./modules/es7.reflect.delete-metadata');\nrequire('./modules/es7.reflect.get-metadata');\nrequire('./modules/es7.reflect.get-metadata-keys');\nrequire('./modules/es7.reflect.get-own-metadata');\nrequire('./modules/es7.reflect.get-own-metadata-keys');\nrequire('./modules/es7.reflect.has-metadata');\nrequire('./modules/es7.reflect.has-own-metadata');\nrequire('./modules/es7.reflect.metadata');\nrequire('./modules/es7.asap');\nrequire('./modules/es7.observable');\nrequire('./modules/web.timers');\nrequire('./modules/web.immediate');\nrequire('./modules/web.dom.iterable');\nmodule.exports = require('./modules/_core');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/shim.js\n// module id = 743\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/aes.js\n// module id = 744\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/enc-utf16.js\n// module id = 745\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/format-hex.js\n// module id = 746\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/index.js\n// module id = 747\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/lib-typedarrays.js\n// module id = 748\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t var keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t var keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-cfb.js\n// module id = 749\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-ctr-gladman.js\n// module id = 750\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-ctr.js\n// module id = 751\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-ecb.js\n// module id = 752\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/mode-ofb.js\n// module id = 753\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-ansix923.js\n// module id = 754\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-iso10126.js\n// module id = 755\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-iso97971.js\n// module id = 756\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-nopadding.js\n// module id = 757\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t i--;\n\t }\n\t data.sigBytes = i + 1;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pad-zeropadding.js\n// module id = 758\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA1 = C_algo.SHA1;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA1\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA1,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/pbkdf2.js\n// module id = 759\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/rabbit-legacy.js\n// module id = 760\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/rabbit.js\n// module id = 761\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/rc4.js\n// module id = 762\n// module chunks = 0",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<<n) | (x>>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/ripemd160.js\n// module id = 763\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha224.js\n// module id = 764\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha3.js\n// module id = 765\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/sha384.js\n// module id = 766\n// module chunks = 0",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2)));\n\t this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4)));\n\t this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6)));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/crypto-js/tripledes.js\n// module id = 767\n// module chunks = 0","\"use strict\";\n\nvar isValue = require(\"type/value/is\")\n , isPlainFunction = require(\"type/plain-function/is\")\n , assign = require(\"es5-ext/object/assign\")\n , normalizeOpts = require(\"es5-ext/object/normalize-options\")\n , contains = require(\"es5-ext/string/#/contains\");\n\nvar d = (module.exports = function (dscr, value/*, options*/) {\n\tvar c, e, w, options, desc;\n\tif (arguments.length < 2 || typeof dscr !== \"string\") {\n\t\toptions = value;\n\t\tvalue = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[2];\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t\tw = contains.call(dscr, \"w\");\n\t} else {\n\t\tc = w = true;\n\t\te = false;\n\t}\n\n\tdesc = { value: value, configurable: c, enumerable: e, writable: w };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n});\n\nd.gs = function (dscr, get, set/*, options*/) {\n\tvar c, e, options, desc;\n\tif (typeof dscr !== \"string\") {\n\t\toptions = set;\n\t\tset = get;\n\t\tget = dscr;\n\t\tdscr = null;\n\t} else {\n\t\toptions = arguments[3];\n\t}\n\tif (!isValue(get)) {\n\t\tget = undefined;\n\t} else if (!isPlainFunction(get)) {\n\t\toptions = get;\n\t\tget = set = undefined;\n\t} else if (!isValue(set)) {\n\t\tset = undefined;\n\t} else if (!isPlainFunction(set)) {\n\t\toptions = set;\n\t\tset = undefined;\n\t}\n\tif (isValue(dscr)) {\n\t\tc = contains.call(dscr, \"c\");\n\t\te = contains.call(dscr, \"e\");\n\t} else {\n\t\tc = true;\n\t\te = false;\n\t}\n\n\tdesc = { get: get, set: set, configurable: c, enumerable: e };\n\treturn !options ? desc : assign(normalizeOpts(options), desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/d/index.js\n// module id = 768\n// module chunks = 0","/*!\n * deep-diff.\n * Licensed under the MIT License.\n */\n;(function(root, factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function() {\n return factory();\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.DeepDiff = factory();\n }\n}(this, function(undefined) {\n 'use strict';\n\n var $scope, conflict, conflictResolution = [];\n if (typeof global === 'object' && global) {\n $scope = global;\n } else if (typeof window !== 'undefined') {\n $scope = window;\n } else {\n $scope = {};\n }\n conflict = $scope.DeepDiff;\n if (conflict) {\n conflictResolution.push(\n function() {\n if ('undefined' !== typeof conflict && $scope.DeepDiff === accumulateDiff) {\n $scope.DeepDiff = conflict;\n conflict = undefined;\n }\n });\n }\n\n // nodejs compatible on server side and in the browser.\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n\n function Diff(kind, path) {\n Object.defineProperty(this, 'kind', {\n value: kind,\n enumerable: true\n });\n if (path && path.length) {\n Object.defineProperty(this, 'path', {\n value: path,\n enumerable: true\n });\n }\n }\n\n function DiffEdit(path, origin, value) {\n DiffEdit.super_.call(this, 'E', path);\n Object.defineProperty(this, 'lhs', {\n value: origin,\n enumerable: true\n });\n Object.defineProperty(this, 'rhs', {\n value: value,\n enumerable: true\n });\n }\n inherits(DiffEdit, Diff);\n\n function DiffNew(path, value) {\n DiffNew.super_.call(this, 'N', path);\n Object.defineProperty(this, 'rhs', {\n value: value,\n enumerable: true\n });\n }\n inherits(DiffNew, Diff);\n\n function DiffDeleted(path, value) {\n DiffDeleted.super_.call(this, 'D', path);\n Object.defineProperty(this, 'lhs', {\n value: value,\n enumerable: true\n });\n }\n inherits(DiffDeleted, Diff);\n\n function DiffArray(path, index, item) {\n DiffArray.super_.call(this, 'A', path);\n Object.defineProperty(this, 'index', {\n value: index,\n enumerable: true\n });\n Object.defineProperty(this, 'item', {\n value: item,\n enumerable: true\n });\n }\n inherits(DiffArray, Diff);\n\n function arrayRemove(arr, from, to) {\n var rest = arr.slice((to || from) + 1 || arr.length);\n arr.length = from < 0 ? arr.length + from : from;\n arr.push.apply(arr, rest);\n return arr;\n }\n\n function realTypeOf(subject) {\n var type = typeof subject;\n if (type !== 'object') {\n return type;\n }\n\n if (subject === Math) {\n return 'math';\n } else if (subject === null) {\n return 'null';\n } else if (Array.isArray(subject)) {\n return 'array';\n } else if (Object.prototype.toString.call(subject) === '[object Date]') {\n return 'date';\n } else if (typeof subject.toString !== 'undefined' && /^\\/.*\\//.test(subject.toString())) {\n return 'regexp';\n }\n return 'object';\n }\n\n function deepDiff(lhs, rhs, changes, prefilter, path, key, stack) {\n path = path || [];\n var currentPath = path.slice(0);\n if (typeof key !== 'undefined') {\n if (prefilter) {\n if (typeof(prefilter) === 'function' && prefilter(currentPath, key)) { return; }\n else if (typeof(prefilter) === 'object') {\n if (prefilter.prefilter && prefilter.prefilter(currentPath, key)) { return; }\n if (prefilter.normalize) {\n var alt = prefilter.normalize(currentPath, key, lhs, rhs);\n if (alt) {\n lhs = alt[0];\n rhs = alt[1];\n }\n }\n }\n }\n currentPath.push(key);\n }\n\n // Use string comparison for regexes\n if (realTypeOf(lhs) === 'regexp' && realTypeOf(rhs) === 'regexp') {\n lhs = lhs.toString();\n rhs = rhs.toString();\n }\n\n var ltype = typeof lhs;\n var rtype = typeof rhs;\n if (ltype === 'undefined') {\n if (rtype !== 'undefined') {\n changes(new DiffNew(currentPath, rhs));\n }\n } else if (rtype === 'undefined') {\n changes(new DiffDeleted(currentPath, lhs));\n } else if (realTypeOf(lhs) !== realTypeOf(rhs)) {\n changes(new DiffEdit(currentPath, lhs, rhs));\n } else if (Object.prototype.toString.call(lhs) === '[object Date]' && Object.prototype.toString.call(rhs) === '[object Date]' && ((lhs - rhs) !== 0)) {\n changes(new DiffEdit(currentPath, lhs, rhs));\n } else if (ltype === 'object' && lhs !== null && rhs !== null) {\n stack = stack || [];\n if (stack.indexOf(lhs) < 0) {\n stack.push(lhs);\n if (Array.isArray(lhs)) {\n var i, len = lhs.length;\n for (i = 0; i < lhs.length; i++) {\n if (i >= rhs.length) {\n changes(new DiffArray(currentPath, i, new DiffDeleted(undefined, lhs[i])));\n } else {\n deepDiff(lhs[i], rhs[i], changes, prefilter, currentPath, i, stack);\n }\n }\n while (i < rhs.length) {\n changes(new DiffArray(currentPath, i, new DiffNew(undefined, rhs[i++])));\n }\n } else {\n var akeys = Object.keys(lhs);\n var pkeys = Object.keys(rhs);\n akeys.forEach(function(k, i) {\n var other = pkeys.indexOf(k);\n if (other >= 0) {\n deepDiff(lhs[k], rhs[k], changes, prefilter, currentPath, k, stack);\n pkeys = arrayRemove(pkeys, other);\n } else {\n deepDiff(lhs[k], undefined, changes, prefilter, currentPath, k, stack);\n }\n });\n pkeys.forEach(function(k) {\n deepDiff(undefined, rhs[k], changes, prefilter, currentPath, k, stack);\n });\n }\n stack.length = stack.length - 1;\n }\n } else if (lhs !== rhs) {\n if (!(ltype === 'number' && isNaN(lhs) && isNaN(rhs))) {\n changes(new DiffEdit(currentPath, lhs, rhs));\n }\n }\n }\n\n function accumulateDiff(lhs, rhs, prefilter, accum) {\n accum = accum || [];\n deepDiff(lhs, rhs,\n function(diff) {\n if (diff) {\n accum.push(diff);\n }\n },\n prefilter);\n return (accum.length) ? accum : undefined;\n }\n\n function applyArrayChange(arr, index, change) {\n if (change.path && change.path.length) {\n var it = arr[index],\n i, u = change.path.length - 1;\n for (i = 0; i < u; i++) {\n it = it[change.path[i]];\n }\n switch (change.kind) {\n case 'A':\n applyArrayChange(it[change.path[i]], change.index, change.item);\n break;\n case 'D':\n delete it[change.path[i]];\n break;\n case 'E':\n case 'N':\n it[change.path[i]] = change.rhs;\n break;\n }\n } else {\n switch (change.kind) {\n case 'A':\n applyArrayChange(arr[index], change.index, change.item);\n break;\n case 'D':\n arr = arrayRemove(arr, index);\n break;\n case 'E':\n case 'N':\n arr[index] = change.rhs;\n break;\n }\n }\n return arr;\n }\n\n function applyChange(target, source, change) {\n if (target && source && change && change.kind) {\n var it = target,\n i = -1,\n last = change.path ? change.path.length - 1 : 0;\n while (++i < last) {\n if (typeof it[change.path[i]] === 'undefined') {\n it[change.path[i]] = (typeof change.path[i] === 'number') ? [] : {};\n }\n it = it[change.path[i]];\n }\n switch (change.kind) {\n case 'A':\n applyArrayChange(change.path ? it[change.path[i]] : it, change.index, change.item);\n break;\n case 'D':\n delete it[change.path[i]];\n break;\n case 'E':\n case 'N':\n it[change.path[i]] = change.rhs;\n break;\n }\n }\n }\n\n function revertArrayChange(arr, index, change) {\n if (change.path && change.path.length) {\n // the structure of the object at the index has changed...\n var it = arr[index],\n i, u = change.path.length - 1;\n for (i = 0; i < u; i++) {\n it = it[change.path[i]];\n }\n switch (change.kind) {\n case 'A':\n revertArrayChange(it[change.path[i]], change.index, change.item);\n break;\n case 'D':\n it[change.path[i]] = change.lhs;\n break;\n case 'E':\n it[change.path[i]] = change.lhs;\n break;\n case 'N':\n delete it[change.path[i]];\n break;\n }\n } else {\n // the array item is different...\n switch (change.kind) {\n case 'A':\n revertArrayChange(arr[index], change.index, change.item);\n break;\n case 'D':\n arr[index] = change.lhs;\n break;\n case 'E':\n arr[index] = change.lhs;\n break;\n case 'N':\n arr = arrayRemove(arr, index);\n break;\n }\n }\n return arr;\n }\n\n function revertChange(target, source, change) {\n if (target && source && change && change.kind) {\n var it = target,\n i, u;\n u = change.path.length - 1;\n for (i = 0; i < u; i++) {\n if (typeof it[change.path[i]] === 'undefined') {\n it[change.path[i]] = {};\n }\n it = it[change.path[i]];\n }\n switch (change.kind) {\n case 'A':\n // Array was modified...\n // it will be an array...\n revertArrayChange(it[change.path[i]], change.index, change.item);\n break;\n case 'D':\n // Item was deleted...\n it[change.path[i]] = change.lhs;\n break;\n case 'E':\n // Item was edited...\n it[change.path[i]] = change.lhs;\n break;\n case 'N':\n // Item is new...\n delete it[change.path[i]];\n break;\n }\n }\n }\n\n function applyDiff(target, source, filter) {\n if (target && source) {\n var onChange = function(change) {\n if (!filter || filter(target, source, change)) {\n applyChange(target, source, change);\n }\n };\n deepDiff(target, source, onChange);\n }\n }\n\n Object.defineProperties(accumulateDiff, {\n\n diff: {\n value: accumulateDiff,\n enumerable: true\n },\n observableDiff: {\n value: deepDiff,\n enumerable: true\n },\n applyDiff: {\n value: applyDiff,\n enumerable: true\n },\n applyChange: {\n value: applyChange,\n enumerable: true\n },\n revertChange: {\n value: revertChange,\n enumerable: true\n },\n isConflict: {\n value: function() {\n return 'undefined' !== typeof conflict;\n },\n enumerable: true\n },\n noConflict: {\n value: function() {\n if (conflictResolution) {\n conflictResolution.forEach(function(it) {\n it();\n });\n conflictResolution = null;\n }\n return accumulateDiff;\n },\n enumerable: true\n }\n });\n\n return accumulateDiff;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/deep-diff/index.js\n// module id = 769\n// module chunks = 0","\"use strict\";\n\n// eslint-disable-next-line no-empty-function\nmodule.exports = function () {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/function/noop.js\n// module id = 770\n// module chunks = 0","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.assign : require(\"./shim\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/assign/index.js\n// module id = 771\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/assign/is-implemented.js\n// module id = 772\n// module chunks = 0","\"use strict\";\n\nvar keys = require(\"../keys\")\n , value = require(\"../valid-value\")\n , max = Math.max;\n\nmodule.exports = function (dest, src/*, …srcn*/) {\n\tvar error, i, length = max(arguments.length, 2), assign;\n\tdest = Object(value(dest));\n\tassign = function (key) {\n\t\ttry {\n\t\t\tdest[key] = src[key];\n\t\t} catch (e) {\n\t\t\tif (!error) error = e;\n\t\t}\n\t};\n\tfor (i = 1; i < length; ++i) {\n\t\tsrc = arguments[i];\n\t\tkeys(src).forEach(assign);\n\t}\n\tif (error !== undefined) throw error;\n\treturn dest;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/assign/shim.js\n// module id = 773\n// module chunks = 0","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? Object.keys : require(\"./shim\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/keys/index.js\n// module id = 774\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function () {\n\ttry {\n\t\tObject.keys(\"primitive\");\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/keys/is-implemented.js\n// module id = 775\n// module chunks = 0","\"use strict\";\n\nvar isValue = require(\"../is-value\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/keys/shim.js\n// module id = 776\n// module chunks = 0","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nvar forEach = Array.prototype.forEach, create = Object.create;\n\nvar process = function (src, obj) {\n\tvar key;\n\tfor (key in src) obj[key] = src[key];\n};\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function (opts1/*, …options*/) {\n\tvar result = create(null);\n\tforEach.call(arguments, function (options) {\n\t\tif (!isValue(options)) return;\n\t\tprocess(Object(options), result);\n\t});\n\treturn result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/normalize-options.js\n// module id = 777\n// module chunks = 0","\"use strict\";\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/valid-callable.js\n// module id = 778\n// module chunks = 0","\"use strict\";\n\nvar isValue = require(\"./is-value\");\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n\treturn value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/object/valid-value.js\n// module id = 779\n// module chunks = 0","\"use strict\";\n\nmodule.exports = require(\"./is-implemented\")() ? String.prototype.contains : require(\"./shim\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/string/#/contains/index.js\n// module id = 780\n// module chunks = 0","\"use strict\";\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/string/#/contains/is-implemented.js\n// module id = 781\n// module chunks = 0","\"use strict\";\n\nvar indexOf = String.prototype.indexOf;\n\nmodule.exports = function (searchString/*, position*/) {\n\treturn indexOf.call(this, searchString, arguments[1]) > -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es5-ext/string/#/contains/shim.js\n// module id = 782\n// module chunks = 0","'use strict';\n\nvar d = require('d')\n , callable = require('es5-ext/object/valid-callable')\n\n , apply = Function.prototype.apply, call = Function.prototype.call\n , create = Object.create, defineProperty = Object.defineProperty\n , defineProperties = Object.defineProperties\n , hasOwnProperty = Object.prototype.hasOwnProperty\n , descriptor = { configurable: true, enumerable: false, writable: true }\n\n , on, once, off, emit, methods, descriptors, base;\n\non = function (type, listener) {\n\tvar data;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) {\n\t\tdata = descriptor.value = create(null);\n\t\tdefineProperty(this, '__ee__', descriptor);\n\t\tdescriptor.value = null;\n\t} else {\n\t\tdata = this.__ee__;\n\t}\n\tif (!data[type]) data[type] = listener;\n\telse if (typeof data[type] === 'object') data[type].push(listener);\n\telse data[type] = [data[type], listener];\n\n\treturn this;\n};\n\nonce = function (type, listener) {\n\tvar once, self;\n\n\tcallable(listener);\n\tself = this;\n\ton.call(this, type, once = function () {\n\t\toff.call(self, type, once);\n\t\tapply.call(listener, this, arguments);\n\t});\n\n\tonce.__eeOnceListener__ = listener;\n\treturn this;\n};\n\noff = function (type, listener) {\n\tvar data, listeners, candidate, i;\n\n\tcallable(listener);\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return this;\n\tdata = this.__ee__;\n\tif (!data[type]) return this;\n\tlisteners = data[type];\n\n\tif (typeof listeners === 'object') {\n\t\tfor (i = 0; (candidate = listeners[i]); ++i) {\n\t\t\tif ((candidate === listener) ||\n\t\t\t\t\t(candidate.__eeOnceListener__ === listener)) {\n\t\t\t\tif (listeners.length === 2) data[type] = listeners[i ? 0 : 1];\n\t\t\t\telse listeners.splice(i, 1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ((listeners === listener) ||\n\t\t\t\t(listeners.__eeOnceListener__ === listener)) {\n\t\t\tdelete data[type];\n\t\t}\n\t}\n\n\treturn this;\n};\n\nemit = function (type) {\n\tvar i, l, listener, listeners, args;\n\n\tif (!hasOwnProperty.call(this, '__ee__')) return;\n\tlisteners = this.__ee__[type];\n\tif (!listeners) return;\n\n\tif (typeof listeners === 'object') {\n\t\tl = arguments.length;\n\t\targs = new Array(l - 1);\n\t\tfor (i = 1; i < l; ++i) args[i - 1] = arguments[i];\n\n\t\tlisteners = listeners.slice();\n\t\tfor (i = 0; (listener = listeners[i]); ++i) {\n\t\t\tapply.call(listener, this, args);\n\t\t}\n\t} else {\n\t\tswitch (arguments.length) {\n\t\tcase 1:\n\t\t\tcall.call(listeners, this);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tcall.call(listeners, this, arguments[1]);\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tcall.call(listeners, this, arguments[1], arguments[2]);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tl = arguments.length;\n\t\t\targs = new Array(l - 1);\n\t\t\tfor (i = 1; i < l; ++i) {\n\t\t\t\targs[i - 1] = arguments[i];\n\t\t\t}\n\t\t\tapply.call(listeners, this, args);\n\t\t}\n\t}\n};\n\nmethods = {\n\ton: on,\n\tonce: once,\n\toff: off,\n\temit: emit\n};\n\ndescriptors = {\n\ton: d(on),\n\tonce: d(once),\n\toff: d(off),\n\temit: d(emit)\n};\n\nbase = defineProperties({}, descriptors);\n\nmodule.exports = exports = function (o) {\n\treturn (o == null) ? create(base) : defineProperties(Object(o), descriptors);\n};\nexports.methods = methods;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/event-emitter/index.js\n// module id = 783\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/AboutComponents/AboutComponents.scss\n// module id = 784\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/AccountInfo/AccountInfo.scss\n// module id = 785\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/AddStudent/AddStudent.scss\n// module id = 786\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Alert/Alert.scss\n// module id = 787\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/AppBanner/AppBanner.scss\n// module id = 788\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Card/Card.scss\n// module id = 789\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Cart/Cart.scss\n// module id = 790\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/ExistingAccount/ExistingAccount.scss\n// module id = 791\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/ExistingPayment/ExistingPayment.scss\n// module id = 792\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/FeeCard/FeeCard.scss\n// module id = 793\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/FeeInfo/FeeInfo.scss\n// module id = 794\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/ForgotPassword/ForgotPassword.scss\n// module id = 795\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/ForgotUsername/ForgotUsername.scss\n// module id = 796\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Header/Header.scss\n// module id = 797\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/LeftCol/LeftCol.scss\n// module id = 798\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Loader/Loader.scss\n// module id = 799\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/MobileLogin/MobileLogin.scss\n// module id = 800\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/ACHValidation/ACHValidation.scss\n// module id = 801\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/AreYouSure/AreYouSure.scss\n// module id = 802\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/CheckValidation/CheckValidation.scss\n// module id = 803\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/Confirmation/Confirmation.scss\n// module id = 804\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/CoppaValidation/CoppaValidation.scss\n// module id = 805\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/Deposit/Deposit.scss\n// module id = 806\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/District/District.scss\n// module id = 807\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/Error/Error.scss\n// module id = 808\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/MasterOption/MasterOption.scss\n// module id = 809\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/Modal/Modal.scss\n// module id = 810\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/Reauth/Reauth.scss\n// module id = 811\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/SchPause/SchPause.scss\n// module id = 812\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/Warning/Warning.scss\n// module id = 813\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/NavLink/NavLink.scss\n// module id = 814\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/NewPayment/NewPayment.scss\n// module id = 815\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/PaymentInfo/PaymentInfo.scss\n// module id = 816\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Receipt/Receipt.scss\n// module id = 817\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/RightCol/RightCol.scss\n// module id = 818\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/SinglePage/SinglePage.scss\n// module id = 819\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/StudentInfo/StudentInfo.scss\n// module id = 820\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/SubSetting/SubSetting.scss\n// module id = 821\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/ToggleLoader/ToggleLoader.scss\n// module id = 822\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Toggle/Toggle.scss\n// module id = 823\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/ToolTip/ToolTip.scss\n// module id = 824\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/UserInfo/UserInfo.scss\n// module id = 825\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/Accounts/Accounts.scss\n// module id = 826\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/Forgot/Forgot.scss\n// module id = 827\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/PublicAboutUs/PublicAboutUS.scss\n// module id = 828\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/Receipts/Receipts.scss\n// module id = 829\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/Register/Register.scss\n// module id = 830\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/Reports/Reports.scss\n// module id = 831\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/Settings/Settings.scss\n// module id = 832\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/SignedOutSuccess/SignedOutSuccess.scss\n// module id = 833\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/Support/Support.scss\n// module id = 834\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/routes/Terms/Terms.scss\n// module id = 835\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/scss/animations.scss\n// module id = 836\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/scss/index.scss\n// module id = 837\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/scss/text-scale.scss\n// module id = 838\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/scss/themes.scss\n// module id = 839\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/components/App/App.scss\n// module id = 840\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/components/DesktopLogin/DesktopLogin.scss\n// module id = 841\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/components/MenuAlert/MenuAlert.scss\n// module id = 842\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/components/Subscriptions/Subscriptions_alpha.scss\n// module id = 843\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/routes/Dashboard/Dashboard.scss\n// module id = 844\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/routes/Fees/Fees.scss\n// module id = 845\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/routes/Login/Login.scss\n// module id = 846\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/parent/routes/ScheduleDeposit/ScheduleDeposit.scss\n// module id = 847\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/camelize.js\n// module id = 848\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/camelizeStyleName.js\n// module id = 849\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/containsNode.js\n// module id = 850\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = require('./invariant');\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n\n !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/createArrayFromMixed.js\n// module id = 851\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar createArrayFromMixed = require('./createArrayFromMixed');\nvar getMarkupWrap = require('./getMarkupWrap');\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n var node = dummyNode;\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0;\n var nodeName = getNodeName(markup);\n\n var wrap = nodeName && getMarkupWrap(nodeName);\n if (wrap) {\n node.innerHTML = wrap[1] + markup + wrap[2];\n\n var wrapDepth = wrap[0];\n while (wrapDepth--) {\n node = node.lastChild;\n }\n } else {\n node.innerHTML = markup;\n }\n\n var scripts = node.getElementsByTagName('script');\n if (scripts.length) {\n !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = Array.from(node.childNodes);\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/createNodesFromMarkup.js\n// module id = 852\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n '*': [1, '?<div>', '</div>'],\n\n 'area': [1, '<map>', '</map>'],\n 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n 'legend': [1, '<fieldset>', '</fieldset>'],\n 'param': [1, '<object>', '</object>'],\n 'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n 'optgroup': selectWrap,\n 'option': selectWrap,\n\n 'caption': tableWrap,\n 'colgroup': tableWrap,\n 'tbody': tableWrap,\n 'tfoot': tableWrap,\n 'thead': tableWrap,\n\n 'td': trWrap,\n 'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n markupWrap[nodeName] = svgWrap;\n shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0;\n if (!markupWrap.hasOwnProperty(nodeName)) {\n nodeName = '*';\n }\n if (!shouldWrap.hasOwnProperty(nodeName)) {\n if (nodeName === '*') {\n dummyNode.innerHTML = '<link />';\n } else {\n dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n }\n shouldWrap[nodeName] = !dummyNode.firstChild;\n }\n return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/getMarkupWrap.js\n// module id = 853\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n return {\n x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,\n y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop\n };\n }\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/getUnboundedScrollPosition.js\n// module id = 854\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/hyphenate.js\n// module id = 855\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/hyphenateStyleName.js\n// module id = 856\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/isNode.js\n// module id = 857\n// module chunks = 0","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/isTextNode.js\n// module id = 858\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\n\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function (string) {\n if (!cache.hasOwnProperty(string)) {\n cache[string] = callback.call(this, string);\n }\n return cache[string];\n };\n}\n\nmodule.exports = memoizeStringOnly;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/memoizeStringOnly.js\n// module id = 859\n// module chunks = 0","var tabbable = require('tabbable');\n\nvar listeningFocusTrap = null;\n\nfunction focusTrap(element, userOptions) {\n var tabbableNodes = [];\n var firstTabbableNode = null;\n var lastTabbableNode = null;\n var nodeFocusedBeforeActivation = null;\n var active = false;\n var paused = false;\n var tabEvent = null;\n\n var container = (typeof element === 'string')\n ? document.querySelector(element)\n : element;\n\n var config = userOptions || {};\n config.returnFocusOnDeactivate = (userOptions && userOptions.returnFocusOnDeactivate !== undefined)\n ? userOptions.returnFocusOnDeactivate\n : true;\n config.escapeDeactivates = (userOptions && userOptions.escapeDeactivates !== undefined)\n ? userOptions.escapeDeactivates\n : true;\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause,\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (active) return;\n\n var defaultedActivateOptions = {\n onActivate: (activateOptions && activateOptions.onActivate !== undefined)\n ? activateOptions.onActivate\n : config.onActivate,\n };\n\n active = true;\n paused = false;\n nodeFocusedBeforeActivation = document.activeElement;\n\n if (defaultedActivateOptions.onActivate) {\n defaultedActivateOptions.onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!active) return;\n\n var defaultedDeactivateOptions = {\n returnFocus: (deactivateOptions && deactivateOptions.returnFocus !== undefined)\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate,\n onDeactivate: (deactivateOptions && deactivateOptions.onDeactivate !== undefined)\n ? deactivateOptions.onDeactivate\n : config.onDeactivate,\n };\n\n removeListeners();\n\n if (defaultedDeactivateOptions.onDeactivate) {\n defaultedDeactivateOptions.onDeactivate();\n }\n\n if (defaultedDeactivateOptions.returnFocus) {\n setTimeout(function () {\n tryFocus(nodeFocusedBeforeActivation);\n }, 0);\n }\n\n active = false;\n paused = false;\n return this;\n }\n\n function pause() {\n if (paused || !active) return;\n paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!paused || !active) return;\n paused = false;\n addListeners();\n }\n\n function addListeners() {\n if (!active) return;\n\n // There can be only one listening focus trap at a time\n if (listeningFocusTrap) {\n listeningFocusTrap.pause();\n }\n listeningFocusTrap = trap;\n\n updateTabbableNodes();\n // Ensure that the focused element doesn't capture the event that caused the focus trap activation\n setTimeout(function () {\n tryFocus(firstFocusNode());\n }, 0);\n document.addEventListener('focus', checkFocus, true);\n document.addEventListener('click', checkClick, true);\n document.addEventListener('mousedown', checkPointerDown, true);\n document.addEventListener('touchstart', checkPointerDown, true);\n document.addEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function removeListeners() {\n if (!active || listeningFocusTrap !== trap) return;\n\n document.removeEventListener('focus', checkFocus, true);\n document.removeEventListener('click', checkClick, true);\n document.removeEventListener('mousedown', checkPointerDown, true);\n document.removeEventListener('touchstart', checkPointerDown, true);\n document.removeEventListener('keydown', checkKey, true);\n\n listeningFocusTrap = null;\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = document.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function firstFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(document.activeElement)) {\n node = document.activeElement;\n } else {\n node = tabbableNodes[0] || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error('You can\\'t have a focus-trap without at least one focusable element');\n }\n\n return node;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event\n function checkPointerDown(e) {\n if (config.clickOutsideDeactivates && !container.contains(e.target)) {\n deactivate({ returnFocus: false });\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function checkFocus(e) {\n if (container.contains(e.target)) return;\n e.preventDefault();\n e.stopImmediatePropagation();\n // Checking for a blur method here resolves a Firefox issue (#15)\n if (typeof e.target.blur === 'function') e.target.blur();\n\n if (tabEvent) {\n readjustFocus(tabEvent);\n }\n }\n\n function checkKey(e) {\n if (e.key === 'Tab' || e.keyCode === 9) {\n handleTab(e);\n }\n\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n deactivate();\n }\n }\n\n function handleTab(e) {\n updateTabbableNodes();\n\n if (e.target.hasAttribute('tabindex') && Number(e.target.getAttribute('tabindex')) < 0) {\n return tabEvent = e;\n }\n\n e.preventDefault();\n var currentFocusIndex = tabbableNodes.indexOf(e.target);\n\n if (e.shiftKey) {\n if (e.target === firstTabbableNode || tabbableNodes.indexOf(e.target) === -1) {\n return tryFocus(lastTabbableNode);\n }\n return tryFocus(tabbableNodes[currentFocusIndex - 1]);\n }\n\n if (e.target === lastTabbableNode) return tryFocus(firstTabbableNode);\n\n tryFocus(tabbableNodes[currentFocusIndex + 1]);\n }\n\n function updateTabbableNodes() {\n tabbableNodes = tabbable(container);\n firstTabbableNode = tabbableNodes[0];\n lastTabbableNode = tabbableNodes[tabbableNodes.length - 1];\n }\n\n function readjustFocus(e) {\n if (e.shiftKey) return tryFocus(lastTabbableNode);\n\n tryFocus(firstTabbableNode);\n }\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction tryFocus(node) {\n if (!node || !node.focus) return;\n if (node === document.activeElement) return;\n\n node.focus();\n if (node.tagName.toLowerCase() === 'input') {\n node.select();\n }\n}\n\nmodule.exports = focusTrap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/focus-trap/index.js\n// module id = 860\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, doneArgs);\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/AsyncUtils.js\n// module id = 861\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.replaceLocation = exports.pushLocation = exports.startListener = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar getHashPath = function getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation(pathCoder, queryKey) {\n var path = pathCoder.decodePath(getHashPath());\n var key = (0, _PathUtils.getQueryStringValueFromPath)(path, queryKey);\n\n var state = void 0;\n if (key) {\n path = (0, _PathUtils.stripQueryStringValueFromPath)(path, queryKey);\n state = (0, _DOMStateStorage.readState)(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n init.state = state;\n\n return (0, _LocationUtils.createLocation)(init, undefined, key);\n};\n\nvar prevLocation = void 0;\n\nvar startListener = exports.startListener = function startListener(listener, pathCoder, queryKey) {\n var handleHashChange = function handleHashChange() {\n var path = getHashPath();\n var encodedPath = pathCoder.encodePath(path);\n\n if (path !== encodedPath) {\n // Always be sure we have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var currentLocation = getCurrentLocation(pathCoder, queryKey);\n\n if (prevLocation && currentLocation.key && prevLocation.key === currentLocation.key) return; // Ignore extraneous hashchange events\n\n prevLocation = currentLocation;\n\n listener(currentLocation);\n }\n };\n\n // Ensure the hash is encoded properly.\n var path = getHashPath();\n var encodedPath = pathCoder.encodePath(path);\n\n if (path !== encodedPath) replaceHashPath(encodedPath);\n\n (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n };\n};\n\nvar updateLocation = function updateLocation(location, pathCoder, queryKey, updateHash) {\n var state = location.state,\n key = location.key;\n\n\n var path = pathCoder.encodePath((0, _PathUtils.createPath)(location));\n\n if (state !== undefined) {\n path = (0, _PathUtils.addQueryStringValueToPath)(path, queryKey, key);\n (0, _DOMStateStorage.saveState)(key, state);\n }\n\n prevLocation = location;\n\n updateHash(path);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location, pathCoder, queryKey) {\n return updateLocation(location, pathCoder, queryKey, function (path) {\n if (getHashPath() !== path) {\n pushHashPath(path);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'You cannot PUSH the same path using hash history') : void 0;\n }\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location, pathCoder, queryKey) {\n return updateLocation(location, pathCoder, queryKey, function (path) {\n if (getHashPath() !== path) replaceHashPath(path);\n });\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/HashProtocol.js\n// module id = 862\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/RefreshProtocol.js\n// module id = 863\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.Actions = exports.useQueries = exports.useBeforeUnload = exports.useBasename = exports.createMemoryHistory = exports.createHashHistory = exports.createHistory = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nObject.defineProperty(exports, 'locationsAreEqual', {\n enumerable: true,\n get: function get() {\n return _LocationUtils.locationsAreEqual;\n }\n});\n\nvar _createBrowserHistory = require('./createBrowserHistory');\n\nvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\nvar _createHashHistory2 = require('./createHashHistory');\n\nvar _createHashHistory3 = _interopRequireDefault(_createHashHistory2);\n\nvar _createMemoryHistory2 = require('./createMemoryHistory');\n\nvar _createMemoryHistory3 = _interopRequireDefault(_createMemoryHistory2);\n\nvar _useBasename2 = require('./useBasename');\n\nvar _useBasename3 = _interopRequireDefault(_useBasename2);\n\nvar _useBeforeUnload2 = require('./useBeforeUnload');\n\nvar _useBeforeUnload3 = _interopRequireDefault(_useBeforeUnload2);\n\nvar _useQueries2 = require('./useQueries');\n\nvar _useQueries3 = _interopRequireDefault(_useQueries2);\n\nvar _Actions2 = require('./Actions');\n\nvar _Actions = _interopRequireWildcard(_Actions2);\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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.createHistory = _createBrowserHistory2.default;\nexports.createHashHistory = _createHashHistory3.default;\nexports.createMemoryHistory = _createMemoryHistory3.default;\nexports.useBasename = _useBasename3.default;\nexports.useBeforeUnload = _useBeforeUnload3.default;\nexports.useQueries = _useQueries3.default;\nexports.Actions = _Actions;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/index.js\n// module id = 864\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar startListener = function startListener(getPromptMessage) {\n var handleBeforeUnload = function handleBeforeUnload(event) {\n var message = getPromptMessage();\n\n if (typeof message === 'string') {\n (event || window.event).returnValue = message;\n return message;\n }\n\n return undefined;\n };\n\n (0, _DOMUtils.addEventListener)(window, 'beforeunload', handleBeforeUnload);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, 'beforeunload', handleBeforeUnload);\n };\n};\n\n/**\n * Returns a new createHistory function that can be used to create\n * history objects that know how to use the beforeunload event in web\n * browsers to cancel navigation.\n */\nvar useBeforeUnload = function useBeforeUnload(createHistory) {\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'useBeforeUnload only works in DOM environments') : (0, _invariant2.default)(false) : void 0;\n\n return function (options) {\n var history = createHistory(options);\n\n var listeners = [];\n var stopListener = void 0;\n\n var getPromptMessage = function getPromptMessage() {\n var message = void 0;\n for (var i = 0, len = listeners.length; message == null && i < len; ++i) {\n message = listeners[i].call();\n }return message;\n };\n\n var listenBeforeUnload = function listenBeforeUnload(listener) {\n if (listeners.push(listener) === 1) stopListener = startListener(getPromptMessage);\n\n return function () {\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n\n if (listeners.length === 0 && stopListener) {\n stopListener();\n stopListener = null;\n }\n };\n };\n\n return _extends({}, history, {\n listenBeforeUnload: listenBeforeUnload\n });\n };\n};\n\nexports.default = useBeforeUnload;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/history/lib/useBeforeUnload.js\n// module id = 865\n// module chunks = 0","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/is-plain-object/index.js\n// module id = 866\n// module chunks = 0","'use strict';\n\nconst denyList = new Set([\n\t'ENOTFOUND',\n\t'ENETUNREACH',\n\n\t// SSL errors from https://github.com/nodejs/node/blob/fc8e3e2cdc521978351de257030db0076d79e0ab/src/crypto/crypto_common.cc#L301-L328\n\t'UNABLE_TO_GET_ISSUER_CERT',\n\t'UNABLE_TO_GET_CRL',\n\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t'CERT_SIGNATURE_FAILURE',\n\t'CRL_SIGNATURE_FAILURE',\n\t'CERT_NOT_YET_VALID',\n\t'CERT_HAS_EXPIRED',\n\t'CRL_NOT_YET_VALID',\n\t'CRL_HAS_EXPIRED',\n\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t'OUT_OF_MEM',\n\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t'CERT_CHAIN_TOO_LONG',\n\t'CERT_REVOKED',\n\t'INVALID_CA',\n\t'PATH_LENGTH_EXCEEDED',\n\t'INVALID_PURPOSE',\n\t'CERT_UNTRUSTED',\n\t'CERT_REJECTED',\n\t'HOSTNAME_MISMATCH'\n]);\n\n// TODO: Use `error?.code` when targeting Node.js 14\nmodule.exports = error => !denyList.has(error && error.code);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/is-retry-allowed/index.js\n// module id = 867\n// module chunks = 0","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/isobject/index.js\n// module id = 868\n// module chunks = 0","module.exports = {\"0\":\"MM\",\"1\":\"01\",\"2\":\"02\",\"3\":\"03\",\"4\":\"04\",\"5\":\"05\",\"6\":\"06\",\"7\":\"07\",\"8\":\"08\",\"9\":\"09\",\"10\":\"10\",\"11\":\"11\",\"12\":\"12\"}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/components/Modals/CoppaValidation/months.json\n// module id = 869\n// module chunks = 0","module.exports = {\"actionableErrors\":[\"SessionInvalid\",\"UserTokenInvalid\",\"VersionHeaderMissing\",\"CoppaBirthdateRequired\"]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/constants/ActionableErrors.json\n// module id = 870\n// module chunks = 0","module.exports = {\"data\":[{\"changeNoteId\":13,\"date\":\"\",\"version\":\"\",\"description\":\"We're always finding new ways to improve and enhance the program!\"},{\"changeNoteId\":12,\"date\":\"09/25/2018\",\"version\":\"2.0.26.9\",\"description\":\"Polished the web interface to address Web Content Accessibility Guidelines (WCAG)\",\"notes\":[\"Improved keyboard navigation for desktop users.\",\"Made element focus more visible on desktop to satisfy WCAG 2.1 requirements.\",\"Implemented a number of changes to better support text-to-speech aids.\",\"Prep for upcoming WCAG improvements on mobile apps.\"]},{\"changeNoteId\":11,\"date\":\"08/20/2018\",\"version\":\"2.0.22.11\",\"description\":\"Bug fixes\"},{\"changeNoteId\":10,\"date\":\"06/28/2018\",\"version\":\"2.0.22.17\",\"description\":\"Prep for iOS and Android app releases\",\"notes\":[\"Added new graphics package that includes logos and icons for app stores.\",\"Added new high contrast theme.\",\"Prepped Apple App Store and Google Play Store for release.\"]},{\"changeNoteId\":9,\"date\":\"06/08/2018\",\"version\":\"2.021.6\",\"description\":\"Prep for iOS and Android app releases\"},{\"changeNoteId\":8,\"date\":\"05/24/2018\",\"version\":\"2.0.20.7\",\"description\":\"Bug fixes and prep work for upcoming releases\",\"notes\":[\"Resolved issues that caused a continuous prompt to reload the UI.\",\"Resolved issues that caused a continuous prompt to reload the UI.\",\"Resolved issues that caused a continuous prompt to reload the UI.\",\"Addressed minor formatting issues for certain device resolutions.\",\"Improved tool tip formatting.\"]},{\"changeNoteId\":7,\"date\":\"05/07/2018\",\"version\":\"2.0.19.11\",\"description\":\"Bug fixes and prep work for upcoming releases\"},{\"changeNoteId\":6,\"date\":\"04/20/2018\",\"version\":\"2.0.18.6\",\"description\":\"Bug fixes\"},{\"changeNoteId\":5,\"date\":\"04/13/2018\",\"version\":\"2.0.18.4\",\"description\":\"Bug fixes and behind-the-scenes program enhancements\",\"notes\":[\"Various bug fixes have been implemented.\",\"Many meetings about really neat upcoming features have been held.\"]},{\"changeNoteId\":4,\"date\":\"03/29/2018\",\"version\":\"2.0.17.5\",\"description\":\"New program enhancements\",\"notes\":[\"You may now pause scheduled deposits during periods of extended inactivity (like summer break). You may even set a date to restart your paused scheduled deposit so you don't forget.\",\"Depending on your school's settings, you may still be able make deposits on accounts for inactive or unenrolled students. We've added some notifications when making deposits and paying fees for inactive students so you're aware of their enrollment status.\",\"Various bug fixes have been implemented.\"]},{\"changeNoteId\":3,\"date\":\"02/22/2018\",\"version\":\"2.0.15.6\",\"description\":\"Bug fixes and usability enhancements\",\"notes\":[\"Duplicate deposits and fee payments done in the same day are now flagged for your review prior to payment. You'll be notified if your transaction appears to be a duplicate of one you made earlier in the day, and given the opportunity to proceed or review your last receipt first.\",\"A more informative incompatibility notice is now in place for Internet Explorer 11 users.\"]},{\"changeNoteId\":2,\"date\":\"02/08/2018\",\"version\":\"2.0.14.7\",\"description\":\"A minor update\",\"notes\":[\"Quantities have been added to school fees that are sold in multiples.\",\"The date controls for COPPA requirements have been improved for iOS users.\",\"Various bug fixes and behind-the-scenes improvements have been implemented.\"]},{\"changeNoteId\":1,\"date\":\"01/11/2018\",\"version\":\"2.0.13.7\",\"description\":\"A very small release to correct some residual issues from December.\",\"notes\":[\"The deposit confirmation notice is now more informative.\",\"Various bug fixes and behind-the-scenes improvements have been implemented.\"]},{\"changeNoteId\":0,\"date\":\"12/07/2017\",\"version\":\"2.0.8.64\",\"description\":\"The new My MealTime program is now live for all users.\",\"notes\":[\"The interface has been updated with new mobile-friendly navigation features.\",\"School fees are now easier to pay for and manage.\",\"Deposits may now be scheduled on a daily, weekly, or monthly basis.\",\"Payment methods may now be saved for future use.\",\"Low balance notifications are now available for each student individually.\",\"Reports have been improved to show a more complete student transaction history.\"]}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/constants/ChangeNotes.json\n// module id = 871\n// module chunks = 0","module.exports = {\"1\":\"Alabama\",\"2\":\"Alaska\",\"3\":\"Arizona\",\"4\":\"Arkansas\",\"5\":\"California\",\"6\":\"Colorado\",\"7\":\"Connecticut\",\"8\":\"Delaware\",\"9\":\"District of Columbia\",\"10\":\"Florida\",\"11\":\"Georgia\",\"12\":\"Hawaii\",\"13\":\"Idaho\",\"14\":\"Illinois\",\"15\":\"Indiana\",\"16\":\"Iowa\",\"17\":\"Kansas\",\"18\":\"Kentucky\",\"19\":\"Louisiana\",\"20\":\"Maine\",\"21\":\"Maryland\",\"22\":\"Massachusetts\",\"23\":\"Michigan\",\"24\":\"Minnesota\",\"25\":\"Mississippi\",\"26\":\"Missouri\",\"27\":\"Montana\",\"28\":\"Nebraska\",\"29\":\"Nevada\",\"30\":\"New Hampshire\",\"31\":\"New Jersey\",\"32\":\"New Mexico\",\"33\":\"New York\",\"34\":\"North Carolina\",\"35\":\"North Dakota\",\"36\":\"Ohio\",\"37\":\"Oklahoma\",\"38\":\"Oregon\",\"39\":\"Pennsylvania\",\"40\":\"Rhode Island\",\"41\":\"South Carolina\",\"42\":\"South Dakota\",\"43\":\"Tennessee\",\"44\":\"Texas\",\"45\":\"Utah\",\"46\":\"Vermont\",\"47\":\"Virginia\",\"48\":\"Washington\",\"49\":\"West Virginia\",\"50\":\"Wisconsin\",\"51\":\"Wyoming\",\"52\":\"Guam\",\"53\":\"US Armed Forces, Americas\",\"54\":\"US Armed Forces, Europe\",\"55\":\"US Armed Forces, Pacific\"}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/common/constants/States.json\n// module id = 872\n// module chunks = 0","exports = module.exports = stringify\nexports.getSerialize = serializer\n\nfunction stringify(obj, replacer, spaces, cycleReplacer) {\n return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)\n}\n\nfunction serializer(replacer, cycleReplacer) {\n var stack = [], keys = []\n\n if (cycleReplacer == null) cycleReplacer = function(key, value) {\n if (stack[0] === value) return \"[Circular ~]\"\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\"\n }\n\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this)\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\n if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)\n }\n else stack.push(value)\n\n return replacer == null ? value : replacer.call(this, key, value)\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/json-stringify-safe/stringify.js\n// module id = 873\n// module chunks = 0","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_baseGetTag.js\n// module id = 874\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_freeGlobal.js\n// module id = 875\n// module chunks = 0","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_getPrototype.js\n// module id = 876\n// module chunks = 0","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_getRawTag.js\n// module id = 877\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_objectToString.js\n// module id = 878\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_overArg.js\n// module id = 879\n// module chunks = 0","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/_root.js\n// module id = 880\n// module chunks = 0","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash-es/isObjectLike.js\n// module id = 881\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 882\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\nvar factory = require('./factoryWithTypeCheckers');\nmodule.exports = function(isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factory.js\n// module id = 883\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 884\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 885\n// module chunks = 0","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/has.js\n// module id = 886\n// module chunks = 0","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t} else if (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tformatter(decodeURIComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/query-string/index.js\n// module id = 887\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar events = {\n start: ['animationstart', 'webkitAnimationStart', 'mozAnimationStart', 'oanimationstart', 'MSAnimationStart'],\n end: ['animationend', 'webkitAnimationEnd', 'mozAnimationEnd', 'oanimationend', 'MSAnimationEnd'],\n startRemoved: [],\n endRemoved: []\n};\n\n/**\n * # AnimateOnChange component.\n * Adds `animationClassName` when `animate` is true, then removes\n * `animationClassName` when animation is done (event `animationend` is\n * triggered).\n *\n * @prop {string} baseClassName - Base class name.\n * @prop {string} animationClassName - Class added when `animate == true`.\n * @prop {bool} animate - Wheter to animate component.\n */\n\nvar AnimateOnChange = function (_Component) {\n _inherits(AnimateOnChange, _Component);\n\n function AnimateOnChange(props) {\n _classCallCheck(this, AnimateOnChange);\n\n var _this = _possibleConstructorReturn(this, (AnimateOnChange.__proto__ || Object.getPrototypeOf(AnimateOnChange)).call(this, props));\n\n _this.state = { animating: false, clearAnimationClass: false };\n _this.animationStart = _this.animationStart.bind(_this);\n _this.animationEnd = _this.animationEnd.bind(_this);\n return _this;\n }\n\n _createClass(AnimateOnChange, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var elm = this.refs.root;\n this.addEventListener('start', elm, this.animationStart);\n this.addEventListener('end', elm, this.animationEnd);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var elm = this.refs.root;\n this.removeEventListeners('start', elm, this.animationStart);\n this.removeEventListeners('end', elm, this.animationEnd);\n }\n }, {\n key: 'addEventListener',\n value: function addEventListener(type, elm, eventHandler) {\n // until an event has been triggered bind them all\n events[type].map(function (event) {\n // console.log(`adding ${event}`)\n elm.addEventListener(event, eventHandler);\n });\n }\n }, {\n key: 'removeEventListeners',\n value: function removeEventListeners(type, elm, eventHandler) {\n events[type].map(function (event) {\n // console.log(`removing ${event}`)\n elm.removeEventListener(event, eventHandler);\n });\n }\n }, {\n key: 'updateEvents',\n value: function updateEvents(type, newEvent) {\n // console.log(`updating ${type} event to ${newEvent}`)\n events[type + 'Removed'] = events[type].filter(function (e) {\n return e !== newEvent;\n });\n events[type] = [newEvent];\n }\n }, {\n key: 'animationStart',\n value: function animationStart(e) {\n if (events['start'].length > 1) {\n this.updateEvents('start', e.type);\n this.removeEventListeners('startRemoved', this.refs.root, this.animationStart);\n }\n this.setState({ animating: true, clearAnimationClass: false });\n }\n }, {\n key: 'animationEnd',\n value: function animationEnd(e) {\n if (events['end'].length > 1) {\n this.updateEvents('end', e.type);\n this.removeEventListeners('endRemoved', this.refs.root, this.animationStart);\n }\n // send separate, animation state change will not render\n this.setState({ clearAnimationClass: true }); // renders\n this.setState({ animating: false, clearAnimationClass: false });\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n if (this.state.animating !== nextState.animating) {\n // do not render on animation change\n return false;\n }\n return true;\n }\n }, {\n key: 'render',\n value: function render() {\n var className = this.props.baseClassName;\n\n if (this.props.animate && !this.state.clearAnimationClass) {\n className += ' ' + this.props.animationClassName;\n }\n\n return _react2.default.createElement(\n 'span',\n { ref: 'root', className: className },\n this.props.children\n );\n }\n }]);\n\n return AnimateOnChange;\n}(_react.Component);\n\nAnimateOnChange.propTypes = {\n children: _react2.default.PropTypes.any.isRequired,\n animate: _react2.default.PropTypes.bool.isRequired,\n baseClassName: _react2.default.PropTypes.string.isRequired,\n animationClassName: _react2.default.PropTypes.string.isRequired\n};\n\nexports.default = AnimateOnChange;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-animate-on-change/dist/index.js\n// module id = 888\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _arrays = require('shallow-equal/arrays');\n\nvar _arrays2 = _interopRequireDefault(_arrays);\n\nvar _redux = require('./redux');\n\nvar _reactAutowhatever = require('react-autowhatever');\n\nvar _reactAutowhatever2 = _interopRequireDefault(_reactAutowhatever);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n isFocused: state.isFocused,\n isCollapsed: state.isCollapsed,\n focusedSectionIndex: state.focusedSectionIndex,\n focusedSuggestionIndex: state.focusedSuggestionIndex,\n valueBeforeUpDown: state.valueBeforeUpDown\n };\n};\n\nvar Autosuggest = function (_Component) {\n _inherits(Autosuggest, _Component);\n\n function Autosuggest() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Autosuggest);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Autosuggest.__proto__ || Object.getPrototypeOf(Autosuggest)).call.apply(_ref, [this].concat(args))), _this), _this.onDocumentMouseDown = function (event) {\n _this.justClickedOnSuggestionsContainer = false;\n\n var node = event.detail && event.detail.target || // This is for testing only. Please show me a better way to emulate this.\n event.target;\n\n do {\n if (node.getAttribute('data-suggestion-index') !== null) {\n // Suggestion was clicked\n return;\n }\n\n if (node === _this.suggestionsContainer) {\n // Something else inside suggestions container was clicked\n _this.justClickedOnSuggestionsContainer = true;\n return;\n }\n\n node = node.parentNode;\n } while (node !== null && node !== document);\n }, _this.storeReferences = function (autowhatever) {\n if (autowhatever !== null) {\n var input = autowhatever.input;\n\n\n _this.input = input;\n _this.props.inputRef(input);\n\n _this.suggestionsContainer = autowhatever.itemsContainer;\n }\n }, _this.onSuggestionMouseEnter = function (event, _ref2) {\n var sectionIndex = _ref2.sectionIndex,\n itemIndex = _ref2.itemIndex;\n\n _this.props.updateFocusedSuggestion(sectionIndex, itemIndex);\n }, _this.focusFirstSuggestion = function () {\n _this.props.updateFocusedSuggestion(_this.props.multiSection ? 0 : null, 0);\n }, _this.onSuggestionMouseDown = function () {\n _this.justSelectedSuggestion = true;\n }, _this.onSuggestionsClearRequested = function () {\n var onSuggestionsClearRequested = _this.props.onSuggestionsClearRequested;\n\n\n onSuggestionsClearRequested && onSuggestionsClearRequested();\n }, _this.onSuggestionSelected = function (event, data) {\n var _this$props = _this.props,\n alwaysRenderSuggestions = _this$props.alwaysRenderSuggestions,\n onSuggestionSelected = _this$props.onSuggestionSelected,\n onSuggestionsFetchRequested = _this$props.onSuggestionsFetchRequested,\n resetFocusedSuggestion = _this$props.resetFocusedSuggestion;\n\n\n onSuggestionSelected && onSuggestionSelected(event, data);\n\n if (alwaysRenderSuggestions) {\n onSuggestionsFetchRequested({ value: data.suggestionValue });\n } else {\n _this.onSuggestionsClearRequested();\n }\n\n resetFocusedSuggestion();\n }, _this.onSuggestionClick = function (event) {\n var _this$props2 = _this.props,\n alwaysRenderSuggestions = _this$props2.alwaysRenderSuggestions,\n focusInputOnSuggestionClick = _this$props2.focusInputOnSuggestionClick,\n closeSuggestions = _this$props2.closeSuggestions;\n\n var _this$getSuggestionIn = _this.getSuggestionIndices(_this.findSuggestionElement(event.target)),\n sectionIndex = _this$getSuggestionIn.sectionIndex,\n suggestionIndex = _this$getSuggestionIn.suggestionIndex;\n\n var clickedSuggestion = _this.getSuggestion(sectionIndex, suggestionIndex);\n var clickedSuggestionValue = _this.props.getSuggestionValue(clickedSuggestion);\n\n _this.maybeCallOnChange(event, clickedSuggestionValue, 'click');\n _this.onSuggestionSelected(event, {\n suggestion: clickedSuggestion,\n suggestionValue: clickedSuggestionValue,\n suggestionIndex: suggestionIndex,\n sectionIndex: sectionIndex,\n method: 'click'\n });\n\n if (!alwaysRenderSuggestions) {\n closeSuggestions();\n }\n\n if (focusInputOnSuggestionClick === true) {\n _this.input.focus();\n } else {\n _this.onBlur();\n }\n\n setTimeout(function () {\n _this.justSelectedSuggestion = false;\n });\n }, _this.onBlur = function () {\n var _this$props3 = _this.props,\n inputProps = _this$props3.inputProps,\n shouldRenderSuggestions = _this$props3.shouldRenderSuggestions,\n inputBlurred = _this$props3.inputBlurred;\n var value = inputProps.value,\n onBlur = inputProps.onBlur;\n\n var focusedSuggestion = _this.getFocusedSuggestion();\n\n inputBlurred(shouldRenderSuggestions(value));\n onBlur && onBlur(_this.blurEvent, { focusedSuggestion: focusedSuggestion });\n }, _this.resetFocusedSuggestionOnMouseLeave = function () {\n _this.props.resetFocusedSuggestion(false);\n }, _this.itemProps = function (_ref3) {\n var sectionIndex = _ref3.sectionIndex,\n itemIndex = _ref3.itemIndex;\n\n return {\n 'data-section-index': sectionIndex,\n 'data-suggestion-index': itemIndex,\n onMouseEnter: _this.onSuggestionMouseEnter,\n onMouseLeave: _this.resetFocusedSuggestionOnMouseLeave,\n onMouseDown: _this.onSuggestionMouseDown,\n onTouchStart: _this.onSuggestionMouseDown, // Because on iOS `onMouseDown` is not triggered\n onClick: _this.onSuggestionClick\n };\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Autosuggest, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n document.addEventListener('mousedown', this.onDocumentMouseDown);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if ((0, _arrays2.default)(nextProps.suggestions, this.props.suggestions)) {\n if (nextProps.focusFirstSuggestion && nextProps.suggestions.length > 0 && nextProps.focusedSuggestionIndex === null && nextProps.inputProps.value !== this.props.inputProps.value && nextProps.valueBeforeUpDown === this.props.valueBeforeUpDown) {\n this.focusFirstSuggestion();\n }\n } else {\n if (this.willRenderSuggestions(nextProps)) {\n if (nextProps.focusFirstSuggestion) {\n this.focusFirstSuggestion();\n }\n\n var isCollapsed = nextProps.isCollapsed,\n revealSuggestions = nextProps.revealSuggestions;\n\n\n if (isCollapsed && !this.justSelectedSuggestion) {\n revealSuggestions();\n }\n } else {\n nextProps.resetFocusedSuggestion();\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n document.removeEventListener('mousedown', this.onDocumentMouseDown);\n }\n }, {\n key: 'getSuggestion',\n value: function getSuggestion(sectionIndex, suggestionIndex) {\n var _props = this.props,\n suggestions = _props.suggestions,\n multiSection = _props.multiSection,\n getSectionSuggestions = _props.getSectionSuggestions;\n\n\n if (multiSection) {\n return getSectionSuggestions(suggestions[sectionIndex])[suggestionIndex];\n }\n\n return suggestions[suggestionIndex];\n }\n }, {\n key: 'getFocusedSuggestion',\n value: function getFocusedSuggestion() {\n var _props2 = this.props,\n focusedSectionIndex = _props2.focusedSectionIndex,\n focusedSuggestionIndex = _props2.focusedSuggestionIndex;\n\n\n if (focusedSuggestionIndex === null) {\n return null;\n }\n\n return this.getSuggestion(focusedSectionIndex, focusedSuggestionIndex);\n }\n }, {\n key: 'getSuggestionValueByIndex',\n value: function getSuggestionValueByIndex(sectionIndex, suggestionIndex) {\n var getSuggestionValue = this.props.getSuggestionValue;\n\n\n return getSuggestionValue(this.getSuggestion(sectionIndex, suggestionIndex));\n }\n }, {\n key: 'getSuggestionIndices',\n value: function getSuggestionIndices(suggestionElement) {\n var sectionIndex = suggestionElement.getAttribute('data-section-index');\n var suggestionIndex = suggestionElement.getAttribute('data-suggestion-index');\n\n return {\n sectionIndex: typeof sectionIndex === 'string' ? parseInt(sectionIndex, 10) : null,\n suggestionIndex: parseInt(suggestionIndex, 10)\n };\n }\n }, {\n key: 'findSuggestionElement',\n value: function findSuggestionElement(startNode) {\n var node = startNode;\n\n do {\n if (node.getAttribute('data-suggestion-index') !== null) {\n return node;\n }\n\n node = node.parentNode;\n } while (node !== null);\n\n console.error('Clicked element:', startNode); // eslint-disable-line no-console\n throw new Error('Couldn\\'t find suggestion element');\n }\n }, {\n key: 'maybeCallOnChange',\n value: function maybeCallOnChange(event, newValue, method) {\n var _props$inputProps = this.props.inputProps,\n value = _props$inputProps.value,\n onChange = _props$inputProps.onChange;\n\n\n if (newValue !== value) {\n onChange(event, { newValue: newValue, method: method });\n }\n }\n }, {\n key: 'willRenderSuggestions',\n value: function willRenderSuggestions(props) {\n var suggestions = props.suggestions,\n inputProps = props.inputProps,\n shouldRenderSuggestions = props.shouldRenderSuggestions;\n var value = inputProps.value;\n\n\n return suggestions.length > 0 && shouldRenderSuggestions(value);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props3 = this.props,\n suggestions = _props3.suggestions,\n renderInputComponent = _props3.renderInputComponent,\n renderSuggestionsContainer = _props3.renderSuggestionsContainer,\n onSuggestionsFetchRequested = _props3.onSuggestionsFetchRequested,\n renderSuggestion = _props3.renderSuggestion,\n inputProps = _props3.inputProps,\n shouldRenderSuggestions = _props3.shouldRenderSuggestions,\n multiSection = _props3.multiSection,\n renderSectionTitle = _props3.renderSectionTitle,\n id = _props3.id,\n getSectionSuggestions = _props3.getSectionSuggestions,\n theme = _props3.theme,\n isFocused = _props3.isFocused,\n isCollapsed = _props3.isCollapsed,\n focusedSectionIndex = _props3.focusedSectionIndex,\n focusedSuggestionIndex = _props3.focusedSuggestionIndex,\n valueBeforeUpDown = _props3.valueBeforeUpDown,\n inputFocused = _props3.inputFocused,\n inputChanged = _props3.inputChanged,\n updateFocusedSuggestion = _props3.updateFocusedSuggestion,\n resetFocusedSuggestion = _props3.resetFocusedSuggestion,\n revealSuggestions = _props3.revealSuggestions,\n closeSuggestions = _props3.closeSuggestions,\n getSuggestionValue = _props3.getSuggestionValue,\n alwaysRenderSuggestions = _props3.alwaysRenderSuggestions;\n var value = inputProps.value,\n _onFocus = inputProps.onFocus,\n _onKeyDown = inputProps.onKeyDown;\n\n var willRenderSuggestions = this.willRenderSuggestions(this.props);\n var isOpen = alwaysRenderSuggestions || isFocused && !isCollapsed && willRenderSuggestions;\n var items = isOpen ? suggestions : [];\n var autowhateverInputProps = _extends({}, inputProps, {\n onFocus: function onFocus(event) {\n if (!_this2.justSelectedSuggestion && !_this2.justClickedOnSuggestionsContainer) {\n inputFocused(shouldRenderSuggestions(value));\n _onFocus && _onFocus(event);\n\n if (shouldRenderSuggestions(value)) {\n onSuggestionsFetchRequested({ value: value });\n }\n }\n },\n onBlur: function onBlur(event) {\n if (_this2.justClickedOnSuggestionsContainer) {\n _this2.input.focus();\n return;\n }\n\n _this2.blurEvent = event;\n\n if (!_this2.justSelectedSuggestion) {\n _this2.onBlur();\n _this2.onSuggestionsClearRequested();\n }\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n\n var shouldRender = shouldRenderSuggestions(value);\n\n _this2.maybeCallOnChange(event, value, 'type');\n inputChanged(shouldRender);\n\n if (shouldRender) {\n onSuggestionsFetchRequested({ value: value });\n } else {\n _this2.onSuggestionsClearRequested();\n }\n },\n onKeyDown: function onKeyDown(event, data) {\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n if (isCollapsed) {\n if (shouldRenderSuggestions(value)) {\n onSuggestionsFetchRequested({ value: value });\n revealSuggestions();\n }\n } else if (suggestions.length > 0) {\n var newFocusedSectionIndex = data.newFocusedSectionIndex,\n newFocusedItemIndex = data.newFocusedItemIndex;\n\n\n var newValue = void 0;\n\n if (newFocusedItemIndex === null) {\n // valueBeforeUpDown can be null if, for example, user\n // hovers on the first suggestion and then pressed Up.\n // If that happens, use the original input value.\n newValue = valueBeforeUpDown === null ? value : valueBeforeUpDown;\n } else {\n newValue = _this2.getSuggestionValueByIndex(newFocusedSectionIndex, newFocusedItemIndex);\n }\n\n updateFocusedSuggestion(newFocusedSectionIndex, newFocusedItemIndex, value);\n _this2.maybeCallOnChange(event, newValue, event.key === 'ArrowDown' ? 'down' : 'up');\n }\n\n event.preventDefault(); // Prevents the cursor from moving\n\n break;\n\n case 'Enter':\n {\n var focusedSuggestion = _this2.getFocusedSuggestion();\n\n if (isOpen && !alwaysRenderSuggestions) {\n closeSuggestions();\n }\n\n if (focusedSuggestion !== null) {\n var _newValue = getSuggestionValue(focusedSuggestion);\n\n _this2.maybeCallOnChange(event, _newValue, 'enter');\n\n _this2.onSuggestionSelected(event, {\n suggestion: focusedSuggestion,\n suggestionValue: _newValue,\n suggestionIndex: focusedSuggestionIndex,\n sectionIndex: focusedSectionIndex,\n method: 'enter'\n });\n\n _this2.justSelectedSuggestion = true;\n\n setTimeout(function () {\n _this2.justSelectedSuggestion = false;\n });\n }\n\n break;\n }\n\n case 'Escape':\n {\n if (isOpen) {\n // If input.type === 'search', the browser clears the input\n // when Escape is pressed. We want to disable this default\n // behaviour so that, when suggestions are shown, we just hide\n // them, without clearing the input.\n event.preventDefault();\n }\n\n var willCloseSuggestions = isOpen && !alwaysRenderSuggestions;\n\n if (valueBeforeUpDown === null) {\n // Didn't interact with Up/Down\n if (!willCloseSuggestions) {\n var _newValue2 = '';\n\n _this2.maybeCallOnChange(event, _newValue2, 'escape');\n\n if (shouldRenderSuggestions(_newValue2)) {\n onSuggestionsFetchRequested({ value: _newValue2 });\n } else {\n _this2.onSuggestionsClearRequested();\n }\n }\n } else {\n // Interacted with Up/Down\n _this2.maybeCallOnChange(event, valueBeforeUpDown, 'escape');\n }\n\n if (willCloseSuggestions) {\n _this2.onSuggestionsClearRequested();\n closeSuggestions();\n } else {\n resetFocusedSuggestion();\n }\n\n break;\n }\n }\n\n _onKeyDown && _onKeyDown(event);\n }\n });\n var renderSuggestionData = {\n query: (valueBeforeUpDown || value).trim()\n };\n\n return _react2.default.createElement(_reactAutowhatever2.default, {\n multiSection: multiSection,\n items: items,\n renderInputComponent: renderInputComponent,\n renderItemsContainer: renderSuggestionsContainer,\n renderItem: renderSuggestion,\n renderItemData: renderSuggestionData,\n renderSectionTitle: renderSectionTitle,\n getSectionItems: getSectionSuggestions,\n focusedSectionIndex: focusedSectionIndex,\n focusedItemIndex: focusedSuggestionIndex,\n inputProps: autowhateverInputProps,\n itemProps: this.itemProps,\n theme: theme,\n id: id,\n ref: this.storeReferences\n });\n }\n }]);\n\n return Autosuggest;\n}(_react.Component);\n\nAutosuggest.propTypes = {\n suggestions: _react.PropTypes.array.isRequired,\n onSuggestionsFetchRequested: _react.PropTypes.func.isRequired,\n onSuggestionsClearRequested: _react.PropTypes.func,\n onSuggestionSelected: _react.PropTypes.func,\n renderInputComponent: _react.PropTypes.func,\n renderSuggestionsContainer: _react.PropTypes.func,\n getSuggestionValue: _react.PropTypes.func.isRequired,\n renderSuggestion: _react.PropTypes.func.isRequired,\n inputProps: _react.PropTypes.object.isRequired,\n shouldRenderSuggestions: _react.PropTypes.func.isRequired,\n alwaysRenderSuggestions: _react.PropTypes.bool.isRequired,\n multiSection: _react.PropTypes.bool.isRequired,\n renderSectionTitle: _react.PropTypes.func,\n getSectionSuggestions: _react.PropTypes.func,\n focusInputOnSuggestionClick: _react.PropTypes.bool.isRequired,\n focusFirstSuggestion: _react.PropTypes.bool.isRequired,\n theme: _react.PropTypes.object.isRequired,\n id: _react.PropTypes.string.isRequired,\n inputRef: _react.PropTypes.func.isRequired,\n\n isFocused: _react.PropTypes.bool.isRequired,\n isCollapsed: _react.PropTypes.bool.isRequired,\n focusedSectionIndex: _react.PropTypes.number,\n focusedSuggestionIndex: _react.PropTypes.number,\n valueBeforeUpDown: _react.PropTypes.string,\n\n inputFocused: _react.PropTypes.func.isRequired,\n inputBlurred: _react.PropTypes.func.isRequired,\n inputChanged: _react.PropTypes.func.isRequired,\n updateFocusedSuggestion: _react.PropTypes.func.isRequired,\n resetFocusedSuggestion: _react.PropTypes.func.isRequired,\n revealSuggestions: _react.PropTypes.func.isRequired,\n closeSuggestions: _react.PropTypes.func.isRequired\n};\nexports.default = (0, _reactRedux.connect)(mapStateToProps, _redux.actionCreators)(Autosuggest);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autosuggest/dist/Autosuggest.js\n// module id = 889\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _redux = require('redux');\n\nvar _redux2 = require('./redux');\n\nvar _redux3 = _interopRequireDefault(_redux2);\n\nvar _Autosuggest = require('./Autosuggest');\n\nvar _Autosuggest2 = _interopRequireDefault(_Autosuggest);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar alwaysTrue = function alwaysTrue() {\n return true;\n};\nvar defaultShouldRenderSuggestions = function defaultShouldRenderSuggestions(value) {\n return value.trim().length > 0;\n};\nvar defaultTheme = {\n container: 'react-autosuggest__container',\n containerOpen: 'react-autosuggest__container--open',\n input: 'react-autosuggest__input',\n suggestionsContainer: 'react-autosuggest__suggestions-container',\n suggestionsList: 'react-autosuggest__suggestions-list',\n suggestion: 'react-autosuggest__suggestion',\n suggestionFocused: 'react-autosuggest__suggestion--focused',\n sectionContainer: 'react-autosuggest__section-container',\n sectionTitle: 'react-autosuggest__section-title'\n};\n\nvar mapToAutowhateverTheme = function mapToAutowhateverTheme(theme) {\n var result = {};\n\n for (var key in theme) {\n switch (key) {\n case 'suggestionsContainer':\n result['itemsContainer'] = theme[key];\n break;\n\n case 'suggestion':\n result['item'] = theme[key];\n break;\n\n case 'suggestionFocused':\n result['itemFocused'] = theme[key];\n break;\n\n case 'suggestionsList':\n result['itemsList'] = theme[key];\n break;\n\n default:\n result[key] = theme[key];\n }\n }\n\n return result;\n};\n\nvar AutosuggestContainer = function (_Component) {\n _inherits(AutosuggestContainer, _Component);\n\n function AutosuggestContainer(_ref) {\n var alwaysRenderSuggestions = _ref.alwaysRenderSuggestions;\n\n _classCallCheck(this, AutosuggestContainer);\n\n var _this = _possibleConstructorReturn(this, (AutosuggestContainer.__proto__ || Object.getPrototypeOf(AutosuggestContainer)).call(this));\n\n _this.storeInputReference = function (input) {\n _this.input = input;\n };\n\n var initialState = {\n isFocused: false,\n isCollapsed: !alwaysRenderSuggestions,\n focusedSectionIndex: null,\n focusedSuggestionIndex: null,\n valueBeforeUpDown: null\n };\n\n _this.store = (0, _redux.createStore)(_redux3.default, initialState);\n return _this;\n }\n\n _createClass(AutosuggestContainer, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n suggestions = _props.suggestions,\n onSuggestionsFetchRequested = _props.onSuggestionsFetchRequested,\n onSuggestionsClearRequested = _props.onSuggestionsClearRequested,\n multiSection = _props.multiSection,\n shouldRenderSuggestions = _props.shouldRenderSuggestions,\n renderInputComponent = _props.renderInputComponent,\n renderSuggestionsContainer = _props.renderSuggestionsContainer,\n getSuggestionValue = _props.getSuggestionValue,\n renderSuggestion = _props.renderSuggestion,\n renderSectionTitle = _props.renderSectionTitle,\n getSectionSuggestions = _props.getSectionSuggestions,\n inputProps = _props.inputProps,\n onSuggestionSelected = _props.onSuggestionSelected,\n focusInputOnSuggestionClick = _props.focusInputOnSuggestionClick,\n focusFirstSuggestion = _props.focusFirstSuggestion,\n alwaysRenderSuggestions = _props.alwaysRenderSuggestions,\n theme = _props.theme,\n id = _props.id;\n\n\n return _react2.default.createElement(_Autosuggest2.default, {\n suggestions: suggestions,\n onSuggestionsFetchRequested: onSuggestionsFetchRequested,\n onSuggestionsClearRequested: onSuggestionsClearRequested,\n multiSection: multiSection,\n shouldRenderSuggestions: alwaysRenderSuggestions ? alwaysTrue : shouldRenderSuggestions,\n alwaysRenderSuggestions: alwaysRenderSuggestions,\n renderInputComponent: renderInputComponent,\n renderSuggestionsContainer: renderSuggestionsContainer,\n getSuggestionValue: getSuggestionValue,\n renderSuggestion: renderSuggestion,\n renderSectionTitle: renderSectionTitle,\n getSectionSuggestions: getSectionSuggestions,\n inputProps: inputProps,\n onSuggestionSelected: onSuggestionSelected,\n focusInputOnSuggestionClick: focusInputOnSuggestionClick,\n focusFirstSuggestion: focusFirstSuggestion,\n theme: mapToAutowhateverTheme(theme),\n id: id,\n inputRef: this.storeInputReference,\n store: this.store\n });\n }\n }]);\n\n return AutosuggestContainer;\n}(_react.Component);\n\nAutosuggestContainer.propTypes = {\n suggestions: _react.PropTypes.array.isRequired,\n onSuggestionsFetchRequested: function onSuggestionsFetchRequested(props, propName) {\n var onSuggestionsFetchRequested = props[propName];\n\n if (typeof onSuggestionsFetchRequested !== 'function') {\n throw new Error('\\'onSuggestionsFetchRequested\\' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsFetchRequestedProp');\n }\n },\n onSuggestionsClearRequested: function onSuggestionsClearRequested(props, propName) {\n var onSuggestionsClearRequested = props[propName];\n\n if (props.alwaysRenderSuggestions === false && typeof onSuggestionsClearRequested !== 'function') {\n throw new Error('\\'onSuggestionsClearRequested\\' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsClearRequestedProp');\n }\n },\n onSuggestionSelected: _react.PropTypes.func,\n renderInputComponent: _react.PropTypes.func,\n renderSuggestionsContainer: _react.PropTypes.func,\n getSuggestionValue: _react.PropTypes.func.isRequired,\n renderSuggestion: _react.PropTypes.func.isRequired,\n inputProps: function inputProps(props, propName) {\n var inputProps = props[propName];\n\n if (!inputProps.hasOwnProperty('value')) {\n throw new Error('\\'inputProps\\' must have \\'value\\'.');\n }\n\n if (!inputProps.hasOwnProperty('onChange')) {\n throw new Error('\\'inputProps\\' must have \\'onChange\\'.');\n }\n },\n shouldRenderSuggestions: _react.PropTypes.func,\n alwaysRenderSuggestions: _react.PropTypes.bool,\n multiSection: _react.PropTypes.bool,\n renderSectionTitle: function renderSectionTitle(props, propName) {\n var renderSectionTitle = props[propName];\n\n if (props.multiSection === true && typeof renderSectionTitle !== 'function') {\n throw new Error('\\'renderSectionTitle\\' must be implemented. See: https://github.com/moroshko/react-autosuggest#renderSectionTitleProp');\n }\n },\n getSectionSuggestions: function getSectionSuggestions(props, propName) {\n var getSectionSuggestions = props[propName];\n\n if (props.multiSection === true && typeof getSectionSuggestions !== 'function') {\n throw new Error('\\'getSectionSuggestions\\' must be implemented. See: https://github.com/moroshko/react-autosuggest#getSectionSuggestionsProp');\n }\n },\n focusInputOnSuggestionClick: _react.PropTypes.bool,\n focusFirstSuggestion: _react.PropTypes.bool,\n theme: _react.PropTypes.object,\n id: _react.PropTypes.string\n};\nAutosuggestContainer.defaultProps = {\n shouldRenderSuggestions: defaultShouldRenderSuggestions,\n alwaysRenderSuggestions: false,\n multiSection: false,\n focusInputOnSuggestionClick: true,\n focusFirstSuggestion: false,\n theme: defaultTheme,\n id: '1'\n};\nexports.default = AutosuggestContainer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autosuggest/dist/AutosuggestContainer.js\n// module id = 890\n// module chunks = 0","'use strict';\n\nmodule.exports = require('./AutosuggestContainer').default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autosuggest/dist/index.js\n// module id = 891\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _sectionIterator = require('section-iterator');\n\nvar _sectionIterator2 = _interopRequireDefault(_sectionIterator);\n\nvar _reactThemeable = require('react-themeable');\n\nvar _reactThemeable2 = _interopRequireDefault(_reactThemeable);\n\nvar _SectionTitle = require('./SectionTitle');\n\nvar _SectionTitle2 = _interopRequireDefault(_SectionTitle);\n\nvar _ItemsList = require('./ItemsList');\n\nvar _ItemsList2 = _interopRequireDefault(_ItemsList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar alwaysTrue = function alwaysTrue() {\n return true;\n};\nvar emptyObject = {};\nvar defaultRenderInputComponent = function defaultRenderInputComponent(props) {\n return _react2.default.createElement('input', props);\n};\nvar defaultRenderItemsContainer = function defaultRenderItemsContainer(props) {\n return _react2.default.createElement('div', props);\n};\nvar defaultTheme = {\n container: 'react-autowhatever__container',\n containerOpen: 'react-autowhatever__container--open',\n input: 'react-autowhatever__input',\n itemsContainer: 'react-autowhatever__items-container',\n itemsList: 'react-autowhatever__items-list',\n item: 'react-autowhatever__item',\n itemFocused: 'react-autowhatever__item--focused',\n sectionContainer: 'react-autowhatever__section-container',\n sectionTitle: 'react-autowhatever__section-title'\n};\n\nvar Autowhatever = function (_Component) {\n _inherits(Autowhatever, _Component);\n\n function Autowhatever(props) {\n _classCallCheck(this, Autowhatever);\n\n var _this = _possibleConstructorReturn(this, (Autowhatever.__proto__ || Object.getPrototypeOf(Autowhatever)).call(this, props));\n\n _this.focusedItem = null;\n\n _this.setSectionsItems(props);\n _this.setSectionIterator(props);\n _this.setTheme(props);\n\n _this.onKeyDown = _this.onKeyDown.bind(_this);\n _this.storeInputReference = _this.storeInputReference.bind(_this);\n _this.storeItemsContainerReference = _this.storeItemsContainerReference.bind(_this);\n _this.onFocusedItemChange = _this.onFocusedItemChange.bind(_this);\n _this.getItemId = _this.getItemId.bind(_this);\n return _this;\n }\n\n _createClass(Autowhatever, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.ensureFocusedItemIsVisible();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.items !== this.props.items) {\n this.setSectionsItems(nextProps);\n }\n\n if (nextProps.items !== this.props.items || nextProps.multiSection !== this.props.multiSection) {\n this.setSectionIterator(nextProps);\n }\n\n if (nextProps.theme !== this.props.theme) {\n this.setTheme(nextProps);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.ensureFocusedItemIsVisible();\n }\n }, {\n key: 'setSectionsItems',\n value: function setSectionsItems(props) {\n if (props.multiSection) {\n this.sectionsItems = props.items.map(function (section) {\n return props.getSectionItems(section);\n });\n this.sectionsLengths = this.sectionsItems.map(function (items) {\n return items.length;\n });\n this.allSectionsAreEmpty = this.sectionsLengths.every(function (itemsCount) {\n return itemsCount === 0;\n });\n }\n }\n }, {\n key: 'setSectionIterator',\n value: function setSectionIterator(props) {\n this.sectionIterator = (0, _sectionIterator2.default)({\n multiSection: props.multiSection,\n data: props.multiSection ? this.sectionsLengths : props.items.length\n });\n }\n }, {\n key: 'setTheme',\n value: function setTheme(props) {\n this.theme = (0, _reactThemeable2.default)(props.theme);\n }\n }, {\n key: 'storeInputReference',\n value: function storeInputReference(input) {\n if (input !== null) {\n this.input = input;\n }\n }\n }, {\n key: 'storeItemsContainerReference',\n value: function storeItemsContainerReference(itemsContainer) {\n if (itemsContainer !== null) {\n this.itemsContainer = itemsContainer;\n }\n }\n }, {\n key: 'onFocusedItemChange',\n value: function onFocusedItemChange(focusedItem) {\n this.focusedItem = focusedItem;\n }\n }, {\n key: 'getItemId',\n value: function getItemId(sectionIndex, itemIndex) {\n if (itemIndex === null) {\n return null;\n }\n\n var id = this.props.id;\n\n var section = sectionIndex === null ? '' : 'section-' + sectionIndex;\n\n return 'react-autowhatever-' + id + '-' + section + '-item-' + itemIndex;\n }\n }, {\n key: 'renderSections',\n value: function renderSections() {\n var _this2 = this;\n\n if (this.allSectionsAreEmpty) {\n return null;\n }\n\n var theme = this.theme;\n var _props = this.props;\n var id = _props.id;\n var items = _props.items;\n var renderItem = _props.renderItem;\n var renderItemData = _props.renderItemData;\n var shouldRenderSection = _props.shouldRenderSection;\n var renderSectionTitle = _props.renderSectionTitle;\n var focusedSectionIndex = _props.focusedSectionIndex;\n var focusedItemIndex = _props.focusedItemIndex;\n var itemProps = _props.itemProps;\n\n\n return items.map(function (section, sectionIndex) {\n if (!shouldRenderSection(section)) {\n return null;\n }\n\n var keyPrefix = 'react-autowhatever-' + id + '-';\n var sectionKeyPrefix = keyPrefix + 'section-' + sectionIndex + '-';\n\n // `key` is provided by theme()\n /* eslint-disable react/jsx-key */\n return _react2.default.createElement(\n 'div',\n theme(sectionKeyPrefix + 'container', 'sectionContainer'),\n _react2.default.createElement(_SectionTitle2.default, {\n section: section,\n renderSectionTitle: renderSectionTitle,\n theme: theme,\n sectionKeyPrefix: sectionKeyPrefix\n }),\n _react2.default.createElement(_ItemsList2.default, {\n items: _this2.sectionsItems[sectionIndex],\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n sectionIndex: sectionIndex,\n focusedItemIndex: focusedSectionIndex === sectionIndex ? focusedItemIndex : null,\n onFocusedItemChange: _this2.onFocusedItemChange,\n getItemId: _this2.getItemId,\n theme: theme,\n keyPrefix: keyPrefix,\n ref: _this2.storeItemsListReference\n })\n );\n /* eslint-enable react/jsx-key */\n });\n }\n }, {\n key: 'renderItems',\n value: function renderItems() {\n var items = this.props.items;\n\n\n if (items.length === 0) {\n return null;\n }\n\n var theme = this.theme;\n var _props2 = this.props;\n var id = _props2.id;\n var renderItem = _props2.renderItem;\n var renderItemData = _props2.renderItemData;\n var focusedSectionIndex = _props2.focusedSectionIndex;\n var focusedItemIndex = _props2.focusedItemIndex;\n var itemProps = _props2.itemProps;\n\n\n return _react2.default.createElement(_ItemsList2.default, {\n items: items,\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n focusedItemIndex: focusedSectionIndex === null ? focusedItemIndex : null,\n onFocusedItemChange: this.onFocusedItemChange,\n getItemId: this.getItemId,\n theme: theme,\n keyPrefix: 'react-autowhatever-' + id + '-'\n });\n }\n }, {\n key: 'onKeyDown',\n value: function onKeyDown(event) {\n var _props3 = this.props;\n var inputProps = _props3.inputProps;\n var focusedSectionIndex = _props3.focusedSectionIndex;\n var focusedItemIndex = _props3.focusedItemIndex;\n\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n {\n var nextPrev = event.key === 'ArrowDown' ? 'next' : 'prev';\n\n var _sectionIterator$next = this.sectionIterator[nextPrev]([focusedSectionIndex, focusedItemIndex]);\n\n var _sectionIterator$next2 = _slicedToArray(_sectionIterator$next, 2);\n\n var newFocusedSectionIndex = _sectionIterator$next2[0];\n var newFocusedItemIndex = _sectionIterator$next2[1];\n\n\n inputProps.onKeyDown(event, { newFocusedSectionIndex: newFocusedSectionIndex, newFocusedItemIndex: newFocusedItemIndex });\n break;\n }\n\n default:\n inputProps.onKeyDown(event, { focusedSectionIndex: focusedSectionIndex, focusedItemIndex: focusedItemIndex });\n }\n }\n }, {\n key: 'ensureFocusedItemIsVisible',\n value: function ensureFocusedItemIsVisible() {\n var focusedItem = this.focusedItem;\n\n\n if (!focusedItem) {\n return;\n }\n\n var itemsContainer = this.itemsContainer;\n\n var itemOffsetRelativeToContainer = focusedItem.offsetParent === itemsContainer ? focusedItem.offsetTop : focusedItem.offsetTop - itemsContainer.offsetTop;\n\n var scrollTop = itemsContainer.scrollTop; // Top of the visible area\n\n if (itemOffsetRelativeToContainer < scrollTop) {\n // Item is off the top of the visible area\n scrollTop = itemOffsetRelativeToContainer;\n } else if (itemOffsetRelativeToContainer + focusedItem.offsetHeight > scrollTop + itemsContainer.offsetHeight) {\n // Item is off the bottom of the visible area\n scrollTop = itemOffsetRelativeToContainer + focusedItem.offsetHeight - itemsContainer.offsetHeight;\n }\n\n if (scrollTop !== itemsContainer.scrollTop) {\n itemsContainer.scrollTop = scrollTop;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var theme = this.theme;\n var _props4 = this.props;\n var id = _props4.id;\n var multiSection = _props4.multiSection;\n var renderInputComponent = _props4.renderInputComponent;\n var renderItemsContainer = _props4.renderItemsContainer;\n var focusedSectionIndex = _props4.focusedSectionIndex;\n var focusedItemIndex = _props4.focusedItemIndex;\n\n var renderedItems = multiSection ? this.renderSections() : this.renderItems();\n var isOpen = renderedItems !== null;\n var ariaActivedescendant = this.getItemId(focusedSectionIndex, focusedItemIndex);\n var containerProps = theme('react-autowhatever-' + id + '-container', 'container', isOpen && 'containerOpen');\n var itemsContainerId = 'react-autowhatever-' + id;\n var inputComponent = renderInputComponent(_extends({\n type: 'text',\n value: '',\n autoComplete: 'off',\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-owns': itemsContainerId,\n 'aria-expanded': isOpen,\n 'aria-haspopup': isOpen,\n 'aria-activedescendant': ariaActivedescendant\n }, theme('react-autowhatever-' + id + '-input', 'input'), this.props.inputProps, {\n onKeyDown: this.props.inputProps.onKeyDown && this.onKeyDown,\n ref: this.storeInputReference\n }));\n var itemsContainer = renderItemsContainer(_extends({\n id: itemsContainerId\n }, theme('react-autowhatever-' + id + '-items-container', 'itemsContainer'), {\n ref: this.storeItemsContainerReference,\n children: renderedItems\n }));\n\n return _react2.default.createElement(\n 'div',\n containerProps,\n inputComponent,\n itemsContainer\n );\n }\n }]);\n\n return Autowhatever;\n}(_react.Component);\n\nAutowhatever.propTypes = {\n id: _react.PropTypes.string, // Used in aria-* attributes. If multiple Autowhatever's are rendered on a page, they must have unique ids.\n multiSection: _react.PropTypes.bool, // Indicates whether a multi section layout should be rendered.\n renderInputComponent: _react.PropTypes.func, // Renders the input component.\n items: _react.PropTypes.array.isRequired, // Array of items or sections to render.\n renderItemsContainer: _react.PropTypes.func, // Renders the items container.\n renderItem: _react.PropTypes.func, // This function renders a single item.\n renderItemData: _react.PropTypes.object, // Arbitrary data that will be passed to renderItem()\n shouldRenderSection: _react.PropTypes.func, // This function gets a section and returns whether it should be rendered, or not.\n renderSectionTitle: _react.PropTypes.func, // This function gets a section and renders its title.\n getSectionItems: _react.PropTypes.func, // This function gets a section and returns its items, which will be passed into `renderItem` for rendering.\n inputComponent: _react.PropTypes.func, // When specified, it is used to render the input element\n inputProps: _react.PropTypes.object, // Arbitrary input props\n itemProps: _react.PropTypes.oneOfType([// Arbitrary item props\n _react.PropTypes.object, _react.PropTypes.func]),\n focusedSectionIndex: _react.PropTypes.number, // Section index of the focused item\n focusedItemIndex: _react.PropTypes.number, // Focused item index (within a section)\n theme: _react.PropTypes.oneOfType([// Styles. See: https://github.com/markdalgleish/react-themeable\n _react.PropTypes.object, _react.PropTypes.array])\n};\nAutowhatever.defaultProps = {\n id: '1',\n multiSection: false,\n renderInputComponent: defaultRenderInputComponent,\n renderItemsContainer: defaultRenderItemsContainer,\n shouldRenderSection: alwaysTrue,\n renderItem: function renderItem() {\n throw new Error('`renderItem` must be provided');\n },\n renderItemData: emptyObject,\n renderSectionTitle: function renderSectionTitle() {\n throw new Error('`renderSectionTitle` must be provided');\n },\n getSectionItems: function getSectionItems() {\n throw new Error('`getSectionItems` must be provided');\n },\n inputProps: emptyObject,\n itemProps: emptyObject,\n focusedSectionIndex: null,\n focusedItemIndex: null,\n theme: defaultTheme\n};\nexports.default = Autowhatever;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autowhatever/dist/Autowhatever.js\n// module id = 892\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _compareObjects = require('./compareObjects');\n\nvar _compareObjects2 = _interopRequireDefault(_compareObjects);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Item = function (_Component) {\n _inherits(Item, _Component);\n\n function Item() {\n _classCallCheck(this, Item);\n\n var _this = _possibleConstructorReturn(this, (Item.__proto__ || Object.getPrototypeOf(Item)).call(this));\n\n _this.storeItemReference = _this.storeItemReference.bind(_this);\n _this.onMouseEnter = _this.onMouseEnter.bind(_this);\n _this.onMouseLeave = _this.onMouseLeave.bind(_this);\n _this.onMouseDown = _this.onMouseDown.bind(_this);\n _this.onClick = _this.onClick.bind(_this);\n return _this;\n }\n\n _createClass(Item, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects2.default)(nextProps, this.props, ['renderItemData']);\n }\n }, {\n key: 'storeItemReference',\n value: function storeItemReference(item) {\n if (item !== null) {\n this.item = item;\n }\n }\n }, {\n key: 'onMouseEnter',\n value: function onMouseEnter(event) {\n var _props = this.props;\n var sectionIndex = _props.sectionIndex;\n var itemIndex = _props.itemIndex;\n\n\n this.props.onMouseEnter(event, { sectionIndex: sectionIndex, itemIndex: itemIndex });\n }\n }, {\n key: 'onMouseLeave',\n value: function onMouseLeave(event) {\n var _props2 = this.props;\n var sectionIndex = _props2.sectionIndex;\n var itemIndex = _props2.itemIndex;\n\n\n this.props.onMouseLeave(event, { sectionIndex: sectionIndex, itemIndex: itemIndex });\n }\n }, {\n key: 'onMouseDown',\n value: function onMouseDown(event) {\n var _props3 = this.props;\n var sectionIndex = _props3.sectionIndex;\n var itemIndex = _props3.itemIndex;\n\n\n this.props.onMouseDown(event, { sectionIndex: sectionIndex, itemIndex: itemIndex });\n }\n }, {\n key: 'onClick',\n value: function onClick(event) {\n var _props4 = this.props;\n var sectionIndex = _props4.sectionIndex;\n var itemIndex = _props4.itemIndex;\n\n\n this.props.onClick(event, { sectionIndex: sectionIndex, itemIndex: itemIndex });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props5 = this.props;\n var item = _props5.item;\n var renderItem = _props5.renderItem;\n var renderItemData = _props5.renderItemData;\n\n var restProps = _objectWithoutProperties(_props5, ['item', 'renderItem', 'renderItemData']);\n\n delete restProps.sectionIndex;\n delete restProps.itemIndex;\n\n if (typeof restProps.onMouseEnter === 'function') {\n restProps.onMouseEnter = this.onMouseEnter;\n }\n\n if (typeof restProps.onMouseLeave === 'function') {\n restProps.onMouseLeave = this.onMouseLeave;\n }\n\n if (typeof restProps.onMouseDown === 'function') {\n restProps.onMouseDown = this.onMouseDown;\n }\n\n if (typeof restProps.onClick === 'function') {\n restProps.onClick = this.onClick;\n }\n\n return _react2.default.createElement(\n 'li',\n _extends({ role: 'option' }, restProps, { ref: this.storeItemReference }),\n renderItem(item, renderItemData)\n );\n }\n }]);\n\n return Item;\n}(_react.Component);\n\nItem.propTypes = {\n sectionIndex: _react.PropTypes.number,\n itemIndex: _react.PropTypes.number.isRequired,\n item: _react.PropTypes.any.isRequired,\n renderItem: _react.PropTypes.func.isRequired,\n renderItemData: _react.PropTypes.object.isRequired,\n onMouseEnter: _react.PropTypes.func,\n onMouseLeave: _react.PropTypes.func,\n onMouseDown: _react.PropTypes.func,\n onClick: _react.PropTypes.func\n};\nexports.default = Item;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autowhatever/dist/Item.js\n// module id = 893\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Item = require('./Item');\n\nvar _Item2 = _interopRequireDefault(_Item);\n\nvar _compareObjects = require('./compareObjects');\n\nvar _compareObjects2 = _interopRequireDefault(_compareObjects);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ItemsList = function (_Component) {\n _inherits(ItemsList, _Component);\n\n function ItemsList() {\n _classCallCheck(this, ItemsList);\n\n var _this = _possibleConstructorReturn(this, (ItemsList.__proto__ || Object.getPrototypeOf(ItemsList)).call(this));\n\n _this.storeFocusedItemReference = _this.storeFocusedItemReference.bind(_this);\n return _this;\n }\n\n _createClass(ItemsList, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects2.default)(nextProps, this.props, ['itemProps']);\n }\n }, {\n key: 'storeFocusedItemReference',\n value: function storeFocusedItemReference(focusedItem) {\n this.props.onFocusedItemChange(focusedItem === null ? null : focusedItem.item);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props;\n var items = _props.items;\n var itemProps = _props.itemProps;\n var renderItem = _props.renderItem;\n var renderItemData = _props.renderItemData;\n var sectionIndex = _props.sectionIndex;\n var focusedItemIndex = _props.focusedItemIndex;\n var getItemId = _props.getItemId;\n var theme = _props.theme;\n var keyPrefix = _props.keyPrefix;\n\n var sectionPrefix = sectionIndex === null ? keyPrefix : keyPrefix + 'section-' + sectionIndex + '-';\n var isItemPropsFunction = typeof itemProps === 'function';\n\n return _react2.default.createElement(\n 'ul',\n _extends({ role: 'listbox' }, theme(sectionPrefix + 'items-list', 'itemsList')),\n items.map(function (item, itemIndex) {\n var isFocused = itemIndex === focusedItemIndex;\n var itemKey = sectionPrefix + 'item-' + itemIndex;\n var itemPropsObj = isItemPropsFunction ? itemProps({ sectionIndex: sectionIndex, itemIndex: itemIndex }) : itemProps;\n var allItemProps = _extends({\n id: getItemId(sectionIndex, itemIndex)\n }, theme(itemKey, 'item', isFocused && 'itemFocused'), itemPropsObj);\n\n if (isFocused) {\n allItemProps.ref = _this2.storeFocusedItemReference;\n }\n\n // `key` is provided by theme()\n /* eslint-disable react/jsx-key */\n return _react2.default.createElement(_Item2.default, _extends({}, allItemProps, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex,\n item: item,\n renderItem: renderItem,\n renderItemData: renderItemData\n }));\n /* eslint-enable react/jsx-key */\n })\n );\n }\n }]);\n\n return ItemsList;\n}(_react.Component);\n\nItemsList.propTypes = {\n items: _react.PropTypes.array.isRequired,\n itemProps: _react.PropTypes.oneOfType([_react.PropTypes.object, _react.PropTypes.func]),\n renderItem: _react.PropTypes.func.isRequired,\n renderItemData: _react.PropTypes.object.isRequired,\n sectionIndex: _react.PropTypes.number,\n focusedItemIndex: _react.PropTypes.number,\n onFocusedItemChange: _react.PropTypes.func.isRequired,\n getItemId: _react.PropTypes.func.isRequired,\n theme: _react.PropTypes.func.isRequired,\n keyPrefix: _react.PropTypes.string.isRequired\n};\nItemsList.defaultProps = {\n sectionIndex: null\n};\nexports.default = ItemsList;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autowhatever/dist/ItemsList.js\n// module id = 894\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _compareObjects = require('./compareObjects');\n\nvar _compareObjects2 = _interopRequireDefault(_compareObjects);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SectionTitle = function (_Component) {\n _inherits(SectionTitle, _Component);\n\n function SectionTitle() {\n _classCallCheck(this, SectionTitle);\n\n return _possibleConstructorReturn(this, (SectionTitle.__proto__ || Object.getPrototypeOf(SectionTitle)).apply(this, arguments));\n }\n\n _createClass(SectionTitle, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects2.default)(nextProps, this.props);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props;\n var section = _props.section;\n var renderSectionTitle = _props.renderSectionTitle;\n var theme = _props.theme;\n var sectionKeyPrefix = _props.sectionKeyPrefix;\n\n var sectionTitle = renderSectionTitle(section);\n\n if (!sectionTitle) {\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n theme(sectionKeyPrefix + 'title', 'sectionTitle'),\n sectionTitle\n );\n }\n }]);\n\n return SectionTitle;\n}(_react.Component);\n\nSectionTitle.propTypes = {\n section: _react.PropTypes.any.isRequired,\n renderSectionTitle: _react.PropTypes.func.isRequired,\n theme: _react.PropTypes.func.isRequired,\n sectionKeyPrefix: _react.PropTypes.string.isRequired\n};\nexports.default = SectionTitle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autowhatever/dist/SectionTitle.js\n// module id = 895\n// module chunks = 0","'use strict';\n\nmodule.exports = require('./Autowhatever').default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-autowhatever/dist/index.js\n// module id = 896\n// module chunks = 0","'use strict';\n\nmodule.exports = require('./lib/ReactDOM');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/index.js\n// module id = 897\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ARIADOMPropertyConfig = {\n Properties: {\n // Global States and Properties\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n },\n DOMAttributeNames: {},\n DOMPropertyNames: {}\n};\n\nmodule.exports = ARIADOMPropertyConfig;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ARIADOMPropertyConfig.js\n// module id = 898\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar AutoFocusUtils = {\n focusDOMComponent: function () {\n focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n }\n};\n\nmodule.exports = AutoFocusUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/AutoFocusUtils.js\n// module id = 899\n// module chunks = 0","/**\n * Copyright 2013-present Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n var opera = window.opera;\n return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: 'onBeforeInput',\n captured: 'onBeforeInputCapture'\n },\n dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionEnd',\n captured: 'onCompositionEndCapture'\n },\n dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionStart',\n captured: 'onCompositionStartCapture'\n },\n dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionUpdate',\n captured: 'onCompositionUpdateCapture'\n },\n dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n switch (topLevelType) {\n case 'topCompositionStart':\n return eventTypes.compositionStart;\n case 'topCompositionEnd':\n return eventTypes.compositionEnd;\n case 'topCompositionUpdate':\n return eventTypes.compositionUpdate;\n }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case 'topKeyUp':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case 'topKeyDown':\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n case 'topKeyPress':\n case 'topMouseDown':\n case 'topBlur':\n // Events are not possible without cancelling IME.\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(topLevelType);\n } else if (!currentComposition) {\n if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionStart;\n }\n } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionEnd;\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!currentComposition && eventType === eventTypes.compositionStart) {\n currentComposition = FallbackCompositionState.getPooled(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n if (customData !== null) {\n event.data = customData;\n }\n }\n\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case 'topCompositionEnd':\n return getDataFromCustomEvent(nativeEvent);\n case 'topKeyPress':\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case 'topTextInput':\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data;\n\n // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to blacklist it.\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n // If composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (currentComposition) {\n if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n var chars = currentComposition.getData();\n FallbackCompositionState.release(currentComposition);\n currentComposition = null;\n return chars;\n }\n return null;\n }\n\n switch (topLevelType) {\n case 'topPaste':\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n case 'topKeyPress':\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case 'topCompositionEnd':\n return useFallbackCompositionData ? null : nativeEvent.data;\n default:\n return null;\n }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n }\n\n // If no characters are being inserted, no BeforeInput event should\n // be fired.\n if (!chars) {\n return null;\n }\n\n var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n\n event.data = chars;\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/BeforeInputEventPlugin.js\n// module id = 900\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar camelizeStyleName = require('fbjs/lib/camelizeStyleName');\nvar dangerousStyleValue = require('./dangerousStyleValue');\nvar hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\nvar memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');\nvar warning = require('fbjs/lib/warning');\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n var tempStyle = document.createElement('div').style;\n try {\n // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n tempStyle.font = '';\n } catch (e) {\n hasShorthandPropertyBug = true;\n }\n // IE8 only supports accessing cssFloat (standard) as styleFloat\n if (document.documentElement.style.cssFloat === undefined) {\n styleFloatAccessor = 'styleFloat';\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function (name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function (name, owner) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function (name, value, owner) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Style property values shouldn\\'t contain a semicolon.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function (name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function (owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n };\n\n /**\n * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n var warnValidStyle = function (name, value, component) {\n var owner;\n if (component) {\n owner = component._currentElement._owner;\n }\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\n }\n };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n /**\n * Serializes a mapping of style properties for use as inline styles:\n *\n * > createMarkupForStyles({width: '200px', height: 0})\n * \"width:200px;height:0;\"\n *\n * Undefined values are ignored so that declarative programming is easier.\n * The result should be HTML-escaped before insertion into the DOM.\n *\n * @param {object} styles\n * @param {ReactDOMComponent} component\n * @return {?string}\n */\n createMarkupForStyles: function (styles, component) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var styleValue = styles[styleName];\n if (process.env.NODE_ENV !== 'production') {\n warnValidStyle(styleName, styleValue, component);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, component) + ';';\n }\n }\n return serialized || null;\n },\n\n /**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n * @param {ReactDOMComponent} component\n */\n setValueForStyles: function (node, styles, component) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: component._debugID,\n type: 'update styles',\n payload: styles\n });\n }\n\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n warnValidStyle(styleName, styles[styleName], component);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], component);\n if (styleName === 'float' || styleName === 'cssFloat') {\n styleName = styleFloatAccessor;\n }\n if (styleValue) {\n style[styleName] = styleValue;\n } else {\n var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n if (expansion) {\n // Shorthand property that IE8 won't like unsetting, so unset each\n // component to placate it\n for (var individualStyleName in expansion) {\n style[individualStyleName] = '';\n }\n } else {\n style[styleName] = '';\n }\n }\n }\n }\n\n};\n\nmodule.exports = CSSPropertyOperations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/CSSPropertyOperations.js\n// module id = 901\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n EventPropagators.accumulateTwoPhaseDispatches(event);\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForChangeEventIE8();\n }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n // IE10+ fire input events to often, such when a placeholder\n // changes or when an input with a placeholder is focused.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11);\n}\n\n/**\n * (For IE <=11) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n get: function () {\n return activeElementValueProp.get.call(this);\n },\n set: function (val) {\n // Cast to a string so we can do equality checks.\n activeElementValue = '' + val;\n activeElementValueProp.set.call(this, val);\n }\n};\n\n/**\n * (For IE <=11) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n // on DOM elements\n Object.defineProperty(activeElement, 'value', newValueProp);\n if (activeElement.attachEvent) {\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.addEventListener('propertychange', handlePropertyChange, false);\n }\n}\n\n/**\n * (For IE <=11) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n // delete restores the original property definition\n delete activeElement.value;\n\n if (activeElement.detachEvent) {\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.removeEventListener('propertychange', handlePropertyChange, false);\n }\n\n activeElement = null;\n activeElementInst = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For IE <=11) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n var value = nativeEvent.srcElement.value;\n if (value === activeElementValue) {\n return;\n }\n activeElementValue = value;\n\n manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetInstForInputEvent(topLevelType, targetInst) {\n if (topLevelType === 'topInput') {\n // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n // what we want so fall through here and trigger an abstract event\n return targetInst;\n }\n}\n\nfunction handleEventsForInputEventIE(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9-11, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventIE(topLevelType, targetInst) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n if (activeElement && activeElement.value !== activeElementValue) {\n activeElementValue = activeElement.value;\n return activeElementInst;\n }\n }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst) {\n if (topLevelType === 'topClick') {\n return targetInst;\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst);\n if (inst) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ChangeEventPlugin.js\n// module id = 902\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nvar Danger = {\n\n /**\n * Replaces a node with a string of markup at its current position within its\n * parent. The markup must render into a single root node.\n *\n * @param {DOMElement} oldChild Child node to replace.\n * @param {string} markup Markup to render in place of the child node.\n * @internal\n */\n dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {\n !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0;\n !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n !(oldChild.nodeName !== 'HTML') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0;\n\n if (typeof markup === 'string') {\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n } else {\n DOMLazyTree.replaceChildWithTree(oldChild, markup);\n }\n }\n\n};\n\nmodule.exports = Danger;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/Danger.js\n// module id = 903\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\n\nvar DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\nmodule.exports = DefaultEventPluginOrder;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/DefaultEventPluginOrder.js\n// module id = 904\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: 'onMouseEnter',\n dependencies: ['topMouseOut', 'topMouseOver']\n },\n mouseLeave: {\n registrationName: 'onMouseLeave',\n dependencies: ['topMouseOut', 'topMouseOver']\n }\n};\n\nvar EnterLeaveEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.ownerDocument;\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n if (topLevelType === 'topMouseOut') {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/EnterLeaveEventPlugin.js\n// module id = 905\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n this._root = root;\n this._startText = this.getText();\n this._fallbackText = null;\n}\n\n_assign(FallbackCompositionState.prototype, {\n destructor: function () {\n this._root = null;\n this._startText = null;\n this._fallbackText = null;\n },\n\n /**\n * Get current text of input.\n *\n * @return {string}\n */\n getText: function () {\n if ('value' in this._root) {\n return this._root.value;\n }\n return this._root[getTextContentAccessor()];\n },\n\n /**\n * Determine the differing substring between the initially stored\n * text content and the current content.\n *\n * @return {string}\n */\n getData: function () {\n if (this._fallbackText) {\n return this._fallbackText;\n }\n\n var start;\n var startValue = this._startText;\n var startLength = startValue.length;\n var end;\n var endValue = this.getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n this._fallbackText = endValue.slice(start, sliceTail);\n return this._fallbackText;\n }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/FallbackCompositionState.js\n// module id = 906\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n Properties: {\n /**\n * Standard Properties\n */\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: HAS_BOOLEAN_VALUE,\n allowTransparency: 0,\n alt: 0,\n // specifies target context for links with `preload` type\n as: 0,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: 0,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_BOOLEAN_VALUE,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cite: 0,\n classID: 0,\n className: 0,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: HAS_BOOLEAN_VALUE,\n coords: 0,\n crossOrigin: 0,\n data: 0, // For `<object />` acts as `src`.\n dateTime: 0,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: 0,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: HAS_BOOLEAN_VALUE,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: HAS_BOOLEAN_VALUE,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: 0,\n nonce: 0,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: HAS_BOOLEAN_VALUE,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: HAS_BOOLEAN_VALUE,\n referrerPolicy: 0,\n rel: 0,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: 0,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n sandbox: 0,\n scope: 0,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: 0,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: 0,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n sizes: 0,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: HAS_NUMERIC_VALUE,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n // Setting .type throws on non-<input> tags\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n\n /**\n * RDFa Properties\n */\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n // property is also supported for OpenGraph in meta tags.\n property: 0,\n resource: 0,\n 'typeof': 0,\n vocab: 0,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: 0,\n autoCorrect: 0,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: 0,\n // color is for Safari mask-icon link\n color: 0,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: 0,\n itemScope: HAS_BOOLEAN_VALUE,\n itemType: 0,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: 0,\n itemRef: 0,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: 0,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: 0,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {},\n DOMMutationMethods: {\n value: function (node, value) {\n if (value == null) {\n return node.removeAttribute('value');\n }\n\n // Number inputs get special treatment due to some edge cases in\n // Chrome. Let everything else assign the value attribute as normal.\n // https://github.com/facebook/react/issues/7253#issuecomment-236074326\n if (node.type !== 'number' || node.hasAttribute('value') === false) {\n node.setAttribute('value', '' + value);\n } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {\n // Don't assign an attribute if validation reports bad\n // input. Chrome will clear the value. Additionally, don't\n // operate on inputs that have focus, otherwise Chrome might\n // strip off trailing decimal places and cause the user's\n // cursor position to jump to the beginning of the input.\n //\n // In ReactDOMInput, we have an onBlur event that will trigger\n // this function again when focus is lost.\n node.setAttribute('value', '' + value);\n }\n }\n }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/HTMLDOMPropertyConfig.js\n// module id = 907\n// module chunks = 0","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\n }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildNodes Nested child maps.\n * @return {?object} A set of child instances.\n * @internal\n */\n instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots\n ) {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\n return childInstances;\n },\n\n /**\n * Updates the rendered children and returns a new set of children.\n *\n * @param {?object} prevChildren Previously initialized set of children.\n * @param {?object} nextChildren Flat child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @return {?object} A new set of child instances.\n * @internal\n */\n updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots\n ) {\n // We currently don't have a way to track moves here but if we use iterators\n // instead of for..in we can zip the iterators and check if an item has\n // moved.\n // TODO: If nothing has changed, return the prevChildren object so that we\n // can quickly bailout if nothing has changed.\n if (!nextChildren && !prevChildren) {\n return;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n prevChild = prevChildren && prevChildren[name];\n var prevElement = prevChild && prevChild._currentElement;\n var nextElement = nextChildren[name];\n if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n nextChildren[name] = prevChild;\n } else {\n if (prevChild) {\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\n }\n }\n // Unmount children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function (renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n\n};\n\nmodule.exports = ReactChildReconciler;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactChildReconciler.js\n// module id = 908\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n\n processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactComponentBrowserEnvironment.js\n// module id = 909\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactErrorUtils = require('./ReactErrorUtils');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactNodeTypes = require('./ReactNodeTypes');\nvar ReactReconciler = require('./ReactReconciler');\n\nif (process.env.NODE_ENV !== 'production') {\n var checkReactTypeSpec = require('./checkReactTypeSpec');\n}\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\n}\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n * - componentWillMount\n * - render\n * - [children's constructors]\n * - [children's componentWillMount and render]\n * - [children's componentDidMount]\n * - componentDidMount\n *\n * Update Phases:\n * - componentWillReceiveProps (only called if parent updated)\n * - shouldComponentUpdate\n * - componentWillUpdate\n * - render\n * - [children's constructors or receive props phases]\n * - componentDidUpdate\n *\n * - componentWillUnmount\n * - [children's componentWillUnmount]\n * - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponent = {\n\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function (element) {\n this._currentElement = element;\n this._rootNodeID = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (process.env.NODE_ENV !== 'production') {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This will throw later in _renderValidatedComponent, but add an early\n // warning now to help debugging\n if (inst.render == null) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\\'s constructor was passed.', componentName, componentName) : void 0;\n }\n\n // These should be set up in the constructor, but as a convenience for\n // simpler class abstractions, we set them up after the fact.\n inst.props = publicProps;\n inst.context = publicContext;\n inst.refs = emptyObject;\n inst.updater = updateQueue;\n\n this._instance = inst;\n\n // Store a reference from the instance back to the internal representation\n ReactInstanceMap.set(inst, this);\n\n if (process.env.NODE_ENV !== 'production') {\n // Since plain JS classes are defined without any special initialization\n // logic, we can not catch common errors early. Therefore, we have to\n // catch them here, at initialization time, instead.\n process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n if (process.env.NODE_ENV !== 'production') {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\n // When mounting, calls to `setState` by `componentWillMount` will set\n // `this._pendingStateQueue` without triggering a re-render.\n if (this._pendingStateQueue) {\n inst.state = this._processPendingState(inst.props, inst.context);\n }\n }\n\n // If not a stateless component, we now render\n if (renderedElement === undefined) {\n renderedElement = this._renderValidatedComponent();\n }\n\n var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function () {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\n\n // Reset pending fields\n // Even if this component is scheduled for another update in ReactUpdates,\n // it would still be ignored because these fields are reset.\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n this._pendingCallbacks = null;\n this._pendingElement = null;\n\n // These fields do not really need to be reset since this object is no\n // longer accessible.\n this._context = null;\n this._rootNodeID = 0;\n this._topLevelWrapper = null;\n\n // Delete the reference from the instance to this internal representation\n // which allow the internals to be properly cleaned up even if the user\n // leaks a reference to the public instance.\n ReactInstanceMap.remove(inst);\n\n // Some existing components rely on inst.props even after they've been\n // destroyed (in event handlers).\n // TODO: inst.props = null;\n // TODO: inst.state = null;\n // TODO: inst.context = null;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _maskContext: function (context) {\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`, and asserts that they are valid.\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _processContext: function (context) {\n var maskedContext = this._maskContext(context);\n if (process.env.NODE_ENV !== 'production') {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkContextTypes(Component.contextTypes, maskedContext, 'context');\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function (currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n var childContext;\n\n if (inst.getChildContext) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\n if (childContext) {\n !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (process.env.NODE_ENV !== 'production') {\n this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function (typeSpecs, values, location) {\n if (process.env.NODE_ENV !== 'production') {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n }\n },\n\n receiveComponent: function (nextElement, transaction, nextContext) {\n var prevElement = this._currentElement;\n var prevContext = this._context;\n\n this._pendingElement = null;\n\n this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n },\n\n /**\n * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n * is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\n }\n },\n\n /**\n * Perform an update to a mounted component. The componentWillReceiveProps and\n * shouldComponentUpdate methods are called, then (assuming the update isn't\n * skipped) the remaining update lifecycle methods are called and the DOM\n * representation is updated.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevParentElement\n * @param {ReactElement} nextParentElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\n // An update here will schedule an update but immediately set\n // _pendingStateQueue which will ensure that any state updates gets\n // immediately reconciled instead of waiting for the next batch.\n if (willReceive && inst.componentWillReceiveProps) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\n if (shouldUpdate) {\n this._pendingForceUpdate = false;\n // Will set `this.props`, `this.state` and `this.context`.\n this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n } else {\n // If it's determined that a component should not update, we still want\n // to set props and state but we shortcut the rest of the update.\n this._currentElement = nextParentElement;\n this._context = nextUnmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n }\n },\n\n _processPendingState: function (props, context) {\n var inst = this._instance;\n var queue = this._pendingStateQueue;\n var replace = this._pendingReplaceState;\n this._pendingReplaceState = false;\n this._pendingStateQueue = null;\n\n if (!queue) {\n return inst.state;\n }\n\n if (replace && queue.length === 1) {\n return queue[0];\n }\n\n var nextState = _assign({}, replace ? queue[0] : inst.state);\n for (var i = replace ? 1 : 0; i < queue.length; i++) {\n var partial = queue[i];\n _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n }\n\n return nextState;\n },\n\n /**\n * Merges new props and state, notifies delegate methods of update and\n * performs update.\n *\n * @param {ReactElement} nextElement Next element\n * @param {object} nextProps Next public object to set as properties.\n * @param {?object} nextState Next object to set as state.\n * @param {?object} nextContext Next public object to set as context.\n * @param {ReactReconcileTransaction} transaction\n * @param {?object} unmaskedContext\n * @private\n */\n _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var _this2 = this;\n\n var inst = this._instance;\n\n var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n var prevProps;\n var prevState;\n var prevContext;\n if (hasComponentDidUpdate) {\n prevProps = inst.props;\n prevState = inst.state;\n prevContext = inst.context;\n }\n\n if (inst.componentWillUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\n }\n\n this._currentElement = nextElement;\n this._context = unmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n\n this._updateRenderedComponent(transaction, unmaskedContext);\n\n if (hasComponentDidUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\n }\n },\n\n /**\n * Call the component's `render` method and update the DOM accordingly.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n _updateRenderedComponent: function (transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function () {\n var inst = this._instance;\n var renderedElement;\n\n if (process.env.NODE_ENV !== 'production') {\n renderedElement = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedElement = inst.render();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedElement === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedElement = null;\n }\n }\n\n return renderedElement;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function () {\n var renderedElement;\n if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedElement;\n },\n\n /**\n * Lazily allocates the refs object and stores `component` as `ref`.\n *\n * @param {string} ref Reference name.\n * @param {component} component Component to store as `ref`.\n * @final\n * @private\n */\n attachRef: function (ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n var publicComponentInstance = component.getPublicInstance();\n if (process.env.NODE_ENV !== 'production') {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;\n }\n var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n refs[ref] = publicComponentInstance;\n },\n\n /**\n * Detaches a reference name.\n *\n * @param {string} ref Name to dereference.\n * @final\n * @private\n */\n detachRef: function (ref) {\n var refs = this.getPublicInstance().refs;\n delete refs[ref];\n },\n\n /**\n * Get a text description of the component that can be used to identify it\n * in error messages.\n * @return {string} The name or null.\n * @internal\n */\n getName: function () {\n var type = this._currentElement.type;\n var constructor = this._instance && this._instance.constructor;\n return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n },\n\n /**\n * Get the publicly accessible representation of this component - i.e. what\n * is exposed by refs and returned by render. Can be null for stateless\n * components.\n *\n * @return {ReactComponent} the public component instance.\n * @internal\n */\n getPublicInstance: function () {\n var inst = this._instance;\n if (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n\n};\n\nmodule.exports = ReactCompositeComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactCompositeComponent.js\n// module id = 910\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactMount = require('./ReactMount');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n findDOMNode: findDOMNode,\n render: ReactMount.render,\n unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n version: ReactVersion,\n\n /* eslint-disable camelcase */\n unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n ComponentTree: {\n getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n getNodeFromInstance: function (inst) {\n // inst is an internal instance (but could be a composite)\n if (inst._renderedComponent) {\n inst = getHostComponentFromComposite(inst);\n }\n if (inst) {\n return ReactDOMComponentTree.getNodeFromInstance(inst);\n } else {\n return null;\n }\n }\n },\n Mount: ReactMount,\n Reconciler: ReactReconciler\n });\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n // First check if devtools is not installed\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n // Firefox does not have the issue with devtools loaded over file://\n var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n var testFunc = function testFn() {};\n process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;\n\n // If we're in IE8, check to see if we are in compatibility mode and provide\n // information on preventing compatibility mode\n var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />') : void 0;\n\n var expectedFeatures = [\n // shims\n Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.trim];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n break;\n }\n }\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactInstrumentation = require('./ReactInstrumentation');\n var ReactDOMUnknownPropertyHook = require('./ReactDOMUnknownPropertyHook');\n var ReactDOMNullInputValuePropHook = require('./ReactDOMNullInputValuePropHook');\n var ReactDOMInvalidARIAHook = require('./ReactDOMInvalidARIAHook');\n\n ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);\n}\n\nmodule.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOM.js\n// module id = 911\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMNamespaces = require('./DOMNamespaces');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { 'string': true, 'number': true };\n\nvar STYLE = 'style';\nvar HTML = '__html';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n if (internalInstance) {\n var owner = internalInstance._currentElement._owner || null;\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' This DOM node was rendered by `' + name + '`.';\n }\n }\n }\n return '';\n}\n\nfunction friendlyStringify(obj) {\n if (typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return '[' + obj.map(friendlyStringify).join(', ') + ']';\n } else {\n var pairs = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n }\n }\n return '{' + pairs.join(', ') + '}';\n }\n } else if (typeof obj === 'string') {\n return JSON.stringify(obj);\n } else if (typeof obj === 'function') {\n return '[function object]';\n }\n // Differs from JSON.stringify in that undefined because undefined and that\n // inf and nan don't become null\n return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n if (style1 == null || style2 == null) {\n return;\n }\n if (shallowEqual(style1, style2)) {\n return;\n }\n\n var componentName = component._tag;\n var owner = component._currentElement._owner;\n var ownerName;\n if (owner) {\n ownerName = owner.getName();\n }\n\n var hash = ownerName + '|' + componentName;\n\n if (styleMutationWarning.hasOwnProperty(hash)) {\n return;\n }\n\n styleMutationWarning[hash] = true;\n\n process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n }\n !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // IE8 has no API for event capturing and the `onScroll` event doesn't\n // bubble.\n process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\\'t support the `onScroll` event') : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev = function (content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n topAbort: 'abort',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTimeUpdate: 'timeupdate',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting'\n};\n\nfunction trapBubbledEventsLocal() {\n var inst = this;\n // If a component renders to null or if another component fatals and causes\n // the state of the tree to be corrupted, `node` here can be null.\n !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'video':\n case 'audio':\n\n inst._wrapperState.listeners = [];\n // Create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(event, mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];\n break;\n }\n}\n\nfunction postUpdateSelectWrapper() {\n ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n 'area': true,\n 'base': true,\n 'br': true,\n 'col': true,\n 'embed': true,\n 'hr': true,\n 'img': true,\n 'input': true,\n 'keygen': true,\n 'link': true,\n 'meta': true,\n 'param': true,\n 'source': true,\n 'track': true,\n 'wbr': true\n};\n\nvar newlineEatingTags = {\n 'listing': true,\n 'pre': true,\n 'textarea': true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n 'menuitem': true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n if (!hasOwnProperty.call(validatedTagCache, tag)) {\n !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n * - Event listeners: `onClick`, `onMouseDown`, etc.\n * - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (process.env.NODE_ENV !== 'production') {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\n } else {\n var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n var tagContent = this._createContentMarkup(transaction, props, context);\n if (!tagContent && omittedCloseTags[this._tag]) {\n mountImage = tagOpen + '/>';\n } else {\n mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n }\n }\n\n switch (this._tag) {\n case 'input':\n transaction.getReactMountReady().enqueue(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\n break;\n }\n\n return mountImage;\n },\n\n /**\n * Creates markup for the open tag and all attributes.\n *\n * This method has side effects because events get registered.\n *\n * Iterating over object properties is faster than iterating over arrays.\n * @see http://jsperf.com/obj-vs-arr-iteration\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @return {string} Markup of opening tag.\n */\n _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n var ret = '<' + this._currentElement.type;\n\n for (var propKey in props) {\n if (!props.hasOwnProperty(propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (registrationNameModules.hasOwnProperty(propKey)) {\n if (propValue) {\n enqueuePutListener(this, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (process.env.NODE_ENV !== 'production') {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = _assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\n } else {\n markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n }\n if (markup) {\n ret += ' ' + markup;\n }\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (transaction.renderToStaticMarkup) {\n return ret;\n }\n\n if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\n },\n\n /**\n * Creates markup for the content between the tags.\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @param {object} context\n * @return {string} Content markup.\n */\n _createContentMarkup: function (transaction, props, context) {\n var ret = '';\n\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n ret = innerHTML.__html;\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n ret = escapeTextContentForBrowser(contentToUse);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n ret = mountImages.join('');\n }\n }\n if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n return '\\n' + ret;\n } else {\n return ret;\n }\n },\n\n _createInitialChildren: function (transaction, props, context, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, innerHTML.__html);\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n // TODO: Validate that text is allowed as a child of this node\n if (contentToUse != null) {\n // Avoid setting textContent when the text is empty. In IE11 setting\n // textContent on a text area will cause the placeholder to not\n // show within the textarea until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n if (contentToUse !== '') {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, mountImages[i]);\n }\n }\n }\n },\n\n /**\n * Receives a next element and updates the component.\n *\n * @internal\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} context\n */\n receiveComponent: function (nextElement, transaction, context) {\n var prevElement = this._currentElement;\n this._currentElement = nextElement;\n this.updateComponent(transaction, prevElement, nextElement, context);\n },\n\n /**\n * Updates a DOM component after it has already been allocated and\n * attached to the DOM. Reconciles the root DOM node, then recurses.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @param {ReactElement} nextElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevElement, nextElement, context) {\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\n }\n },\n\n /**\n * Reconciles the properties by detecting differences in property values and\n * updating the DOM as necessary. This function is probably the single most\n * critical path for performance optimization.\n *\n * TODO: Benchmark whether checking for changed values in memory actually\n * improves performance (especially statically positioned elements).\n * TODO: Benchmark the effects of putting this at the top since 99% of props\n * do not change for a given reconciliation.\n * TODO: Benchmark areas that can be improved with caching.\n *\n * @private\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {?DOMElement} node\n */\n _updateDOMProperties: function (lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = this._previousStyleCopy;\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n this._previousStyleCopy = null;\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (lastProps[propKey]) {\n // Only call deleteListener if there was a listener previously or\n // else willDeleteListener gets called when there wasn't actually a\n // listener (e.g., onClick={null})\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (process.env.NODE_ENV !== 'production') {\n checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n this._previousStyle = nextProp;\n }\n nextProp = this._previousStyleCopy = _assign({}, nextProp);\n } else {\n this._previousStyleCopy = null;\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n styleUpdates = nextProp;\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp) {\n enqueuePutListener(this, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (nextProp != null) {\n DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, propKey);\n }\n }\n }\n if (styleUpdates) {\n CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\n }\n },\n\n /**\n * Reconciles the children with the various properties that affect the\n * children content.\n *\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n */\n _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n // Note the use of `!=` which checks for null or undefined.\n var lastChildren = lastContent != null ? null : lastProps.children;\n var nextChildren = nextContent != null ? null : nextProps.children;\n\n // If we're switching from children to content/html or vice versa, remove\n // the old content\n var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n if (lastChildren != null && nextChildren == null) {\n this.updateChildren(null, transaction, context);\n } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n this.updateTextContent('');\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function () {\n return getNode(this);\n },\n\n /**\n * Destroys all event registrations for this instance. Does not remove from\n * the DOM. That must be done by the parent.\n *\n * @internal\n */\n unmountComponent: function (safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n var listeners = this._wrapperState.listeners;\n if (listeners) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].remove();\n }\n }\n break;\n case 'html':\n case 'head':\n case 'body':\n /**\n * Components like <html> <head> and <body> can't be removed or added\n * easily in a cross-browser way, however it's valuable to be able to\n * take advantage of React's reconciliation for styling and <title>\n * management. So we just document it and throw in dangerous cases.\n */\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function () {\n return getNode(this);\n }\n\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMComponent.js\n// module id = 912\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar validateDOMNesting = require('./validateDOMNesting');\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (process.env.NODE_ENV !== 'production') {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMContainerInfo.js\n// module id = 913\n// module chunks = 0","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar ReactDOMEmptyComponent = function (instantiate) {\n // ReactCompositeComponent uses this:\n this._currentElement = null;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n this._domID = 0;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var domID = hostContainerInfo._idCounter++;\n this._domID = domID;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var nodeValue = ' react-empty: ' + this._domID + ' ';\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var node = ownerDocument.createComment(nodeValue);\n ReactDOMComponentTree.precacheNode(this, node);\n return DOMLazyTree(node);\n } else {\n if (transaction.renderToStaticMarkup) {\n // Normally we'd insert a comment node, but since this is a situation\n // where React won't take over (static pages), we can simply return\n // nothing.\n return '';\n }\n return '<!--' + nodeValue + '-->';\n }\n },\n receiveComponent: function () {},\n getHostNode: function () {\n return ReactDOMComponentTree.getNodeFromInstance(this);\n },\n unmountComponent: function () {\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMEmptyComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMEmptyComponent.js\n// module id = 914\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: true,\n useFiber: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMFeatureFlags.js\n// module id = 915\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n\n /**\n * Updates a component's children by processing a series of updates.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMIDOperations.js\n// module id = 916\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n getHostProps: function (inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: value != null ? value : inst._wrapperState.initialValue,\n checked: checked != null ? checked : inst._wrapperState.initialChecked,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n controlled: isControlled(props)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n if (process.env.NODE_ENV !== 'production') {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n // eslint-disable-next-line\n if (value != valueAsNumber) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n // eslint-disable-next-line\n } else if (value != node.value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n // Here we use asap to wait until all updates have propagated, which\n // is important when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n ReactUpdates.asap(forceUpdateIfMounted, this);\n\n var name = props.name;\n if (props.type === 'radio' && name != null) {\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form, let's just use the global\n // `querySelectorAll` to ensure we don't miss anything.\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n }\n // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n }\n }\n\n return returnValue;\n}\n\nmodule.exports = ReactDOMInput;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMInput.js\n// module id = 917\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar warning = require('fbjs/lib/warning');\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else if (!didWarnInvalidOptionChildren) {\n didWarnInvalidOptionChildren = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function (inst, props, hostParent) {\n // TODO (yungsters): Remove support for `selected` in <option>.\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0;\n }\n\n // Look up whether this option is 'selected'\n var selectValue = null;\n if (hostParent != null) {\n var selectParent = hostParent;\n\n if (selectParent._tag === 'optgroup') {\n selectParent = selectParent._hostParent;\n }\n\n if (selectParent != null && selectParent._tag === 'select') {\n selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n }\n }\n\n // If the value is null (e.g., no specified value or after initial mount)\n // or missing (e.g., for <datalist>), we don't change props.selected\n var selected = null;\n if (selectValue != null) {\n var value;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = flattenChildren(props.children);\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n postMountWrapper: function (inst) {\n // value=\"\" should make a value attribute (#6219)\n var props = inst._currentElement.props;\n if (props.value != null) {\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n node.setAttribute('value', props.value);\n }\n },\n\n getHostProps: function (inst, props) {\n var hostProps = _assign({ selected: undefined, children: undefined }, props);\n\n // Read state only from initial mount because <select> updates value\n // manually; we need the initial state only for server rendering\n if (inst._wrapperState.selected != null) {\n hostProps.selected = inst._wrapperState.selected;\n }\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n }\n\n};\n\nmodule.exports = ReactDOMOption;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMOption.js\n// module id = 918\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar getNodeForCharacterOffset = require('./getNodeForCharacterOffset');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n var selection = document.selection;\n var selectedRange = selection.createRange();\n var selectedLength = selectedRange.text.length;\n\n // Duplicate selection so we can move range without breaking user selection.\n var fromStart = selectedRange.duplicate();\n fromStart.moveToElementText(node);\n fromStart.setEndPoint('EndToStart', selectedRange);\n\n var startOffset = fromStart.text.length;\n var endOffset = startOffset + selectedLength;\n\n return {\n start: startOffset,\n end: endOffset\n };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n var selection = window.getSelection && window.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode;\n var anchorOffset = selection.anchorOffset;\n var focusNode = selection.focusNode;\n var focusOffset = selection.focusOffset;\n\n var currentRange = selection.getRangeAt(0);\n\n // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n // divs do not seem to expose properties, triggering a \"Permission denied\n // error\" if any of its properties are accessed. The only seemingly possible\n // way to avoid erroring is to access a property that typically works for\n // non-anonymous divs and catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n try {\n /* eslint-disable no-unused-expressions */\n currentRange.startContainer.nodeType;\n currentRange.endContainer.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n // If the node and offset values are the same, the selection is collapsed.\n // `Selection.isCollapsed` is available natively, but IE sometimes gets\n // this value wrong.\n var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n var tempRange = currentRange.cloneRange();\n tempRange.selectNodeContents(node);\n tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n var end = start + rangeLength;\n\n // Detect whether the selection is backward.\n var detectionRange = document.createRange();\n detectionRange.setStart(anchorNode, anchorOffset);\n detectionRange.setEnd(focusNode, focusOffset);\n var isBackward = detectionRange.collapsed;\n\n return {\n start: isBackward ? end : start,\n end: isBackward ? start : end\n };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n var range = document.selection.createRange().duplicate();\n var start, end;\n\n if (offsets.end === undefined) {\n start = offsets.start;\n end = start;\n } else if (offsets.start > offsets.end) {\n start = offsets.end;\n end = offsets.start;\n } else {\n start = offsets.start;\n end = offsets.end;\n }\n\n range.moveToElementText(node);\n range.moveStart('character', start);\n range.setEndPoint('EndToStart', range);\n range.moveEnd('character', end - start);\n range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n if (!window.getSelection) {\n return;\n }\n\n var selection = window.getSelection();\n var length = node[getTextContentAccessor()].length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length);\n\n // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n var range = document.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n /**\n * @param {DOMElement} node\n */\n getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n /**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMSelection.js\n// module id = 919\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar validateDOMNesting = require('./validateDOMNesting');\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n * - When mounting text into the DOM, adjacent text nodes are merged.\n * - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings between comment nodes so that they\n * can undergo the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\n\n /**\n * Creates the markup for this text node. This node is not intended to have\n * any features besides containing text content.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\n }\n },\n\n /**\n * Updates this component by updating the text content.\n *\n * @param {ReactText} nextText The next text content\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function (nextText, transaction) {\n if (nextText !== this._currentElement) {\n this._currentElement = nextText;\n var nextStringText = '' + nextText;\n if (nextStringText !== this._stringText) {\n // TODO: Save this as pending props and use performUpdateIfNecessary\n // and/or updateComponent to do the actual update for consistency with\n // other component types?\n this._stringText = nextStringText;\n var commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function () {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function () {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMTextComponent.js\n// module id = 920\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMTextarea.updateWrapper(this);\n }\n}\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n getHostProps: function (inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = props.children;\n if (children != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function (inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === inst._wrapperState.initialValue) {\n node.value = textContent;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n ReactUpdates.asap(forceUpdateIfMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMTextarea.js\n// module id = 921\n// module chunks = 0","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = instA._hostParent;\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = instB._hostParent;\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB) {\n return instA;\n }\n instA = instA._hostParent;\n instB = instB._hostParent;\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n while (instB) {\n if (instB === instA) {\n return true;\n }\n instB = instB._hostParent;\n }\n return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n !('_hostNode' in inst) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = inst._hostParent;\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\n}\n\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (from && from !== common) {\n pathFrom.push(from);\n from = from._hostParent;\n }\n var pathTo = [];\n while (to && to !== common) {\n pathTo.push(to);\n to = to._hostParent;\n }\n var i;\n for (i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], 'bubbled', argFrom);\n }\n for (i = pathTo.length; i-- > 0;) {\n fn(pathTo[i], 'captured', argTo);\n }\n}\n\nmodule.exports = {\n isAncestor: isAncestor,\n getLowestCommonAncestor: getLowestCommonAncestor,\n getParentInstance: getParentInstance,\n traverseTwoPhase: traverseTwoPhase,\n traverseEnterLeave: traverseEnterLeave\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDOMTreeTraversal.js\n// module id = 922\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\nvar RESET_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: function () {\n ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n this.reinitializeTransaction();\n}\n\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, {\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n isBatchingUpdates: false,\n\n /**\n * Call the provided function in a context within which calls to `setState`\n * and friends are batched such that components aren't updated unnecessarily.\n */\n batchedUpdates: function (callback, a, b, c, d, e) {\n var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n // The code is written this way to avoid extra allocations\n if (alreadyBatchingUpdates) {\n return callback(a, b, c, d, e);\n } else {\n return transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDefaultBatchingStrategy.js\n// module id = 923\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ARIADOMPropertyConfig = require('./ARIADOMPropertyConfig');\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMEmptyComponent = require('./ReactDOMEmptyComponent');\nvar ReactDOMTreeTraversal = require('./ReactDOMTreeTraversal');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\n\nvar alreadyInjected = false;\n\nfunction inject() {\n if (alreadyInjected) {\n // TODO: This is currently true because these injections are shared between\n // the client and the server package. They should be built independently\n // and not share any injection state. Then this problem will be solved.\n return;\n }\n alreadyInjected = true;\n\n ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n /**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\n ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\n\n /**\n * Some important event plugins included by default (without having to require\n * them).\n */\n ReactInjection.EventPluginHub.injectEventPluginsByName({\n SimpleEventPlugin: SimpleEventPlugin,\n EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n ChangeEventPlugin: ChangeEventPlugin,\n SelectEventPlugin: SelectEventPlugin,\n BeforeInputEventPlugin: BeforeInputEventPlugin\n });\n\n ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n return new ReactDOMEmptyComponent(instantiate);\n });\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n inject: inject\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactDefaultInjection.js\n// module id = 924\n// module chunks = 0","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactElementSymbol.js\n// module id = 925\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\n\nfunction runEventQueueInBatch(events) {\n EventPluginHub.enqueueEvents(events);\n EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n\n /**\n * Streams a fired top-level event to `EventPluginHub` where plugins have the\n * opportunity to create `ReactEvent`s to be dispatched.\n */\n handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactEventEmitterMixin.js\n// module id = 926\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n this.topLevelType = topLevelType;\n this.nativeEvent = nativeEvent;\n this.ancestors = [];\n}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function () {\n this.topLevelType = null;\n this.nativeEvent = null;\n this.ancestors.length = 0;\n }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\nfunction scrollValueMonitor(cb) {\n var scrollPosition = getUnboundedScrollPosition(window);\n cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n _enabled: true,\n _handleTopLevel: null,\n\n WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n setHandleTopLevel: function (handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function (enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function () {\n return ReactEventListener._enabled;\n },\n\n /**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapBubbledEvent: function (topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n /**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapCapturedEvent: function (topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function (refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function (topLevelType, nativeEvent) {\n if (!ReactEventListener._enabled) {\n return;\n }\n\n var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n TopLevelCallbackBookKeeping.release(bookKeeping);\n }\n }\n};\n\nmodule.exports = ReactEventListener;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactEventListener.js\n// module id = 927\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactHostComponent = require('./ReactHostComponent');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactInjection.js\n// module id = 928\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\n\nvar ReactMarkupChecksum = {\n CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n /**\n * @param {string} markup Markup string\n * @return {string} Markup string with checksum attribute attached\n */\n addChecksumToMarkup: function (markup) {\n var checksum = adler32(markup);\n\n // Add checksum (handle both parent tags, comments and self-closing tags)\n if (COMMENT_START.test(markup)) {\n return markup;\n } else {\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n }\n },\n\n /**\n * @param {string} markup to use\n * @param {DOMElement} element root React element\n * @returns {boolean} whether or not the markup is the same\n */\n canReuseMarkup: function (markup, element) {\n var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n var markupChecksum = adler32(markup);\n return markupChecksum === existingChecksum;\n }\n};\n\nmodule.exports = ReactMarkupChecksum;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactMarkupChecksum.js\n// module id = 929\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar flattenChildren = require('./flattenChildren');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'INSERT_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'MOVE_EXISTING',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'REMOVE_NODE',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'SET_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'TEXT_CONTENT',\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n var getDebugID = function (inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function (children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n /**\n * Provides common functionality for components that must reconcile multiple\n * children. This is used by `ReactDOMComponent` to mount, update, and\n * unmount child components.\n *\n * @lends {ReactMultiChild.prototype}\n */\n Mixin: {\n\n _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n if (process.env.NODE_ENV !== 'production') {\n var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n },\n\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildren Nested child maps.\n * @return {array} An array of mounted representations.\n * @internal\n */\n mountChildren: function (nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, children);\n }\n\n return mountImages;\n },\n\n /**\n * Replaces any rendered children with a text content string.\n *\n * @param {string} nextContent String of content.\n * @internal\n */\n updateTextContent: function (nextContent) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\n },\n\n /**\n * Replaces any rendered children with a markup string.\n *\n * @param {string} nextMarkup String of markup.\n * @internal\n */\n updateMarkup: function (nextMarkup) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\n },\n\n /**\n * Updates the rendered children with new children.\n *\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n updateChildren: function (nextNestedChildrenElements, transaction, context) {\n // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\n /**\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\n var name;\n // `nextIndex` will increment for each child in `nextChildren`, but\n // `lastIndex` will be the last index visited in `prevChildren`.\n var nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var nextChild = nextChildren[name];\n if (prevChild === nextChild) {\n updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n prevChild._mountIndex = nextIndex;\n } else {\n if (prevChild) {\n // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function (safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\n this._renderedChildren = null;\n },\n\n /**\n * Moves a child component to the supplied index.\n *\n * @param {ReactComponent} child Component to move.\n * @param {number} toIndex Destination index of the element.\n * @param {number} lastIndex Last index visited of the siblings of `child`.\n * @protected\n */\n moveChild: function (child, afterNode, toIndex, lastIndex) {\n // If the index of `child` is less than `lastIndex`, then it needs to\n // be moved. Otherwise, we do not need to move it because a child will be\n // inserted or moved before `child`.\n if (child._mountIndex < lastIndex) {\n return makeMove(child, afterNode, toIndex);\n }\n },\n\n /**\n * Creates a child component.\n *\n * @param {ReactComponent} child Component to create.\n * @param {string} mountImage Markup to insert.\n * @protected\n */\n createChild: function (child, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function (child, node) {\n return makeRemove(child, node);\n },\n\n /**\n * Mounts a child with the supplied name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to mount.\n * @param {string} name Name of the child.\n * @param {number} index Index at which to insert the child.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, mountImage);\n },\n\n /**\n * Unmounts a rendered child.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to unmount.\n * @private\n */\n _unmountChild: function (child, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactMultiChild.js\n// module id = 930\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\nfunction isValidOwner(object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n}\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return (\n * <div onClick={this.handleClick}>\n * <CustomComponent ref=\"custom\" />\n * </div>\n * );\n * },\n * handleClick: function() {\n * this.refs.custom.handleClick();\n * },\n * componentDidMount: function() {\n * this.refs.custom.initialize();\n * }\n * });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n /**\n * Adds a component by ref to an owner component.\n *\n * @param {ReactComponent} component Component to reference.\n * @param {string} ref Name by which to refer to the component.\n * @param {ReactOwner} owner Component on which to record the ref.\n * @final\n * @internal\n */\n addComponentAsRefTo: function (component, ref, owner) {\n !isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0;\n owner.attachRef(ref, component);\n },\n\n /**\n * Removes a component by ref from an owner component.\n *\n * @param {ReactComponent} component Component to dereference.\n * @param {string} ref Name of the ref to remove.\n * @param {ReactOwner} owner Component on which the ref is recorded.\n * @final\n * @internal\n */\n removeComponentAsRefFrom: function (component, ref, owner) {\n !isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('120') : void 0;\n var ownerPublicInstance = owner.getPublicInstance();\n // Check that `component`'s owner is still alive and that `component` is still the current ref\n // because we do not want to detach the ref if another component stole it.\n if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n\n};\n\nmodule.exports = ReactOwner;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactOwner.js\n// module id = 931\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactPropTypesSecret.js\n// module id = 932\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar Transaction = require('./Transaction');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n /**\n * @return {Selection} Selection information.\n */\n initialize: ReactInputSelection.getSelectionInformation,\n /**\n * @param {Selection} sel Selection information returned from `initialize`.\n */\n close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n /**\n * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n * the reconciliation.\n */\n initialize: function () {\n var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n ReactBrowserEventEmitter.setEnabled(false);\n return currentlyEnabled;\n },\n\n /**\n * @param {boolean} previouslyEnabled Enabled status of\n * `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n * restores the previous value.\n */\n close: function (previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function () {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function () {\n this.reactMountReady.notifyAll();\n }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n * modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n * track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(useCreateElement) {\n this.reinitializeTransaction();\n // Only server-side rendering really needs this option (see\n // `ReactServerRendering`), but server-side uses\n // `ReactServerRenderingTransaction` instead. This option is here so that it's\n // accessible and defaults to false when `ReactDOMComponent` and\n // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = useCreateElement;\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array<object>} List of operation wrap procedures.\n * TODO: convert to array<TransactionWrapper>\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return this.reactMountReady;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function () {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function (checkpoint) {\n this.reactMountReady.rollback(checkpoint);\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactReconcileTransaction.js\n// module id = 933\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar ReactOwner = require('./ReactOwner');\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(component.getPublicInstance());\n } else {\n // Legacy ref\n ReactOwner.addComponentAsRefTo(component, ref, owner);\n }\n}\n\nfunction detachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(null);\n } else {\n // Legacy ref\n ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n }\n}\n\nReactRef.attachRefs = function (instance, element) {\n if (element === null || typeof element !== 'object') {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n attachRef(ref, instance, element._owner);\n }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n // If either the owner or a `ref` has changed, make sure the newest owner\n // has stored a reference to `this`, and the previous owner (if different)\n // has forgotten the reference to `this`. We use the element instead\n // of the public this.props because the post processing cannot determine\n // a ref. The ref conceptually lives on the element.\n\n // TODO: Should this even be possible? The owner cannot change because\n // it's forbidden by shouldUpdateReactComponent. The ref can change\n // if you swap the keys of but not the refs. Reconsider where this check\n // is made. It probably belongs where the key checking and\n // instantiateReactComponent is done.\n\n var prevRef = null;\n var prevOwner = null;\n if (prevElement !== null && typeof prevElement === 'object') {\n prevRef = prevElement.ref;\n prevOwner = prevElement._owner;\n }\n\n var nextRef = null;\n var nextOwner = null;\n if (nextElement !== null && typeof nextElement === 'object') {\n nextRef = nextElement.ref;\n nextOwner = nextElement._owner;\n }\n\n return prevRef !== nextRef ||\n // If owner changes but we have an unchanged function ref, don't update refs\n typeof nextRef === 'string' && nextOwner !== prevOwner;\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || typeof element !== 'object') {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n detachRef(ref, instance, element._owner);\n }\n};\n\nmodule.exports = ReactRef;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactRef.js\n// module id = 934\n// module chunks = 0","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\nvar Transaction = require('./Transaction');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactServerUpdateQueue = require('./ReactServerUpdateQueue');\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\nvar noopCallbackQueue = {\n enqueue: function () {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.useCreateElement = false;\n this.updateQueue = new ReactServerUpdateQueue(this);\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array} Empty list of operation wrap procedures.\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return noopCallbackQueue;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return this.updateQueue;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {},\n\n checkpoint: function () {},\n\n rollback: function () {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactServerRenderingTransaction.js\n// module id = 935\n// module chunks = 0","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n\n\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) {\n return false;\n };\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\n }\n };\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\n };\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} completeState Next state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\n };\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactServerUpdateQueue.js\n// module id = 936\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nmodule.exports = '15.5.4';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/ReactVersion.js\n// module id = 937\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n accentHeight: 'accent-height',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 'alignment-baseline',\n allowReorder: 'allowReorder',\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 'arabic-form',\n ascent: 0,\n attributeName: 'attributeName',\n attributeType: 'attributeType',\n autoReverse: 'autoReverse',\n azimuth: 0,\n baseFrequency: 'baseFrequency',\n baseProfile: 'baseProfile',\n baselineShift: 'baseline-shift',\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 'calcMode',\n capHeight: 'cap-height',\n clip: 0,\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n clipPathUnits: 'clipPathUnits',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n contentScriptType: 'contentScriptType',\n contentStyleType: 'contentStyleType',\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 'diffuseConstant',\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 'dominant-baseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 'edgeMode',\n elevation: 0,\n enableBackground: 'enable-background',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 'externalResourcesRequired',\n fill: 0,\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n filter: 0,\n filterRes: 'filterRes',\n filterUnits: 'filterUnits',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n focusable: 0,\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n glyphRef: 'glyphRef',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n hanging: 0,\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n ideographic: 0,\n imageRendering: 'image-rendering',\n 'in': 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 'kernelMatrix',\n kernelUnitLength: 'kernelUnitLength',\n kerning: 0,\n keyPoints: 'keyPoints',\n keySplines: 'keySplines',\n keyTimes: 'keyTimes',\n lengthAdjust: 'lengthAdjust',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n limitingConeAngle: 'limitingConeAngle',\n local: 0,\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n markerHeight: 'markerHeight',\n markerUnits: 'markerUnits',\n markerWidth: 'markerWidth',\n mask: 0,\n maskContentUnits: 'maskContentUnits',\n maskUnits: 'maskUnits',\n mathematical: 0,\n mode: 0,\n numOctaves: 'numOctaves',\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pathLength: 'pathLength',\n patternContentUnits: 'patternContentUnits',\n patternTransform: 'patternTransform',\n patternUnits: 'patternUnits',\n pointerEvents: 'pointer-events',\n points: 0,\n pointsAtX: 'pointsAtX',\n pointsAtY: 'pointsAtY',\n pointsAtZ: 'pointsAtZ',\n preserveAlpha: 'preserveAlpha',\n preserveAspectRatio: 'preserveAspectRatio',\n primitiveUnits: 'primitiveUnits',\n r: 0,\n radius: 0,\n refX: 'refX',\n refY: 'refY',\n renderingIntent: 'rendering-intent',\n repeatCount: 'repeatCount',\n repeatDur: 'repeatDur',\n requiredExtensions: 'requiredExtensions',\n requiredFeatures: 'requiredFeatures',\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 'shape-rendering',\n slope: 0,\n spacing: 0,\n specularConstant: 'specularConstant',\n specularExponent: 'specularExponent',\n speed: 0,\n spreadMethod: 'spreadMethod',\n startOffset: 'startOffset',\n stdDeviation: 'stdDeviation',\n stemh: 0,\n stemv: 0,\n stitchTiles: 'stitchTiles',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n surfaceScale: 'surfaceScale',\n systemLanguage: 'systemLanguage',\n tableValues: 'tableValues',\n targetX: 'targetX',\n targetY: 'targetY',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n textLength: 'textLength',\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicode: 0,\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n values: 0,\n vectorEffect: 'vector-effect',\n version: 0,\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n viewBox: 'viewBox',\n viewTarget: 'viewTarget',\n visibility: 0,\n widths: 0,\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n x: 0,\n xHeight: 'x-height',\n x1: 0,\n x2: 0,\n xChannelSelector: 'xChannelSelector',\n xlinkActuate: 'xlink:actuate',\n xlinkArcrole: 'xlink:arcrole',\n xlinkHref: 'xlink:href',\n xlinkRole: 'xlink:role',\n xlinkShow: 'xlink:show',\n xlinkTitle: 'xlink:title',\n xlinkType: 'xlink:type',\n xmlBase: 'xml:base',\n xmlns: 0,\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 'yChannelSelector',\n z: 0,\n zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {},\n DOMAttributeNamespaces: {\n xlinkActuate: NS.xlink,\n xlinkArcrole: NS.xlink,\n xlinkHref: NS.xlink,\n xlinkRole: NS.xlink,\n xlinkShow: NS.xlink,\n xlinkTitle: NS.xlink,\n xlinkType: NS.xlink,\n xmlBase: NS.xml,\n xmlLang: NS.xml,\n xmlSpace: NS.xml\n },\n DOMAttributeNames: {}\n};\n\nObject.keys(ATTRS).forEach(function (key) {\n SVGDOMPropertyConfig.Properties[key] = 0;\n if (ATTRS[key]) {\n SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n }\n});\n\nmodule.exports = SVGDOMPropertyConfig;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SVGDOMPropertyConfig.js\n// module id = 938\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events. See #3639.\nvar hasListener = false;\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n } else if (document.selection) {\n var range = document.selection.createRange();\n return {\n parentElement: range.parentElement(),\n text: range.text,\n top: range.boundingTop,\n left: range.boundingLeft\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n return null;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget);\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement;\n\n EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n\n return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement = null;\n activeElementInst = null;\n lastSelection = null;\n break;\n\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case 'topMouseUp':\n mouseDown = false;\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n case 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n if (registrationName === 'onSelect') {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SelectEventPlugin.js\n// module id = 939\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticAnimationEvent = require('./SyntheticAnimationEvent');\nvar SyntheticClipboardEvent = require('./SyntheticClipboardEvent');\nvar SyntheticEvent = require('./SyntheticEvent');\nvar SyntheticFocusEvent = require('./SyntheticFocusEvent');\nvar SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\nvar SyntheticDragEvent = require('./SyntheticDragEvent');\nvar SyntheticTouchEvent = require('./SyntheticTouchEvent');\nvar SyntheticTransitionEvent = require('./SyntheticTransitionEvent');\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar SyntheticWheelEvent = require('./SyntheticWheelEvent');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getEventCharCode = require('./getEventCharCode');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topAbort':\n case 'topCanPlay':\n case 'topCanPlayThrough':\n case 'topDurationChange':\n case 'topEmptied':\n case 'topEncrypted':\n case 'topEnded':\n case 'topError':\n case 'topInput':\n case 'topInvalid':\n case 'topLoad':\n case 'topLoadedData':\n case 'topLoadedMetadata':\n case 'topLoadStart':\n case 'topPause':\n case 'topPlay':\n case 'topPlaying':\n case 'topProgress':\n case 'topRateChange':\n case 'topReset':\n case 'topSeeked':\n case 'topSeeking':\n case 'topStalled':\n case 'topSubmit':\n case 'topSuspend':\n case 'topTimeUpdate':\n case 'topVolumeChange':\n case 'topWaiting':\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case 'topKeyPress':\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case 'topClick':\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function (inst, registrationName) {\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SimpleEventPlugin.js\n// module id = 940\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticAnimationEvent.js\n// module id = 941\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticClipboardEvent.js\n// module id = 942\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticCompositionEvent.js\n// module id = 943\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticDragEvent.js\n// module id = 944\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticFocusEvent.js\n// module id = 945\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\nvar InputEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticInputEvent.js\n// module id = 946\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventCharCode = require('./getEventCharCode');\nvar getEventKey = require('./getEventKey');\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticKeyboardEvent.js\n// module id = 947\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticTouchEvent.js\n// module id = 948\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticTransitionEvent.js\n// module id = 949\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX :\n // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY :\n // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY :\n // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: null,\n\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/SyntheticWheelEvent.js\n// module id = 950\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n var a = 1;\n var b = 0;\n var i = 0;\n var l = data.length;\n var m = l & ~0x3;\n while (i < m) {\n var n = Math.min(i + 4096, m);\n for (; i < n; i += 4) {\n b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n }\n a %= MOD;\n b %= MOD;\n }\n for (; i < l; i++) {\n b += a += data.charCodeAt(i);\n }\n a %= MOD;\n b %= MOD;\n return a | b << 16;\n}\n\nmodule.exports = adler32;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/adler32.js\n// module id = 951\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar warning = require('fbjs/lib/warning');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n var isNonNumeric = isNaN(value);\n if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n return '' + value; // cast to string\n }\n\n if (typeof value === 'string') {\n if (process.env.NODE_ENV !== 'production') {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n var warned = false;\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n if (!warned) {\n warnings[name] = true;\n }\n }\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/dangerousStyleValue.js\n// module id = 952\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n\n var inst = ReactInstanceMap.get(componentOrElement);\n if (inst) {\n inst = getHostComponentFromComposite(inst);\n return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n }\n\n if (typeof componentOrElement.render === 'function') {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n }\n}\n\nmodule.exports = findDOMNode;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/findDOMNode.js\n// module id = 953\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n}\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && typeof traverseContext === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\n }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/flattenChildren.js\n// module id = 954\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar getEventCharCode = require('./getEventCharCode');\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n 'Esc': 'Escape',\n 'Spacebar': ' ',\n 'Left': 'ArrowLeft',\n 'Up': 'ArrowUp',\n 'Right': 'ArrowRight',\n 'Down': 'ArrowDown',\n 'Del': 'Delete',\n 'Win': 'OS',\n 'Menu': 'ContextMenu',\n 'Apps': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\nmodule.exports = getEventKey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getEventKey.js\n// module id = 955\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nmodule.exports = getIteratorFn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getIteratorFn.js\n// module id = 956\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n node = node.parentNode;\n }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === 3) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\nmodule.exports = getNodeForCharacterOffset;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getNodeForCharacterOffset.js\n// module id = 957\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/getVendorPrefixedEventName.js\n// module id = 958\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/quoteAttributeValueForBrowser.js\n// module id = 959\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/lib/renderSubtreeIntoContainer.js\n// module id = 960\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/~/prop-types/checkPropTypes.js\n// module id = 961\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\nvar factory = require('./factoryWithTypeCheckers');\nmodule.exports = function(isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/~/prop-types/factory.js\n// module id = 962\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/~/prop-types/factoryWithTypeCheckers.js\n// module id = 963\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dom/~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 964\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ga4/dist/format.js\n// module id = 965\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\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; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ga4/dist/ga4.js\n// module id = 966\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ga4/dist/gtag.js\n// module id = 967\n// module chunks = 0","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-ga4/dist/index.js\n// module id = 968\n// module chunks = 0","/** @license React v16.13.1\n * react-is.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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-is/cjs/react-is.production.min.js\n// module id = 969\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _templateObject = _taggedTemplateLiteral(['\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(270deg);\\n }\\n'], ['\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(270deg);\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n 0% {\\n stroke-dashoffset: 62px;\\n }\\n 50% {\\n stroke-dashoffset: ', 'px;\\n transform: rotate(135deg);\\n }\\n 100% {\\n stroke-dashoffset: 62px;\\n transform: rotate(450deg);\\n }\\n'], ['\\n 0% {\\n stroke-dashoffset: 62px;\\n }\\n 50% {\\n stroke-dashoffset: ', 'px;\\n transform: rotate(135deg);\\n }\\n 100% {\\n stroke-dashoffset: 62px;\\n transform: rotate(450deg);\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n position: absolute;\\n z-index: ', ';\\n left: 50%;\\n border-radius: 20px;\\n width: 40px;\\n height: 40px;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\\n'], ['\\n position: absolute;\\n z-index: ', ';\\n left: 50%;\\n border-radius: 20px;\\n width: 40px;\\n height: 40px;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n transform-origin: center;\\n animation: ', ' 1.4s linear infinite;\\n'], ['\\n transform-origin: center;\\n animation: ', ' 1.4s linear infinite;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n stroke-dasharray: 62px;\\n transform-origin: center;\\n animation: ', ' 1.4s ease-in-out infinite;\\n'], ['\\n stroke-dasharray: 62px;\\n transform-origin: center;\\n animation: ', ' 1.4s ease-in-out infinite;\\n']);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = require('styled-components');\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar rotating = (0, _styledComponents.keyframes)(_templateObject);\nvar dashed = (0, _styledComponents.keyframes)(_templateObject2, 62 / 4);\n\nvar Component = _styledComponents2.default.div(_templateObject3, function (props) {\n return props.zIndex;\n});\n\nvar RotatingSvg = _styledComponents2.default.svg(_templateObject4, rotating);\n\nvar DashedCircle = _styledComponents2.default.circle(_templateObject5, dashed);\n\nexports.default = function (props, state) {\n var max = state.max,\n yRefreshing = state.yRefreshing,\n y = state.y,\n phase = state.phase;\n var zIndex = props.zIndex,\n color = props.color,\n bgColor = props.bgColor;\n\n var p = Math.atan(y / max);\n var pMax = Math.atan(yRefreshing / max);\n var r = Math.PI * 10 * 2;\n var Svg = phase === 'refreshing' ? RotatingSvg : 'svg';\n var Circle = phase === 'refreshing' ? DashedCircle : 'circle';\n var refreshed = phase === 'refreshed';\n return _react2.default.createElement(\n Component,\n {\n key: 'pull',\n zIndex: zIndex,\n style: {\n top: Math.max(refreshed ? Math.atan(1) : p, 0) * max - 10,\n transform: 'translate(-50%, -100%) scale(' + (refreshed ? p : 1) + ',' + (refreshed ? p : 1) + ')',\n backgroundColor: bgColor\n }\n },\n _react2.default.createElement(\n Svg,\n {\n style: {\n transform: 'rotate(' + yRefreshing + 'deg)'\n },\n width: 40,\n height: 40,\n viewBox: '0 0 40 40'\n },\n _react2.default.createElement(Circle, {\n style: { opacity: pMax },\n stroke: color,\n strokeWidth: 2.5,\n strokeDasharray: [r * pMax * 0.6, r * (1 - pMax * 0.6)],\n strokeDashoffset: -r * (1 - pMax * 0.6),\n fill: 'none',\n cx: 20,\n cy: 20,\n r: 8.5\n }),\n phase !== 'refreshing' && _react2.default.createElement('path', {\n style: {\n opacity: pMax,\n transformOrigin: '50% 0%',\n transform: 'scale(' + Math.min(pMax, 1) + ', ' + Math.min(pMax, 1) + ')'\n },\n fill: color,\n d: 'M23.5,19l5,5l5-5H23.5z'\n })\n )\n );\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-pullrefresh/lib/component/index.js\n// module id = 970\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _spring = require('./spring');\n\nvar _spring2 = _interopRequireDefault(_spring);\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX = 100;\nvar sleep = function sleep(msec) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, msec);\n });\n};\n\nvar PullRefresh = function (_Component) {\n _inherits(PullRefresh, _Component);\n\n function PullRefresh(props) {\n _classCallCheck(this, PullRefresh);\n\n var _this = _possibleConstructorReturn(this, (PullRefresh.__proto__ || Object.getPrototypeOf(PullRefresh)).call(this, props));\n\n _this.state = {\n y: 0,\n yRefreshing: 0,\n max: MAX,\n phase: ''\n };\n return _this;\n }\n\n _createClass(PullRefresh, [{\n key: 'refresh',\n value: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n this.setState({\n phase: 'willRefresh'\n });\n _context.next = 3;\n return sleep(0);\n\n case 3:\n _context.next = 5;\n return this._refresh();\n\n case 5:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function refresh() {\n return _ref.apply(this, arguments);\n }\n\n return refresh;\n }()\n }, {\n key: '_refresh',\n value: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n var _state, max, phase, onRefresh;\n\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _state = this.state, max = _state.max, phase = _state.phase;\n onRefresh = this.props.onRefresh;\n\n if (!(phase === 'willRefresh')) {\n _context2.next = 13;\n break;\n }\n\n this._willRefresh = true;\n _context2.next = 6;\n return this._spring.to(max);\n\n case 6:\n this._spring.pause();\n this._willRefresh = false;\n this.setState({\n phase: 'refreshing'\n });\n _context2.next = 11;\n return onRefresh();\n\n case 11:\n this.setState({\n yRefreshing: 0,\n phase: 'refreshed'\n });\n this._spring.resume();\n\n case 13:\n this._y = 0;\n this._spring.endValue = this._y;\n\n case 15:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function _refresh() {\n return _ref2.apply(this, arguments);\n }\n\n return _refresh;\n }()\n }, {\n key: 'onScroll',\n value: function onScroll(evt) {\n this._scrollTop = evt.currentTarget.scrollTop !== undefined ? evt.currentTarget.scrollTop : evt.nativeEvent.contentOffset.y;\n }\n }, {\n key: 'onDown',\n value: function onDown(evt) {\n var phase = this.state.phase;\n\n if (this._willRefresh) return;\n if (phase === 'refreshed' || phase === 'refreshing') return;\n this._down = true;\n var ey = evt.nativeEvent.touches ? evt.nativeEvent.touches[0].pageY : evt.pageY;\n this._py = ey;\n }\n }, {\n key: 'onUp',\n value: function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(evt) {\n var phase;\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n phase = this.state.phase;\n\n if (!(phase === 'refreshed' || phase === 'refreshing')) {\n _context3.next = 3;\n break;\n }\n\n return _context3.abrupt('return');\n\n case 3:\n this._down = false;\n _context3.next = 6;\n return this._refresh();\n\n case 6:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function onUp(_x) {\n return _ref3.apply(this, arguments);\n }\n\n return onUp;\n }()\n }, {\n key: 'onMove',\n value: function onMove(evt) {\n var phase = this.state.phase;\n\n if (this._willRefresh || !this._down) return;\n if (phase === 'refreshed' || phase === 'refreshing') return;\n var ey = evt.nativeEvent.touches ? evt.nativeEvent.touches[0].pageY : evt.pageY;\n if (this._scrollTop <= 0) {\n this._y = this._y + ey - this._py;\n this._spring.endValue = this._y;\n }\n this._py = ey;\n }\n }, {\n key: 'onSpringUpdate',\n value: function onSpringUpdate(spring) {\n var _state2 = this.state,\n max = _state2.max,\n yRefreshing = _state2.yRefreshing,\n phase = _state2.phase;\n\n var y = spring.currentValue;\n this.setState({\n y: y,\n yRefreshing: this._willRefresh ? Math.max(y, yRefreshing) : y\n });\n if (phase !== 'refreshed' && phase !== 'refreshing') {\n var newPhase = y >= max ? 'willRefresh' : '';\n if (phase !== newPhase) this.setState({ phase: newPhase });\n }\n if (phase === 'refreshed' && y === 0) {\n this.setState({ phase: '' });\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._y = 0;\n this._scrollTop = 0;\n this._spring = new _spring2.default(60, 10);\n this._spring.onUpdate = this.onSpringUpdate.bind(this);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n zIndex = _props.zIndex,\n render = _props.render,\n bgColor = _props.bgColor,\n color = _props.color,\n onRefresh = _props.onRefresh,\n disabled = _props.disabled,\n as = _props.as,\n children = _props.children,\n props = _objectWithoutProperties(_props, ['zIndex', 'render', 'bgColor', 'color', 'onRefresh', 'disabled', 'as', 'children']);\n\n var PullRefreshComponent = render;\n var Container = as;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Container,\n _extends({}, props, {\n onScroll: disabled ? undefined : this.onScroll.bind(this),\n onMouseDown: disabled ? undefined : this.onDown.bind(this),\n onMouseUp: disabled ? undefined : this.onUp.bind(this),\n onMouseMove: disabled ? undefined : this.onMove.bind(this),\n onTouchStart: disabled ? undefined : this.onDown.bind(this),\n onTouchEnd: disabled ? undefined : this.onUp.bind(this),\n onTouchMove: disabled ? undefined : this.onMove.bind(this)\n }),\n children\n ),\n render(this.props, this.state)\n );\n }\n }]);\n\n return PullRefresh;\n}(_react.Component);\n\nexports.default = PullRefresh;\n\n\nPullRefresh.propTypes = {\n as: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]),\n onRefresh: _propTypes2.default.func,\n style: _propTypes2.default.object,\n disabled: _propTypes2.default.bool,\n color: _propTypes2.default.string,\n bgColor: _propTypes2.default.string,\n render: _propTypes2.default.func,\n zIndex: _propTypes2.default.number\n};\n\nPullRefresh.defaultProps = {\n as: 'div',\n style: {},\n disabled: false,\n color: '#4285f4',\n bgColor: '#fff',\n render: _component2.default,\n zIndex: undefined\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-pullrefresh/lib/index.js\n// module id = 971\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _eventEmitter = require('event-emitter');\n\nvar _eventEmitter2 = _interopRequireDefault(_eventEmitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar sleep = function sleep(msec) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, msec);\n });\n};\nvar _loop = function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(promise) {\n var proc;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n proc = function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return promise();\n\n case 2:\n _context.t0 = _context.sent;\n\n if (!_context.t0) {\n _context.next = 7;\n break;\n }\n\n _context.next = 6;\n return proc();\n\n case 6:\n _context.t0 = _context.sent;\n\n case 7:\n return _context.abrupt('return', _context.t0);\n\n case 8:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, undefined);\n }));\n\n return function proc() {\n return _ref2.apply(this, arguments);\n };\n }();\n\n _context2.next = 3;\n return proc();\n\n case 3:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, undefined);\n }));\n\n return function _loop(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar Spring = function () {\n function Spring(tension, friction) {\n _classCallCheck(this, Spring);\n\n this._emitter = new _eventEmitter2.default();\n this._tension = tension;\n this._friction = friction;\n this._value = 0;\n this._endValue = 0;\n this._loop = false;\n this._paused = false;\n }\n\n _createClass(Spring, [{\n key: 'pause',\n value: function pause() {\n this._paused = true;\n }\n }, {\n key: 'resume',\n value: function resume() {\n this._paused = false;\n }\n }, {\n key: 'to',\n value: function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(value) {\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n this._endValue = value;\n this.loop();\n _context3.next = 4;\n return this._wait('end');\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function to(_x2) {\n return _ref3.apply(this, arguments);\n }\n\n return to;\n }()\n }, {\n key: 'setValue',\n value: function setValue(value) {\n if (this._value !== value) {\n this._value = value;\n this._onUpdate(this);\n }\n }\n }, {\n key: '_emit',\n value: function _emit(type) {\n this._emitter.emit(type);\n }\n }, {\n key: '_wait',\n value: function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(type) {\n var _this = this;\n\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return new Promise(function (resolve) {\n return _this._emitter.once(type, resolve);\n });\n\n case 2:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function _wait(_x3) {\n return _ref4.apply(this, arguments);\n }\n\n return _wait;\n }()\n }, {\n key: 'loop',\n value: function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {\n var _this2 = this;\n\n return regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n if (!this._loop) {\n _context6.next = 2;\n break;\n }\n\n return _context6.abrupt('return');\n\n case 2:\n\n this._emit('start');\n this._loop = true;\n\n _context6.next = 6;\n return _loop(_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {\n var dv;\n return regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return sleep(1000 / 60);\n\n case 2:\n if (!_this2._paused) {\n _context5.next = 4;\n break;\n }\n\n return _context5.abrupt('return', true);\n\n case 4:\n // TODO: dummy -> use tention,friction\n dv = (_this2._endValue - _this2._value) / 5;\n\n _this2.setValue(_this2._value + dv);\n return _context5.abrupt('return', Math.abs(dv) > 0.2);\n\n case 7:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, _this2);\n })));\n\n case 6:\n this.setValue(this._endValue);\n\n this._loop = false;\n this._emit('end');\n\n case 9:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function loop() {\n return _ref5.apply(this, arguments);\n }\n\n return loop;\n }()\n }, {\n key: 'onUpdate',\n set: function set(onUpdate) {\n this._onUpdate = onUpdate;\n }\n }, {\n key: 'endValue',\n set: function set(value) {\n this._endValue = value;\n this.loop();\n }\n }, {\n key: 'currentValue',\n get: function get() {\n return this._value;\n }\n }]);\n\n return Spring;\n}();\n\nexports.default = Spring;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-pullrefresh/lib/spring.js\n// module id = 972\n// module chunks = 0","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React, { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { storeShape, subscriptionShape } from '../utils/PropTypes';\nimport warning from '../utils/warning';\nvar prefixUnsafeLifecycleMethods = typeof React.forwardRef !== \"undefined\";\nvar didWarnAboutReceivingStore = false;\n\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n\n didWarnAboutReceivingStore = true;\n warning('<Provider> does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reduxjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nexport function createProvider(storeKey) {\n var _Provider$childContex;\n\n if (storeKey === void 0) {\n storeKey = 'store';\n }\n\n var subscriptionKey = storeKey + \"Subscription\";\n\n var Provider =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[storeKey] = this[storeKey], _ref[subscriptionKey] = null, _ref;\n };\n\n function Provider(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this[storeKey] = props.store;\n return _this;\n }\n\n _proto.render = function render() {\n return Children.only(this.props.children);\n };\n\n return Provider;\n }(Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Use UNSAFE_ event name where supported\n var eventName = prefixUnsafeLifecycleMethods ? 'UNSAFE_componentWillReceiveProps' : 'componentWillReceiveProps';\n\n Provider.prototype[eventName] = function (nextProps) {\n if (this[storeKey] !== nextProps.store) {\n warnAboutReceivingStore();\n }\n };\n }\n\n Provider.propTypes = {\n store: storeShape.isRequired,\n children: PropTypes.element.isRequired\n };\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[storeKey] = storeShape.isRequired, _Provider$childContex[subscriptionKey] = subscriptionShape, _Provider$childContex);\n return Provider;\n}\nexport default createProvider();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/components/Provider.js\n// module id = 973\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default createConnect();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/connect/connect.js\n// module id = 974\n// module chunks = 0","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/connect/mapDispatchToProps.js\n// module id = 975\n// module chunks = 0","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/connect/mapStateToProps.js\n// module id = 976\n// module chunks = 0","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/connect/mergeProps.js\n// module id = 977\n// module chunks = 0","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/connect/selectorFactory.js\n// module id = 978\n// module chunks = 0","import warning from '../utils/warning';\n\nfunction verify(selector, methodName, displayName) {\n if (!selector) {\n throw new Error(\"Unexpected value for \" + methodName + \" in \" + displayName + \".\");\n } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n if (!selector.hasOwnProperty('dependsOnOwnProps')) {\n warning(\"The selector for \" + methodName + \" of \" + displayName + \" did not specify a value for dependsOnOwnProps.\");\n }\n }\n}\n\nexport default function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) {\n verify(mapStateToProps, 'mapStateToProps', displayName);\n verify(mapDispatchToProps, 'mapDispatchToProps', displayName);\n verify(mergeProps, 'mergeProps', displayName);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/connect/verifySubselectors.js\n// module id = 979\n// module chunks = 0","// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\nvar CLEARED = null;\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n var current = [];\n var next = [];\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n },\n get: function get() {\n return next;\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub, onStateChange) {\n this.store = store;\n this.parentSub = parentSub;\n this.onStateChange = onStateChange;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/utils/Subscription.js\n// module id = 980\n// module chunks = 0","/**\r\n * @param {any} obj The object to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n */\nexport default function isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n var baseProto = proto;\n\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n\n return proto === baseProto;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/utils/isPlainObject.js\n// module id = 981\n// module chunks = 0","var hasOwn = Object.prototype.hasOwnProperty;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-redux/es/utils/shallowEqual.js\n// module id = 982\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport Link from './Link';\n\n/**\n * An <IndexLink> is used to link to an <IndexRoute>.\n */\nvar IndexLink = createReactClass({\n displayName: 'IndexLink',\n\n render: function render() {\n return React.createElement(Link, _extends({}, this.props, { onlyActiveOnIndex: true }));\n }\n});\n\nexport default IndexLink;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/IndexLink.js\n// module id = 983\n// module chunks = 0","import createReactClass from 'create-react-class';\nimport { string, object } from 'prop-types';\nimport warning from './routerWarning';\nimport invariant from 'invariant';\nimport Redirect from './Redirect';\nimport { falsy } from './InternalPropTypes';\n\n/**\n * An <IndexRedirect> is used to redirect from an indexRoute.\n */\n/* eslint-disable react/require-render-return */\nvar IndexRedirect = createReactClass({\n displayName: 'IndexRedirect',\n\n statics: {\n createRouteFromReactElement: function createRouteFromReactElement(element, parentRoute) {\n /* istanbul ignore else: sanity check */\n if (parentRoute) {\n parentRoute.indexRoute = Redirect.createRouteFromReactElement(element);\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'An <IndexRedirect> does not make sense at the root of your route config') : void 0;\n }\n }\n },\n\n propTypes: {\n to: string.isRequired,\n query: object,\n state: object,\n onEnter: falsy,\n children: falsy\n },\n\n /* istanbul ignore next: sanity check */\n render: function render() {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<IndexRedirect> elements are for router configuration only and should not be rendered') : invariant(false) : void 0;\n }\n});\n\nexport default IndexRedirect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/IndexRedirect.js\n// module id = 984\n// module chunks = 0","import createReactClass from 'create-react-class';\nimport { func } from 'prop-types';\nimport warning from './routerWarning';\nimport invariant from 'invariant';\nimport { createRouteFromReactElement as _createRouteFromReactElement } from './RouteUtils';\nimport { component, components, falsy } from './InternalPropTypes';\n\n/**\n * An <IndexRoute> is used to specify its parent's <Route indexRoute> in\n * a JSX route config.\n */\n/* eslint-disable react/require-render-return */\nvar IndexRoute = createReactClass({\n displayName: 'IndexRoute',\n\n statics: {\n createRouteFromReactElement: function createRouteFromReactElement(element, parentRoute) {\n /* istanbul ignore else: sanity check */\n if (parentRoute) {\n parentRoute.indexRoute = _createRouteFromReactElement(element);\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'An <IndexRoute> does not make sense at the root of your route config') : void 0;\n }\n }\n },\n\n propTypes: {\n path: falsy,\n component: component,\n components: components,\n getComponent: func,\n getComponents: func\n },\n\n /* istanbul ignore next: sanity check */\n render: function render() {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<IndexRoute> elements are for router configuration only and should not be rendered') : invariant(false) : void 0;\n }\n});\n\nexport default IndexRoute;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/IndexRoute.js\n// module id = 985\n// module chunks = 0","import createReactClass from 'create-react-class';\nimport { string, func } from 'prop-types';\nimport invariant from 'invariant';\nimport { createRouteFromReactElement } from './RouteUtils';\nimport { component, components } from './InternalPropTypes';\n\n/**\n * A <Route> is used to declare which components are rendered to the\n * page when the URL matches a given pattern.\n *\n * Routes are arranged in a nested tree structure. When a new URL is\n * requested, the tree is searched depth-first to find a route whose\n * path matches the URL. When one is found, all routes in the tree\n * that lead to it are considered \"active\" and their components are\n * rendered into the DOM, nested in the same order as in the tree.\n */\n/* eslint-disable react/require-render-return */\nvar Route = createReactClass({\n displayName: 'Route',\n\n statics: {\n createRouteFromReactElement: createRouteFromReactElement\n },\n\n propTypes: {\n path: string,\n component: component,\n components: components,\n getComponent: func,\n getComponents: func\n },\n\n /* istanbul ignore next: sanity check */\n render: function render() {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<Route> elements are for router configuration only and should not be rendered') : invariant(false) : void 0;\n }\n});\n\nexport default Route;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/Route.js\n// module id = 986\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport invariant from 'invariant';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport { func, object } from 'prop-types';\n\nimport _createTransitionManager from './createTransitionManager';\nimport { routes } from './InternalPropTypes';\nimport RouterContext from './RouterContext';\nimport { createRoutes } from './RouteUtils';\nimport { createRouterObject as _createRouterObject, assignRouterState } from './RouterUtils';\nimport warning from './routerWarning';\n\nvar propTypes = {\n history: object,\n children: routes,\n routes: routes, // alias for children\n render: func,\n createElement: func,\n onError: func,\n onUpdate: func,\n\n // PRIVATE: For client-side rehydration of server match.\n matchContext: object\n};\n\nvar prefixUnsafeLifecycleMethods = typeof React.forwardRef !== 'undefined';\n\n/**\n * A <Router> is a high-level API for automatically setting up\n * a router that renders a <RouterContext> with all the props\n * it needs each time the URL changes.\n */\nvar Router = createReactClass({\n displayName: 'Router',\n\n propTypes: propTypes,\n\n getDefaultProps: function getDefaultProps() {\n return {\n render: function render(props) {\n return React.createElement(RouterContext, props);\n }\n };\n },\n getInitialState: function getInitialState() {\n return {\n location: null,\n routes: null,\n params: null,\n components: null\n };\n },\n handleError: function handleError(error) {\n if (this.props.onError) {\n this.props.onError.call(this, error);\n } else {\n // Throw errors by default so we don't silently swallow them!\n throw error; // This error probably occurred in getChildRoutes or getComponents.\n }\n },\n createRouterObject: function createRouterObject(state) {\n var matchContext = this.props.matchContext;\n\n if (matchContext) {\n return matchContext.router;\n }\n\n var history = this.props.history;\n\n return _createRouterObject(history, this.transitionManager, state);\n },\n createTransitionManager: function createTransitionManager() {\n var matchContext = this.props.matchContext;\n\n if (matchContext) {\n return matchContext.transitionManager;\n }\n\n var history = this.props.history;\n var _props = this.props,\n routes = _props.routes,\n children = _props.children;\n\n\n !history.getCurrentLocation ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You have provided a history object created with history v4.x or v2.x ' + 'and earlier. This version of React Router is only compatible with v3 ' + 'history objects. Please change to history v3.x.') : invariant(false) : void 0;\n\n return _createTransitionManager(history, createRoutes(routes || children));\n },\n\n\n // this method will be updated to UNSAFE_componentWillMount below for React versions >= 16.3\n componentWillMount: function componentWillMount() {\n var _this = this;\n\n this.transitionManager = this.createTransitionManager();\n this.router = this.createRouterObject(this.state);\n\n this._unlisten = this.transitionManager.listen(function (error, state) {\n if (error) {\n _this.handleError(error);\n } else {\n // Keep the identity of this.router because of a caveat in ContextUtils:\n // they only work if the object identity is preserved.\n assignRouterState(_this.router, state);\n _this.setState(state, _this.props.onUpdate);\n }\n });\n },\n\n\n // this method will be updated to UNSAFE_componentWillReceiveProps below for React versions >= 16.3\n /* istanbul ignore next: sanity check */\n componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n process.env.NODE_ENV !== 'production' ? warning(nextProps.history === this.props.history, 'You cannot change <Router history>; it will be ignored') : void 0;\n\n process.env.NODE_ENV !== 'production' ? warning((nextProps.routes || nextProps.children) === (this.props.routes || this.props.children), 'You cannot change <Router routes>; it will be ignored') : void 0;\n },\n componentWillUnmount: function componentWillUnmount() {\n if (this._unlisten) this._unlisten();\n },\n render: function render() {\n var _state = this.state,\n location = _state.location,\n routes = _state.routes,\n params = _state.params,\n components = _state.components;\n\n var _props2 = this.props,\n createElement = _props2.createElement,\n render = _props2.render,\n props = _objectWithoutProperties(_props2, ['createElement', 'render']);\n\n if (location == null) return null; // Async match\n\n // Only forward non-Router-specific props to routing context, as those are\n // the only ones that might be custom routing context props.\n Object.keys(propTypes).forEach(function (propType) {\n return delete props[propType];\n });\n\n return render(_extends({}, props, {\n router: this.router,\n location: location,\n routes: routes,\n params: params,\n components: components,\n createElement: createElement\n }));\n }\n});\n\nif (prefixUnsafeLifecycleMethods) {\n Router.prototype.UNSAFE_componentWillReceiveProps = Router.prototype.componentWillReceiveProps;\n Router.prototype.UNSAFE_componentWillMount = Router.prototype.componentWillMount;\n delete Router.prototype.componentWillReceiveProps;\n delete Router.prototype.componentWillMount;\n}\n\nexport default Router;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/Router.js\n// module id = 987\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { loopAsync } from './AsyncUtils';\n\nvar PendingHooks = function PendingHooks() {\n var _this = this;\n\n _classCallCheck(this, PendingHooks);\n\n this.hooks = [];\n\n this.add = function (hook) {\n return _this.hooks.push(hook);\n };\n\n this.remove = function (hook) {\n return _this.hooks = _this.hooks.filter(function (h) {\n return h !== hook;\n });\n };\n\n this.has = function (hook) {\n return _this.hooks.indexOf(hook) !== -1;\n };\n\n this.clear = function () {\n return _this.hooks = [];\n };\n};\n\nexport default function getTransitionUtils() {\n var enterHooks = new PendingHooks();\n var changeHooks = new PendingHooks();\n\n function createTransitionHook(hook, route, asyncArity, pendingHooks) {\n var isSync = hook.length < asyncArity;\n\n var transitionHook = function transitionHook() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n hook.apply(route, args);\n\n if (isSync) {\n var callback = args[args.length - 1];\n // Assume hook executes synchronously and\n // automatically call the callback.\n callback();\n }\n };\n\n pendingHooks.add(transitionHook);\n\n return transitionHook;\n }\n\n function getEnterHooks(routes) {\n return routes.reduce(function (hooks, route) {\n if (route.onEnter) hooks.push(createTransitionHook(route.onEnter, route, 3, enterHooks));\n return hooks;\n }, []);\n }\n\n function getChangeHooks(routes) {\n return routes.reduce(function (hooks, route) {\n if (route.onChange) hooks.push(createTransitionHook(route.onChange, route, 4, changeHooks));\n return hooks;\n }, []);\n }\n\n function runTransitionHooks(length, iter, callback) {\n if (!length) {\n callback();\n return;\n }\n\n var redirectInfo = void 0;\n function replace(location) {\n redirectInfo = location;\n }\n\n loopAsync(length, function (index, next, done) {\n iter(index, replace, function (error) {\n if (error || redirectInfo) {\n done(error, redirectInfo); // No need to continue.\n } else {\n next();\n }\n });\n }, callback);\n }\n\n /**\n * Runs all onEnter hooks in the given array of routes in order\n * with onEnter(nextState, replace, callback) and calls\n * callback(error, redirectInfo) when finished. The first hook\n * to use replace short-circuits the loop.\n *\n * If a hook needs to run asynchronously, it may use the callback\n * function. However, doing so will cause the transition to pause,\n * which could lead to a non-responsive UI if the hook is slow.\n */\n function runEnterHooks(routes, nextState, callback) {\n enterHooks.clear();\n var hooks = getEnterHooks(routes);\n return runTransitionHooks(hooks.length, function (index, replace, next) {\n var wrappedNext = function wrappedNext() {\n if (enterHooks.has(hooks[index])) {\n next.apply(undefined, arguments);\n enterHooks.remove(hooks[index]);\n }\n };\n hooks[index](nextState, replace, wrappedNext);\n }, callback);\n }\n\n /**\n * Runs all onChange hooks in the given array of routes in order\n * with onChange(prevState, nextState, replace, callback) and calls\n * callback(error, redirectInfo) when finished. The first hook\n * to use replace short-circuits the loop.\n *\n * If a hook needs to run asynchronously, it may use the callback\n * function. However, doing so will cause the transition to pause,\n * which could lead to a non-responsive UI if the hook is slow.\n */\n function runChangeHooks(routes, state, nextState, callback) {\n changeHooks.clear();\n var hooks = getChangeHooks(routes);\n return runTransitionHooks(hooks.length, function (index, replace, next) {\n var wrappedNext = function wrappedNext() {\n if (changeHooks.has(hooks[index])) {\n next.apply(undefined, arguments);\n changeHooks.remove(hooks[index]);\n }\n };\n hooks[index](state, nextState, replace, wrappedNext);\n }, callback);\n }\n\n /**\n * Runs all onLeave hooks in the given array of routes in order.\n */\n function runLeaveHooks(routes, prevState) {\n for (var i = 0, len = routes.length; i < len; ++i) {\n if (routes[i].onLeave) routes[i].onLeave.call(routes[i], prevState);\n }\n }\n\n return {\n runEnterHooks: runEnterHooks,\n runChangeHooks: runChangeHooks,\n runLeaveHooks: runLeaveHooks\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/TransitionUtils.js\n// module id = 988\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React, { createElement } from 'react';\nimport RouterContext from './RouterContext';\nimport warning from './routerWarning';\n\nexport default (function () {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n middlewares.forEach(function (middleware, index) {\n process.env.NODE_ENV !== 'production' ? warning(middleware.renderRouterContext || middleware.renderRouteComponent, 'The middleware specified at index ' + index + ' does not appear to be ' + 'a valid React Router middleware.') : void 0;\n });\n }\n\n var withContext = middlewares.map(function (middleware) {\n return middleware.renderRouterContext;\n }).filter(Boolean);\n var withComponent = middlewares.map(function (middleware) {\n return middleware.renderRouteComponent;\n }).filter(Boolean);\n\n var makeCreateElement = function makeCreateElement() {\n var baseCreateElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : createElement;\n return function (Component, props) {\n return withComponent.reduceRight(function (previous, renderRouteComponent) {\n return renderRouteComponent(previous, props);\n }, baseCreateElement(Component, props));\n };\n };\n\n return function (renderProps) {\n return withContext.reduceRight(function (previous, renderRouterContext) {\n return renderRouterContext(previous, renderProps);\n }, React.createElement(RouterContext, _extends({}, renderProps, {\n createElement: makeCreateElement(renderProps.createElement)\n })));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/applyRouterMiddleware.js\n// module id = 989\n// module chunks = 0","import createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createRouterHistory from './createRouterHistory';\nexport default createRouterHistory(createBrowserHistory);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/browserHistory.js\n// module id = 990\n// module chunks = 0","import { getParamNames } from './PatternUtils';\n\nfunction routeParamsChanged(route, prevState, nextState) {\n if (!route.path) return false;\n\n var paramNames = getParamNames(route.path);\n\n return paramNames.some(function (paramName) {\n return prevState.params[paramName] !== nextState.params[paramName];\n });\n}\n\n/**\n * Returns an object of { leaveRoutes, changeRoutes, enterRoutes } determined by\n * the change from prevState to nextState. We leave routes if either\n * 1) they are not in the next state or 2) they are in the next state\n * but their params have changed (i.e. /users/123 => /users/456).\n *\n * leaveRoutes are ordered starting at the leaf route of the tree\n * we're leaving up to the common parent route. enterRoutes are ordered\n * from the top of the tree we're entering down to the leaf route.\n *\n * changeRoutes are any routes that didn't leave or enter during\n * the transition.\n */\nfunction computeChangedRoutes(prevState, nextState) {\n var prevRoutes = prevState && prevState.routes;\n var nextRoutes = nextState.routes;\n\n var leaveRoutes = void 0,\n changeRoutes = void 0,\n enterRoutes = void 0;\n if (prevRoutes) {\n var parentIsLeaving = false;\n leaveRoutes = prevRoutes.filter(function (route) {\n if (parentIsLeaving) {\n return true;\n } else {\n var isLeaving = nextRoutes.indexOf(route) === -1 || routeParamsChanged(route, prevState, nextState);\n if (isLeaving) parentIsLeaving = true;\n return isLeaving;\n }\n });\n\n // onLeave hooks start at the leaf route.\n leaveRoutes.reverse();\n\n enterRoutes = [];\n changeRoutes = [];\n\n nextRoutes.forEach(function (route) {\n var isNew = prevRoutes.indexOf(route) === -1;\n var paramsChanged = leaveRoutes.indexOf(route) !== -1;\n\n if (isNew || paramsChanged) enterRoutes.push(route);else changeRoutes.push(route);\n });\n } else {\n leaveRoutes = [];\n changeRoutes = [];\n enterRoutes = nextRoutes;\n }\n\n return {\n leaveRoutes: leaveRoutes,\n changeRoutes: changeRoutes,\n enterRoutes: enterRoutes\n };\n}\n\nexport default computeChangedRoutes;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/computeChangedRoutes.js\n// module id = 991\n// module chunks = 0","import { mapAsync } from './AsyncUtils';\nimport { isPromise } from './PromiseUtils';\n\nfunction getComponentsForRoute(nextState, route, callback) {\n if (route.component || route.components) {\n callback(null, route.component || route.components);\n return;\n }\n\n var getComponent = route.getComponent || route.getComponents;\n if (getComponent) {\n var componentReturn = getComponent.call(route, nextState, callback);\n if (isPromise(componentReturn)) componentReturn.then(function (component) {\n return callback(null, component);\n }, callback);\n } else {\n callback();\n }\n}\n\n/**\n * Asynchronously fetches all components needed for the given router\n * state and calls callback(error, components) when finished.\n *\n * Note: This operation may finish synchronously if no routes have an\n * asynchronous getComponents method.\n */\nfunction getComponents(nextState, callback) {\n mapAsync(nextState.routes, function (route, index, callback) {\n getComponentsForRoute(nextState, route, callback);\n }, callback);\n}\n\nexport default getComponents;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/getComponents.js\n// module id = 992\n// module chunks = 0","import { getParamNames } from './PatternUtils';\n\n/**\n * Extracts an object of params the given route cares about from\n * the given params object.\n */\nfunction getRouteParams(route, params) {\n var routeParams = {};\n\n if (!route.path) return routeParams;\n\n getParamNames(route.path).forEach(function (p) {\n if (Object.prototype.hasOwnProperty.call(params, p)) {\n routeParams[p] = params[p];\n }\n });\n\n return routeParams;\n}\n\nexport default getRouteParams;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/getRouteParams.js\n// module id = 993\n// module chunks = 0","import createHashHistory from 'history/lib/createHashHistory';\nimport createRouterHistory from './createRouterHistory';\nexport default createRouterHistory(createHashHistory);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/hashHistory.js\n// module id = 994\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { matchPattern } from './PatternUtils';\n\nfunction deepEqual(a, b) {\n if (a == b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return deepEqual(item, b[index]);\n });\n }\n\n if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) === 'object') {\n for (var p in a) {\n if (!Object.prototype.hasOwnProperty.call(a, p)) {\n continue;\n }\n\n if (a[p] === undefined) {\n if (b[p] !== undefined) {\n return false;\n }\n } else if (!Object.prototype.hasOwnProperty.call(b, p)) {\n return false;\n } else if (!deepEqual(a[p], b[p])) {\n return false;\n }\n }\n\n return true;\n }\n\n return String(a) === String(b);\n}\n\n/**\n * Returns true if the current pathname matches the supplied one, net of\n * leading and trailing slash normalization. This is sufficient for an\n * indexOnly route match.\n */\nfunction pathIsActive(pathname, currentPathname) {\n // Normalize leading slash for consistency. Leading slash on pathname has\n // already been normalized in isActive. See caveat there.\n if (currentPathname.charAt(0) !== '/') {\n currentPathname = '/' + currentPathname;\n }\n\n // Normalize the end of both path names too. Maybe `/foo/` shouldn't show\n // `/foo` as active, but in this case, we would already have failed the\n // match.\n if (pathname.charAt(pathname.length - 1) !== '/') {\n pathname += '/';\n }\n if (currentPathname.charAt(currentPathname.length - 1) !== '/') {\n currentPathname += '/';\n }\n\n return currentPathname === pathname;\n}\n\n/**\n * Returns true if the given pathname matches the active routes and params.\n */\nfunction routeIsActive(pathname, routes, params) {\n var remainingPathname = pathname,\n paramNames = [],\n paramValues = [];\n\n // for...of would work here but it's probably slower post-transpilation.\n for (var i = 0, len = routes.length; i < len; ++i) {\n var route = routes[i];\n var pattern = route.path || '';\n\n if (pattern.charAt(0) === '/') {\n remainingPathname = pathname;\n paramNames = [];\n paramValues = [];\n }\n\n if (remainingPathname !== null && pattern) {\n var matched = matchPattern(pattern, remainingPathname);\n if (matched) {\n remainingPathname = matched.remainingPathname;\n paramNames = [].concat(paramNames, matched.paramNames);\n paramValues = [].concat(paramValues, matched.paramValues);\n } else {\n remainingPathname = null;\n }\n\n if (remainingPathname === '') {\n // We have an exact match on the route. Just check that all the params\n // match.\n // FIXME: This doesn't work on repeated params.\n return paramNames.every(function (paramName, index) {\n return String(paramValues[index]) === String(params[paramName]);\n });\n }\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if all key/value pairs in the given query are\n * currently active.\n */\nfunction queryIsActive(query, activeQuery) {\n if (activeQuery == null) return query == null;\n\n if (query == null) return true;\n\n return deepEqual(query, activeQuery);\n}\n\n/**\n * Returns true if a <Link> to the given pathname/query combination is\n * currently active.\n */\nexport default function isActive(_ref, indexOnly, currentLocation, routes, params) {\n var pathname = _ref.pathname,\n query = _ref.query;\n\n if (currentLocation == null) return false;\n\n // TODO: This is a bit ugly. It keeps around support for treating pathnames\n // without preceding slashes as absolute paths, but possibly also works\n // around the same quirks with basenames as in matchRoutes.\n if (pathname.charAt(0) !== '/') {\n pathname = '/' + pathname;\n }\n\n if (!pathIsActive(pathname, currentLocation.pathname)) {\n // The path check is necessary and sufficient for indexOnly, but otherwise\n // we still need to check the routes.\n if (indexOnly || !routeIsActive(pathname, routes, params)) {\n return false;\n }\n }\n\n return queryIsActive(query, currentLocation.query);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/isActive.js\n// module id = 995\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nimport { REPLACE } from 'history/lib/Actions';\nimport invariant from 'invariant';\n\nimport createMemoryHistory from './createMemoryHistory';\nimport createTransitionManager from './createTransitionManager';\nimport { createRoutes } from './RouteUtils';\nimport { createRouterObject } from './RouterUtils';\n\n/**\n * A high-level API to be used for server-side rendering.\n *\n * This function matches a location to a set of routes and calls\n * callback(error, redirectLocation, renderProps) when finished.\n *\n * Note: You probably don't want to use this in a browser unless you're using\n * server-side rendering with async routes.\n */\nfunction match(_ref, callback) {\n var history = _ref.history,\n routes = _ref.routes,\n location = _ref.location,\n options = _objectWithoutProperties(_ref, ['history', 'routes', 'location']);\n\n !(history || location) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'match needs a history or a location') : invariant(false) : void 0;\n\n history = history ? history : createMemoryHistory(options);\n var transitionManager = createTransitionManager(history, createRoutes(routes));\n\n if (location) {\n // Allow match({ location: '/the/path', ... })\n location = history.createLocation(location);\n } else {\n location = history.getCurrentLocation();\n }\n\n transitionManager.match(location, function (error, redirectLocation, nextState) {\n var renderProps = void 0;\n\n if (nextState) {\n var router = createRouterObject(history, transitionManager, nextState);\n renderProps = _extends({}, nextState, {\n router: router,\n matchContext: { transitionManager: transitionManager, router: router }\n });\n }\n\n callback(error, redirectLocation && history.createLocation(redirectLocation, REPLACE), renderProps);\n });\n}\n\nexport default match;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/match.js\n// module id = 996\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { loopAsync } from './AsyncUtils';\nimport { isPromise } from './PromiseUtils';\nimport { matchPattern } from './PatternUtils';\nimport warning from './routerWarning';\nimport { createRoutes } from './RouteUtils';\n\nfunction getChildRoutes(route, location, paramNames, paramValues, callback) {\n if (route.childRoutes) {\n return [null, route.childRoutes];\n }\n if (!route.getChildRoutes) {\n return [];\n }\n\n var sync = true,\n result = void 0;\n\n var partialNextState = {\n location: location,\n params: createParams(paramNames, paramValues)\n };\n\n var childRoutesReturn = route.getChildRoutes(partialNextState, function (error, childRoutes) {\n childRoutes = !error && createRoutes(childRoutes);\n if (sync) {\n result = [error, childRoutes];\n return;\n }\n\n callback(error, childRoutes);\n });\n\n if (isPromise(childRoutesReturn)) childRoutesReturn.then(function (childRoutes) {\n return callback(null, createRoutes(childRoutes));\n }, callback);\n\n sync = false;\n return result; // Might be undefined.\n}\n\nfunction getIndexRoute(route, location, paramNames, paramValues, callback) {\n if (route.indexRoute) {\n callback(null, route.indexRoute);\n } else if (route.getIndexRoute) {\n var partialNextState = {\n location: location,\n params: createParams(paramNames, paramValues)\n };\n\n var indexRoutesReturn = route.getIndexRoute(partialNextState, function (error, indexRoute) {\n callback(error, !error && createRoutes(indexRoute)[0]);\n });\n\n if (isPromise(indexRoutesReturn)) indexRoutesReturn.then(function (indexRoute) {\n return callback(null, createRoutes(indexRoute)[0]);\n }, callback);\n } else if (route.childRoutes || route.getChildRoutes) {\n var onChildRoutes = function onChildRoutes(error, childRoutes) {\n if (error) {\n callback(error);\n return;\n }\n\n var pathless = childRoutes.filter(function (childRoute) {\n return !childRoute.path;\n });\n\n loopAsync(pathless.length, function (index, next, done) {\n getIndexRoute(pathless[index], location, paramNames, paramValues, function (error, indexRoute) {\n if (error || indexRoute) {\n var routes = [pathless[index]].concat(Array.isArray(indexRoute) ? indexRoute : [indexRoute]);\n done(error, routes);\n } else {\n next();\n }\n });\n }, function (err, routes) {\n callback(null, routes);\n });\n };\n\n var result = getChildRoutes(route, location, paramNames, paramValues, onChildRoutes);\n if (result) {\n onChildRoutes.apply(undefined, result);\n }\n } else {\n callback();\n }\n}\n\nfunction assignParams(params, paramNames, paramValues) {\n return paramNames.reduce(function (params, paramName, index) {\n var paramValue = paramValues && paramValues[index];\n\n if (Array.isArray(params[paramName])) {\n params[paramName].push(paramValue);\n } else if (paramName in params) {\n params[paramName] = [params[paramName], paramValue];\n } else {\n params[paramName] = paramValue;\n }\n\n return params;\n }, params);\n}\n\nfunction createParams(paramNames, paramValues) {\n return assignParams({}, paramNames, paramValues);\n}\n\nfunction matchRouteDeep(route, location, remainingPathname, paramNames, paramValues, callback) {\n var pattern = route.path || '';\n\n if (pattern.charAt(0) === '/') {\n remainingPathname = location.pathname;\n paramNames = [];\n paramValues = [];\n }\n\n // Only try to match the path if the route actually has a pattern, and if\n // we're not just searching for potential nested absolute paths.\n if (remainingPathname !== null && pattern) {\n try {\n var matched = matchPattern(pattern, remainingPathname);\n if (matched) {\n remainingPathname = matched.remainingPathname;\n paramNames = [].concat(paramNames, matched.paramNames);\n paramValues = [].concat(paramValues, matched.paramValues);\n } else {\n remainingPathname = null;\n }\n } catch (error) {\n callback(error);\n }\n\n // By assumption, pattern is non-empty here, which is the prerequisite for\n // actually terminating a match.\n if (remainingPathname === '') {\n var match = {\n routes: [route],\n params: createParams(paramNames, paramValues)\n };\n\n getIndexRoute(route, location, paramNames, paramValues, function (error, indexRoute) {\n if (error) {\n callback(error);\n } else {\n if (Array.isArray(indexRoute)) {\n var _match$routes;\n\n process.env.NODE_ENV !== 'production' ? warning(indexRoute.every(function (route) {\n return !route.path;\n }), 'Index routes should not have paths') : void 0;\n (_match$routes = match.routes).push.apply(_match$routes, indexRoute);\n } else if (indexRoute) {\n process.env.NODE_ENV !== 'production' ? warning(!indexRoute.path, 'Index routes should not have paths') : void 0;\n match.routes.push(indexRoute);\n }\n\n callback(null, match);\n }\n });\n\n return;\n }\n }\n\n if (remainingPathname != null || route.childRoutes) {\n // Either a) this route matched at least some of the path or b)\n // we don't have to load this route's children asynchronously. In\n // either case continue checking for matches in the subtree.\n var onChildRoutes = function onChildRoutes(error, childRoutes) {\n if (error) {\n callback(error);\n } else if (childRoutes) {\n // Check the child routes to see if any of them match.\n matchRoutes(childRoutes, location, function (error, match) {\n if (error) {\n callback(error);\n } else if (match) {\n // A child route matched! Augment the match and pass it up the stack.\n match.routes.unshift(route);\n callback(null, match);\n } else {\n callback();\n }\n }, remainingPathname, paramNames, paramValues);\n } else {\n callback();\n }\n };\n\n var result = getChildRoutes(route, location, paramNames, paramValues, onChildRoutes);\n if (result) {\n onChildRoutes.apply(undefined, result);\n }\n } else {\n callback();\n }\n}\n\n/**\n * Asynchronously matches the given location to a set of routes and calls\n * callback(error, state) when finished. The state object will have the\n * following properties:\n *\n * - routes An array of routes that matched, in hierarchical order\n * - params An object of URL parameters\n *\n * Note: This operation may finish synchronously if no routes have an\n * asynchronous getChildRoutes method.\n */\nexport default function matchRoutes(routes, location, callback, remainingPathname) {\n var paramNames = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var paramValues = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n\n if (remainingPathname === undefined) {\n // TODO: This is a little bit ugly, but it works around a quirk in history\n // that strips the leading slash from pathnames when using basenames with\n // trailing slashes.\n if (location.pathname.charAt(0) !== '/') {\n location = _extends({}, location, {\n pathname: '/' + location.pathname\n });\n }\n remainingPathname = location.pathname;\n }\n\n loopAsync(routes.length, function (index, next, done) {\n matchRouteDeep(routes[index], location, remainingPathname, paramNames, paramValues, function (error, match) {\n if (error || match) {\n done(error, match);\n } else {\n next();\n }\n });\n }, callback);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/matchRoutes.js\n// module id = 997\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport invariant from 'invariant';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { ContextSubscriber } from './ContextUtils';\nimport { routerShape } from './PropTypes';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nexport default function withRouter(WrappedComponent, options) {\n var withRef = options && options.withRef;\n\n var WithRouter = createReactClass({\n displayName: 'WithRouter',\n\n mixins: [ContextSubscriber('router')],\n\n contextTypes: { router: routerShape },\n propTypes: { router: routerShape },\n\n getWrappedInstance: function getWrappedInstance() {\n !withRef ? process.env.NODE_ENV !== 'production' ? invariant(false, 'To access the wrapped instance, you need to specify ' + '`{ withRef: true }` as the second argument of the withRouter() call.') : invariant(false) : void 0;\n\n return this.wrappedInstance;\n },\n render: function render() {\n var _this = this;\n\n var router = this.props.router || this.context.router;\n if (!router) {\n return React.createElement(WrappedComponent, this.props);\n }\n\n var params = router.params,\n location = router.location,\n routes = router.routes;\n\n var props = _extends({}, this.props, { router: router, params: params, location: location, routes: routes });\n\n if (withRef) {\n props.ref = function (c) {\n _this.wrappedInstance = c;\n };\n }\n\n return React.createElement(WrappedComponent, props);\n }\n });\n\n WithRouter.displayName = 'withRouter(' + getDisplayName(WrappedComponent) + ')';\n WithRouter.WrappedComponent = WrappedComponent;\n\n return hoistStatics(WithRouter, WrappedComponent);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-router/es/withRouter.js\n// module id = 998\n// module chunks = 0","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar React = require('react');\n\nfunction getInitialState() {\n return {\n x: null,\n y: null,\n swiping: false,\n start: 0\n };\n}\n\nvar Swipeable = React.createClass({\n displayName: 'Swipeable',\n\n propTypes: {\n onSwiped: React.PropTypes.func,\n onSwiping: React.PropTypes.func,\n onSwipingUp: React.PropTypes.func,\n onSwipingRight: React.PropTypes.func,\n onSwipingDown: React.PropTypes.func,\n onSwipingLeft: React.PropTypes.func,\n onSwipedUp: React.PropTypes.func,\n onSwipedRight: React.PropTypes.func,\n onSwipedDown: React.PropTypes.func,\n onSwipedLeft: React.PropTypes.func,\n onTap: React.PropTypes.func,\n flickThreshold: React.PropTypes.number,\n delta: React.PropTypes.number,\n preventDefaultTouchmoveEvent: React.PropTypes.bool,\n stopPropagation: React.PropTypes.bool,\n nodeName: React.PropTypes.string,\n trackMouse: React.PropTypes.bool,\n children: React.PropTypes.node\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n flickThreshold: 0.6,\n delta: 10,\n preventDefaultTouchmoveEvent: true,\n stopPropagation: false,\n nodeName: 'div'\n };\n },\n componentWillMount: function componentWillMount() {\n this.swipeable = getInitialState();\n },\n calculatePos: function calculatePos(e) {\n var x = void 0;\n var y = void 0;\n\n if (e.changedTouches) {\n x = e.changedTouches[0].clientX;\n y = e.changedTouches[0].clientY;\n } else {\n x = e.clientX;\n y = e.clientY;\n }\n\n var xd = this.swipeable.x - x;\n var yd = this.swipeable.y - y;\n\n var axd = Math.abs(xd);\n var ayd = Math.abs(yd);\n\n var time = Date.now() - this.swipeable.start;\n var velocity = Math.sqrt(axd * axd + ayd * ayd) / time;\n\n return {\n deltaX: xd,\n deltaY: yd,\n absX: axd,\n absY: ayd,\n velocity: velocity\n };\n },\n eventStart: function eventStart(e) {\n if (typeof this.props.onMouseDown === 'function') {\n this.props.onMouseDown(e);\n }\n\n if (e.type === 'mousedown' && !this.props.trackMouse) {\n return;\n }\n\n if (e.touches && e.touches.length > 1) {\n return;\n }\n\n var touches = e.touches;\n if (!touches) {\n touches = [{ clientX: e.clientX, clientY: e.clientY }];\n }\n if (this.props.stopPropagation) e.stopPropagation();\n\n this.swipeable = {\n start: Date.now(),\n x: touches[0].clientX,\n y: touches[0].clientY,\n swiping: false\n };\n },\n eventMove: function eventMove(e) {\n if (typeof this.props.onMouseMove === 'function') {\n this.props.onMouseMove(e);\n }\n\n if (e.type === 'mousemove' && !this.props.trackMouse) {\n return;\n }\n\n if (!this.swipeable.x || !this.swipeable.y || e.touches && e.touches.length > 1) {\n return;\n }\n\n var cancelPageSwipe = false;\n var pos = this.calculatePos(e);\n\n if (pos.absX < this.props.delta && pos.absY < this.props.delta) {\n return;\n }\n\n if (this.props.stopPropagation) e.stopPropagation();\n\n if (this.props.onSwiping) {\n this.props.onSwiping(e, pos.deltaX, pos.deltaY, pos.absX, pos.absY, pos.velocity);\n }\n\n if (pos.absX > pos.absY) {\n if (pos.deltaX > 0) {\n if (this.props.onSwipingLeft || this.props.onSwipedLeft) {\n this.props.onSwipingLeft && this.props.onSwipingLeft(e, pos.absX);\n cancelPageSwipe = true;\n }\n } else if (this.props.onSwipingRight || this.props.onSwipedRight) {\n this.props.onSwipingRight && this.props.onSwipingRight(e, pos.absX);\n cancelPageSwipe = true;\n }\n } else if (pos.deltaY > 0) {\n if (this.props.onSwipingUp || this.props.onSwipedUp) {\n this.props.onSwipingUp && this.props.onSwipingUp(e, pos.absY);\n cancelPageSwipe = true;\n }\n } else if (this.props.onSwipingDown || this.props.onSwipedDown) {\n this.props.onSwipingDown && this.props.onSwipingDown(e, pos.absY);\n cancelPageSwipe = true;\n }\n\n this.swipeable.swiping = true;\n\n if (cancelPageSwipe && this.props.preventDefaultTouchmoveEvent) {\n e.preventDefault();\n }\n },\n eventEnd: function eventEnd(e) {\n if (typeof this.props.onMouseUp === 'function') {\n this.props.onMouseUp(e);\n }\n\n if (e.type === 'mouseup' && !this.props.trackMouse) {\n return;\n }\n\n if (this.swipeable.swiping) {\n var pos = this.calculatePos(e);\n\n if (this.props.stopPropagation) e.stopPropagation();\n\n var isFlick = pos.velocity > this.props.flickThreshold;\n\n this.props.onSwiped && this.props.onSwiped(e, pos.deltaX, pos.deltaY, isFlick, pos.velocity);\n\n if (pos.absX > pos.absY) {\n if (pos.deltaX > 0) {\n this.props.onSwipedLeft && this.props.onSwipedLeft(e, pos.deltaX, isFlick);\n } else {\n this.props.onSwipedRight && this.props.onSwipedRight(e, pos.deltaX, isFlick);\n }\n } else if (pos.deltaY > 0) {\n this.props.onSwipedUp && this.props.onSwipedUp(e, pos.deltaY, isFlick);\n } else {\n this.props.onSwipedDown && this.props.onSwipedDown(e, pos.deltaY, isFlick);\n }\n } else {\n this.props.onTap && this.props.onTap(e);\n }\n\n this.swipeable = getInitialState();\n },\n render: function render() {\n var newProps = _extends({}, this.props, {\n onTouchStart: this.eventStart,\n onTouchMove: this.eventMove,\n onTouchEnd: this.eventEnd,\n onMouseDown: this.eventStart,\n onMouseMove: this.eventMove,\n onMouseUp: this.eventEnd\n });\n\n delete newProps.onSwiped;\n delete newProps.onSwiping;\n delete newProps.onSwipingUp;\n delete newProps.onSwipingRight;\n delete newProps.onSwipingDown;\n delete newProps.onSwipingLeft;\n delete newProps.onSwipedUp;\n delete newProps.onSwipedRight;\n delete newProps.onSwipedDown;\n delete newProps.onSwipedLeft;\n delete newProps.onTap;\n delete newProps.flickThreshold;\n delete newProps.delta;\n delete newProps.preventDefaultTouchmoveEvent;\n delete newProps.stopPropagation;\n delete newProps.nodeName;\n delete newProps.children;\n delete newProps.trackMouse;\n\n return React.createElement(this.props.nodeName, newProps, this.props.children);\n }\n});\n\nmodule.exports = Swipeable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-swipeable/lib/Swipeable.js\n// module id = 999\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar truthy = function truthy(x) {\n return x;\n};\n\nexports['default'] = function (input) {\n var _ref = Array.isArray(input) && input.length === 2 ? input : [input, null];\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var theme = _ref2[0];\n var classNameDecorator = _ref2[1];\n\n return function (key) {\n for (var _len = arguments.length, names = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n names[_key - 1] = arguments[_key];\n }\n\n var styles = names.map(function (name) {\n return theme[name];\n }).filter(truthy);\n\n return typeof styles[0] === 'string' || typeof classNameDecorator === 'function' ? { key: key, className: classNameDecorator ? classNameDecorator.apply(undefined, _toConsumableArray(styles)) : styles.join(' ') } : { key: key, style: _objectAssign2['default'].apply(undefined, [{}].concat(_toConsumableArray(styles))) };\n };\n};\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-themeable/dist/index.js\n// module id = 1000\n// module chunks = 0","'use strict';\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction ownEnumerableKeys(obj) {\n\tvar keys = Object.getOwnPropertyNames(obj);\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tkeys = keys.concat(Object.getOwnPropertySymbols(obj));\n\t}\n\n\treturn keys.filter(function (key) {\n\t\treturn propIsEnumerable.call(obj, key);\n\t});\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = ownEnumerableKeys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-themeable/~/object-assign/index.js\n// module id = 1001\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/KeyEscapeUtils.js\n// module id = 1002\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\nvar standardReleaser = function (instance) {\n var Klass = this;\n !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fourArgumentPooler: fourArgumentPooler\n};\n\nmodule.exports = PooledClass;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/PooledClass.js\n// module id = 1003\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar ReactElement = require('./ReactElement');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar traverseAllChildren = require('./traverseAllChildren');\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.func = forEachFunction;\n this.context = forEachContext;\n this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func,\n context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n this.result = mapResult;\n this.keyPrefix = keyPrefix;\n this.func = mapFunction;\n this.context = mapContext;\n this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n this.result = null;\n this.keyPrefix = null;\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result,\n keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (ReactElement.isValidElement(mappedChild)) {\n mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n count: countChildren,\n toArray: toArray\n};\n\nmodule.exports = ReactChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactChildren.js\n// module id = 1004\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n createDOMFactory = ReactElementValidator.createFactory;\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n *\n * @public\n */\nvar ReactDOMFactories = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n 'var': createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactDOMFactories.js\n// module id = 1005\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _require = require('./ReactElement'),\n isValidElement = _require.isValidElement;\n\nvar factory = require('prop-types/factory');\n\nmodule.exports = factory(isValidElement);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactPropTypes.js\n// module id = 1006\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nmodule.exports = '15.7.0';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/ReactVersion.js\n// module id = 1007\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _require = require('./ReactBaseClasses'),\n Component = _require.Component;\n\nvar _require2 = require('./ReactElement'),\n isValidElement = _require2.isValidElement;\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\nvar factory = require('create-react-class/factory');\n\nmodule.exports = factory(Component, isValidElement, ReactNoopUpdateQueue);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/createClass.js\n// module id = 1008\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nmodule.exports = getIteratorFn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/getIteratorFn.js\n// module id = 1009\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nvar nextDebugID = 1;\n\nfunction getNextDebugID() {\n return nextDebugID++;\n}\n\nmodule.exports = getNextDebugID;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/getNextDebugID.js\n// module id = 1010\n// module chunks = 0","/**\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\n'use strict';\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\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 lowPriorityWarning = function () {};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = lowPriorityWarning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/lowPriorityWarning.js\n// module id = 1011\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/onlyChild.js\n// module id = 1012\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n if (children._isReactElement) {\n addendum = \" It looks like you're using an element created by a different \" + 'version of React. Make sure to use only one copy of React.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/traverseAllChildren.js\n// module id = 1013\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.printBuffer = printBuffer;\n\nvar _helpers = require('./helpers');\n\nvar _diff = require('./diff');\n\nvar _diff2 = _interopRequireDefault(_diff);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * Get log level string based on supplied params\n *\n * @param {string | function | object} level - console[level]\n * @param {object} action - selected action\n * @param {array} payload - selected payload\n * @param {string} type - log entry type\n *\n * @returns {string} level\n */\nfunction getLogLevel(level, action, payload, type) {\n switch (typeof level === 'undefined' ? 'undefined' : _typeof(level)) {\n case 'object':\n return typeof level[type] === 'function' ? level[type].apply(level, _toConsumableArray(payload)) : level[type];\n case 'function':\n return level(action);\n default:\n return level;\n }\n}\n\nfunction defaultTitleFormatter(options) {\n var timestamp = options.timestamp,\n duration = options.duration;\n\n\n return function (action, time, took) {\n var parts = ['action'];\n\n parts.push('%c' + String(action.type));\n if (timestamp) parts.push('%c@ ' + time);\n if (duration) parts.push('%c(in ' + took.toFixed(2) + ' ms)');\n\n return parts.join(' ');\n };\n}\n\nfunction printBuffer(buffer, options) {\n var logger = options.logger,\n actionTransformer = options.actionTransformer,\n _options$titleFormatt = options.titleFormatter,\n titleFormatter = _options$titleFormatt === undefined ? defaultTitleFormatter(options) : _options$titleFormatt,\n collapsed = options.collapsed,\n colors = options.colors,\n level = options.level,\n diff = options.diff;\n\n\n buffer.forEach(function (logEntry, key) {\n var started = logEntry.started,\n startedTime = logEntry.startedTime,\n action = logEntry.action,\n prevState = logEntry.prevState,\n error = logEntry.error;\n var took = logEntry.took,\n nextState = logEntry.nextState;\n\n var nextEntry = buffer[key + 1];\n\n if (nextEntry) {\n nextState = nextEntry.prevState;\n took = nextEntry.started - started;\n }\n\n // Message\n var formattedAction = actionTransformer(action);\n var isCollapsed = typeof collapsed === 'function' ? collapsed(function () {\n return nextState;\n }, action, logEntry) : collapsed;\n\n var formattedTime = (0, _helpers.formatTime)(startedTime);\n var titleCSS = colors.title ? 'color: ' + colors.title(formattedAction) + ';' : '';\n var headerCSS = ['color: gray; font-weight: lighter;'];\n headerCSS.push(titleCSS);\n if (options.timestamp) headerCSS.push('color: gray; font-weight: lighter;');\n if (options.duration) headerCSS.push('color: gray; font-weight: lighter;');\n var title = titleFormatter(formattedAction, formattedTime, took);\n\n // Render\n try {\n if (isCollapsed) {\n if (colors.title) logger.groupCollapsed.apply(logger, ['%c ' + title].concat(headerCSS));else logger.groupCollapsed(title);\n } else {\n if (colors.title) logger.group.apply(logger, ['%c ' + title].concat(headerCSS));else logger.group(title);\n }\n } catch (e) {\n logger.log(title);\n }\n\n var prevStateLevel = getLogLevel(level, formattedAction, [prevState], 'prevState');\n var actionLevel = getLogLevel(level, formattedAction, [formattedAction], 'action');\n var errorLevel = getLogLevel(level, formattedAction, [error, prevState], 'error');\n var nextStateLevel = getLogLevel(level, formattedAction, [nextState], 'nextState');\n\n if (prevStateLevel) {\n if (colors.prevState) logger[prevStateLevel]('%c prev state', 'color: ' + colors.prevState(prevState) + '; font-weight: bold', prevState);else logger[prevStateLevel]('prev state', prevState);\n }\n\n if (actionLevel) {\n if (colors.action) logger[actionLevel]('%c action ', 'color: ' + colors.action(formattedAction) + '; font-weight: bold', formattedAction);else logger[actionLevel]('action ', formattedAction);\n }\n\n if (error && errorLevel) {\n if (colors.error) logger[errorLevel]('%c error ', 'color: ' + colors.error(error, prevState) + '; font-weight: bold;', error);else logger[errorLevel]('error ', error);\n }\n\n if (nextStateLevel) {\n if (colors.nextState) logger[nextStateLevel]('%c next state', 'color: ' + colors.nextState(nextState) + '; font-weight: bold', nextState);else logger[nextStateLevel]('next state', nextState);\n }\n\n if (diff) {\n (0, _diff2.default)(prevState, nextState, logger, isCollapsed);\n }\n\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('\\u2014\\u2014 log end \\u2014\\u2014');\n }\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-logger/lib/core.js\n// module id = 1014\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n level: \"log\",\n logger: console,\n logErrors: true,\n collapsed: undefined,\n predicate: undefined,\n duration: false,\n timestamp: true,\n stateTransformer: function stateTransformer(state) {\n return state;\n },\n actionTransformer: function actionTransformer(action) {\n return action;\n },\n errorTransformer: function errorTransformer(error) {\n return error;\n },\n colors: {\n title: function title() {\n return \"inherit\";\n },\n prevState: function prevState() {\n return \"#9E9E9E\";\n },\n action: function action() {\n return \"#03A9F4\";\n },\n nextState: function nextState() {\n return \"#4CAF50\";\n },\n error: function error() {\n return \"#F20404\";\n }\n },\n diff: false,\n diffPredicate: undefined,\n\n // Deprecated options\n transformer: undefined\n};\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-logger/lib/defaults.js\n// module id = 1015\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = diffLogger;\n\nvar _deepDiff = require('deep-diff');\n\nvar _deepDiff2 = _interopRequireDefault(_deepDiff);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// https://github.com/flitbit/diff#differences\nvar dictionary = {\n 'E': {\n color: '#2196F3',\n text: 'CHANGED:'\n },\n 'N': {\n color: '#4CAF50',\n text: 'ADDED:'\n },\n 'D': {\n color: '#F44336',\n text: 'DELETED:'\n },\n 'A': {\n color: '#2196F3',\n text: 'ARRAY:'\n }\n};\n\nfunction style(kind) {\n return 'color: ' + dictionary[kind].color + '; font-weight: bold';\n}\n\nfunction render(diff) {\n var kind = diff.kind,\n path = diff.path,\n lhs = diff.lhs,\n rhs = diff.rhs,\n index = diff.index,\n item = diff.item;\n\n\n switch (kind) {\n case 'E':\n return [path.join('.'), lhs, '\\u2192', rhs];\n case 'N':\n return [path.join('.'), rhs];\n case 'D':\n return [path.join('.')];\n case 'A':\n return [path.join('.') + '[' + index + ']', item];\n default:\n return [];\n }\n}\n\nfunction diffLogger(prevState, newState, logger, isCollapsed) {\n var diff = (0, _deepDiff2.default)(prevState, newState);\n\n try {\n if (isCollapsed) {\n logger.groupCollapsed('diff');\n } else {\n logger.group('diff');\n }\n } catch (e) {\n logger.log('diff');\n }\n\n if (diff) {\n diff.forEach(function (elem) {\n var kind = elem.kind;\n\n var output = render(elem);\n\n logger.log.apply(logger, ['%c ' + dictionary[kind].text, style(kind)].concat(_toConsumableArray(output)));\n });\n } else {\n logger.log('\\u2014\\u2014 no diff \\u2014\\u2014');\n }\n\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('\\u2014\\u2014 diff end \\u2014\\u2014 ');\n }\n}\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-logger/lib/diff.js\n// module id = 1016\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.logger = exports.defaults = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _core = require('./core');\n\nvar _helpers = require('./helpers');\n\nvar _defaults = require('./defaults');\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates logger with following options\n *\n * @namespace\n * @param {object} options - options for logger\n * @param {string | function | object} options.level - console[level]\n * @param {boolean} options.duration - print duration of each action?\n * @param {boolean} options.timestamp - print timestamp with each action?\n * @param {object} options.colors - custom colors\n * @param {object} options.logger - implementation of the `console` API\n * @param {boolean} options.logErrors - should errors in action execution be caught, logged, and re-thrown?\n * @param {boolean} options.collapsed - is group collapsed?\n * @param {boolean} options.predicate - condition which resolves logger behavior\n * @param {function} options.stateTransformer - transform state before print\n * @param {function} options.actionTransformer - transform action before print\n * @param {function} options.errorTransformer - transform error before print\n *\n * @returns {function} logger middleware\n */\nfunction createLogger() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var loggerOptions = _extends({}, _defaults2.default, options);\n\n var logger = loggerOptions.logger,\n transformer = loggerOptions.transformer,\n stateTransformer = loggerOptions.stateTransformer,\n errorTransformer = loggerOptions.errorTransformer,\n predicate = loggerOptions.predicate,\n logErrors = loggerOptions.logErrors,\n diffPredicate = loggerOptions.diffPredicate;\n\n // Return if 'console' object is not defined\n\n if (typeof logger === 'undefined') {\n return function () {\n return function (next) {\n return function (action) {\n return next(action);\n };\n };\n };\n }\n\n if (transformer) {\n console.error('Option \\'transformer\\' is deprecated, use \\'stateTransformer\\' instead!'); // eslint-disable-line no-console\n }\n\n // Detect if 'createLogger' was passed directly to 'applyMiddleware'.\n if (options.getState && options.dispatch) {\n // eslint-disable-next-line no-console\n console.error('[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n\\n// Logger with default options\\nimport { logger } from \\'redux-logger\\'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\\n\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from \\'redux-logger\\'\\n\\nconst logger = createLogger({\\n // ...options\\n});\\n\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n');\n\n return function () {\n return function (next) {\n return function (action) {\n return next(action);\n };\n };\n };\n }\n\n var logBuffer = [];\n\n return function (_ref) {\n var getState = _ref.getState;\n return function (next) {\n return function (action) {\n // Exit early if predicate function returns 'false'\n if (typeof predicate === 'function' && !predicate(getState, action)) {\n return next(action);\n }\n\n var logEntry = {};\n logBuffer.push(logEntry);\n\n logEntry.started = _helpers.timer.now();\n logEntry.startedTime = new Date();\n logEntry.prevState = stateTransformer(getState());\n logEntry.action = action;\n\n var returnedValue = void 0;\n if (logErrors) {\n try {\n returnedValue = next(action);\n } catch (e) {\n logEntry.error = errorTransformer(e);\n }\n } else {\n returnedValue = next(action);\n }\n\n logEntry.took = _helpers.timer.now() - logEntry.started;\n logEntry.nextState = stateTransformer(getState());\n\n var diff = loggerOptions.diff && typeof diffPredicate === 'function' ? diffPredicate(getState, action) : loggerOptions.diff;\n\n (0, _core.printBuffer)(logBuffer, _extends({}, loggerOptions, { diff: diff }));\n logBuffer.length = 0;\n\n if (logEntry.error) throw logEntry.error;\n return returnedValue;\n };\n };\n };\n}\n\nvar defaultLogger = createLogger();\n\nexports.defaults = _defaults2.default;\nexports.logger = defaultLogger;\nexports.default = createLogger;\nmodule.exports = exports['default'];\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-logger/lib/index.js\n// module id = 1017\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { REHYDRATE } from './constants';\nimport isStatePlainEnough from './utils/isStatePlainEnough';\n\nexport default function autoRehydrate() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var stateReconciler = config.stateReconciler || defaultStateReconciler;\n\n return function (next) {\n return function (reducer, initialState, enhancer) {\n var store = next(liftReducer(reducer), initialState, enhancer);\n return _extends({}, store, {\n replaceReducer: function replaceReducer(reducer) {\n return store.replaceReducer(liftReducer(reducer));\n }\n });\n };\n };\n\n function liftReducer(reducer) {\n var rehydrated = false;\n var preRehydrateActions = [];\n return function (state, action) {\n if (action.type !== REHYDRATE) {\n if (config.log && !rehydrated) preRehydrateActions.push(action); // store pre-rehydrate actions for debugging\n return reducer(state, action);\n } else {\n if (config.log && !rehydrated) logPreRehydrate(preRehydrateActions);\n rehydrated = true;\n\n var inboundState = action.payload;\n var reducedState = reducer(state, action);\n\n return stateReconciler(state, inboundState, reducedState, config.log);\n }\n };\n }\n}\n\nfunction logPreRehydrate(preRehydrateActions) {\n var concernedActions = preRehydrateActions.slice(1);\n if (concernedActions.length > 0) {\n console.log('\\n redux-persist/autoRehydrate: %d actions were fired before rehydration completed. This can be a symptom of a race\\n condition where the rehydrate action may overwrite the previously affected state. Consider running these actions\\n after rehydration:\\n ', concernedActions.length, concernedActions);\n }\n}\n\nfunction defaultStateReconciler(state, inboundState, reducedState, log) {\n var newState = _extends({}, reducedState);\n\n Object.keys(inboundState).forEach(function (key) {\n // if initialState does not have key, skip auto rehydration\n if (!state.hasOwnProperty(key)) return;\n\n // if initial state is an object but inbound state is null/undefined, skip\n if (_typeof(state[key]) === 'object' && !inboundState[key]) {\n if (log) console.log('redux-persist/autoRehydrate: sub state for key `%s` is falsy but initial state is an object, skipping autoRehydrate.', key);\n return;\n }\n\n // if reducer modifies substate, skip auto rehydration\n if (state[key] !== reducedState[key]) {\n if (log) console.log('redux-persist/autoRehydrate: sub state for key `%s` modified, skipping autoRehydrate.', key);\n newState[key] = reducedState[key];\n return;\n }\n\n // otherwise take the inboundState\n if (isStatePlainEnough(inboundState[key]) && isStatePlainEnough(state[key])) newState[key] = _extends({}, state[key], inboundState[key]); // shallow merge\n else newState[key] = inboundState[key]; // hard set\n\n if (log) console.log('redux-persist/autoRehydrate: key `%s`, rehydrated to ', key, newState[key]);\n });\n return newState;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/autoRehydrate.js\n// module id = 1018\n// module chunks = 0","function createTransform(inbound, outbound) {\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var whitelist = config.whitelist || null;\n var blacklist = config.blacklist || null;\n\n function whitelistBlacklistCheck(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return true;\n if (blacklist && blacklist.indexOf(key) !== -1) return true;\n return false;\n }\n\n return {\n in: function _in(state, key) {\n return !whitelistBlacklistCheck(key) && inbound ? inbound(state, key) : state;\n },\n out: function out(state, key) {\n return !whitelistBlacklistCheck(key) && outbound ? outbound(state, key) : state;\n }\n };\n}\n\nexport default createTransform;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/createTransform.js\n// module id = 1019\n// module chunks = 0","import autoRehydrate from './autoRehydrate';\nimport createPersistor from './createPersistor';\nimport createTransform from './createTransform';\nimport getStoredState from './getStoredState';\nimport persistStore from './persistStore';\nimport purgeStoredState from './purgeStoredState';\n\n// @TODO remove in v5\nvar deprecated = function deprecated(cb, cb2, cb3) {\n console.error('redux-persist: this method of importing storages has been removed. instead use `import { asyncLocalStorage } from \"redux-persist/storages\"`');\n if (typeof cb === 'function') cb();\n if (typeof cb2 === 'function') cb2();\n if (typeof cb3 === 'function') cb3();\n};\nvar deprecatedStorage = { getAllKeys: deprecated, getItem: deprecated, setItem: deprecated, removeItem: deprecated };\nvar storages = {\n asyncLocalStorage: deprecatedStorage,\n asyncSessionStorage: deprecatedStorage\n};\n\nexport { autoRehydrate, createPersistor, createTransform, getStoredState, persistStore, purgeStoredState, storages };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/index.js\n// module id = 1020\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { REHYDRATE } from './constants';\nimport getStoredState from './getStoredState';\nimport createPersistor from './createPersistor';\nimport setImmediate from './utils/setImmediate';\n\nexport default function persistStore(store) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var onComplete = arguments[2];\n\n // defaults\n // @TODO remove shouldRestore\n var shouldRestore = !config.skipRestore;\n if (process.env.NODE_ENV !== 'production' && config.skipRestore) console.warn('redux-persist: config.skipRestore has been deprecated. If you want to skip restoration use `createPersistor` instead');\n\n var purgeKeys = null;\n\n // create and pause persistor\n var persistor = createPersistor(store, config);\n persistor.pause();\n\n // restore\n if (shouldRestore) {\n setImmediate(function () {\n getStoredState(config, function (err, restoredState) {\n if (err) {\n complete(err);\n return;\n }\n // do not persist state for purgeKeys\n if (purgeKeys) {\n if (purgeKeys === '*') restoredState = {};else purgeKeys.forEach(function (key) {\n return delete restoredState[key];\n });\n }\n try {\n store.dispatch(rehydrateAction(restoredState, err));\n } finally {\n complete(err, restoredState);\n }\n });\n });\n } else setImmediate(complete);\n\n function complete(err, restoredState) {\n persistor.resume();\n onComplete && onComplete(err, restoredState);\n }\n\n return _extends({}, persistor, {\n purge: function purge(keys) {\n purgeKeys = keys || '*';\n return persistor.purge(keys);\n }\n });\n}\n\nfunction rehydrateAction(payload) {\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return {\n type: REHYDRATE,\n payload: payload,\n error: error\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/persistStore.js\n// module id = 1021\n// module chunks = 0","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport isPlainObject from 'lodash-es/isPlainObject';\n\nexport default function isStatePlainEnough(a) {\n // isPlainObject + duck type not immutable\n if (!a) return false;\n if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) !== 'object') return false;\n if (typeof a.asMutable === 'function') return false;\n if (!isPlainObject(a)) return false;\n return true;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-persist/es/utils/isStatePlainEnough.js\n// module id = 1022\n// module chunks = 0","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux-thunk/es/index.js\n// module id = 1023\n// module chunks = 0","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport compose from './compose';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nexport default function applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux/es/applyMiddleware.js\n// module id = 1024\n// module chunks = 0","function bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux/es/bindActionCreators.js\n// module id = 1025\n// module chunks = 0","import { ActionTypes } from './createStore';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport warning from './utils/warning';\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nexport default function combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n var unexpectedKeyCache = void 0;\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError = void 0;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux/es/combineReducers.js\n// module id = 1026\n// module chunks = 0","\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nmodule.exports = function (_ref) {\n var data = _ref.data;\n var multiSection = _ref.multiSection;\n\n function nextNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = 0;\n } else {\n sectionIndex++;\n }\n\n while (sectionIndex < data.length && data[sectionIndex] === 0) {\n sectionIndex++;\n }\n\n return sectionIndex === data.length ? null : sectionIndex;\n }\n\n function prevNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = data.length - 1;\n } else {\n sectionIndex--;\n }\n\n while (sectionIndex >= 0 && data[sectionIndex] === 0) {\n sectionIndex--;\n }\n\n return sectionIndex === -1 ? null : sectionIndex;\n }\n\n function next(position) {\n var _position = _slicedToArray(position, 2);\n\n var sectionIndex = _position[0];\n var itemIndex = _position[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === data[sectionIndex] - 1) {\n sectionIndex = nextNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, 0];\n }\n\n return [sectionIndex, itemIndex + 1];\n }\n\n if (data === 0 || itemIndex === data - 1) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, 0];\n }\n\n return [null, itemIndex + 1];\n }\n\n function prev(position) {\n var _position2 = _slicedToArray(position, 2);\n\n var sectionIndex = _position2[0];\n var itemIndex = _position2[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === 0) {\n sectionIndex = prevNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, data[sectionIndex] - 1];\n }\n\n return [sectionIndex, itemIndex - 1];\n }\n\n if (data === 0 || itemIndex === 0) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, data - 1];\n }\n\n return [null, itemIndex - 1];\n }\n\n function isLast(position) {\n return next(position)[1] === null;\n }\n\n return {\n next: next,\n prev: prev,\n isLast: isLast\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/section-iterator/dist/index.js\n// module id = 1027\n// module chunks = 0","'use strict';\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualArrays;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/shallow-equal/arrays/index.js\n// module id = 1028\n// module chunks = 0","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/strict-uri-encode/index.js\n// module id = 1029\n// module chunks = 0","import isPlainObject from 'is-plain-object';\nimport Stylis from 'stylis';\nimport React, { Component, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport hoistStatics from 'hoist-non-react-statics';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate$2(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nvar hyphenate_1 = hyphenate$2;\n\nvar hyphenate = hyphenate_1;\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nvar hyphenateStyleName_1 = hyphenateStyleName;\n\n// \nvar objToCss = function objToCss(obj, prevKey) {\n var css = Object.keys(obj).filter(function (key) {\n var chunk = obj[key];\n return chunk !== undefined && chunk !== null && chunk !== false && chunk !== '';\n }).map(function (key) {\n if (isPlainObject(obj[key])) return objToCss(obj[key], key);\n return hyphenateStyleName_1(key) + ': ' + obj[key] + ';';\n }).join(' ');\n return prevKey ? prevKey + ' {\\n ' + css + '\\n}' : css;\n};\n\nvar flatten = function flatten(chunks, executionContext) {\n return chunks.reduce(function (ruleSet, chunk) {\n /* Remove falsey values */\n if (chunk === undefined || chunk === null || chunk === false || chunk === '') {\n return ruleSet;\n }\n /* Flatten ruleSet */\n if (Array.isArray(chunk)) {\n return [].concat(ruleSet, flatten(chunk, executionContext));\n }\n\n /* Handle other components */\n if (chunk.hasOwnProperty('styledComponentId')) {\n // $FlowFixMe not sure how to make this pass\n return [].concat(ruleSet, ['.' + chunk.styledComponentId]);\n }\n\n /* Either execute or defer the function */\n if (typeof chunk === 'function') {\n return executionContext ? ruleSet.concat.apply(ruleSet, flatten([chunk(executionContext)], executionContext)) : ruleSet.concat(chunk);\n }\n\n /* Handle objects */\n return ruleSet.concat(\n // $FlowFixMe have to add %checks somehow to isPlainObject\n isPlainObject(chunk) ? objToCss(chunk) : chunk.toString());\n }, []);\n};\n\n// \nvar stylis = new Stylis({\n global: false,\n cascade: true,\n keyframe: false,\n prefix: true,\n compress: false,\n semicolon: true\n});\n\nvar stringifyRules = function stringifyRules(rules, selector, prefix) {\n var flatCSS = rules.join('').replace(/^\\s*\\/\\/.*$/gm, ''); // replace JS comments\n\n var cssStr = selector && prefix ? prefix + ' ' + selector + ' { ' + flatCSS + ' }' : flatCSS;\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n};\n\n// \nvar chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');\nvar charsLength = chars.length;\n\n/* Some high number, usually 9-digit base-10. Map it to base-😎 */\nvar generateAlphabeticName = function generateAlphabeticName(code) {\n var name = '';\n var x = void 0;\n\n for (x = code; x > charsLength; x = Math.floor(x / charsLength)) {\n name = chars[x % charsLength] + name;\n }\n\n return chars[x % charsLength] + name;\n};\n\n// \n\n\nvar interleave = (function (strings, interpolations) {\n return interpolations.reduce(function (array, interp, i) {\n return array.concat(interp, strings[i + 1]);\n }, [strings[0]]);\n});\n\n// \nvar css = (function (strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n return flatten(interleave(strings, interpolations));\n});\n\n// \nvar SC_COMPONENT_ID = /^[^\\S\\n]*?\\/\\* sc-component-id:\\s+(\\S+)\\s+\\*\\//gm;\n\nvar extractCompsFromCSS = (function (maybeCSS) {\n var css = '' + (maybeCSS || ''); // Definitely a string, and a clone\n var existingComponents = [];\n css.replace(SC_COMPONENT_ID, function (match, componentId, matchIndex) {\n existingComponents.push({ componentId: componentId, matchIndex: matchIndex });\n return match;\n });\n return existingComponents.map(function (_ref, i) {\n var componentId = _ref.componentId,\n matchIndex = _ref.matchIndex;\n\n var nextComp = existingComponents[i + 1];\n var cssFromDOM = nextComp ? css.slice(matchIndex, nextComp.matchIndex) : css.slice(matchIndex);\n return { componentId: componentId, cssFromDOM: cssFromDOM };\n });\n});\n\n// \n/* eslint-disable camelcase, no-undef */\n\nvar getNonce = (function () {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n});\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n// \n/* eslint-disable no-underscore-dangle */\n/*\n * Browser Style Sheet with Rehydration\n *\n * <style data-styled-components=\"x y z\"\n * data-styled-components-is-local=\"true\">\n * /· sc-component-id: a ·/\n * .sc-a { ... }\n * .x { ... }\n * /· sc-component-id: b ·/\n * .sc-b { ... }\n * .y { ... }\n * .z { ... }\n * </style>\n *\n * Note: replace · with * in the above snippet.\n * */\nvar COMPONENTS_PER_TAG = 40;\n\nvar BrowserTag = function () {\n function BrowserTag(el, isLocal) {\n var existingSource = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n classCallCheck(this, BrowserTag);\n\n this.el = el;\n this.isLocal = isLocal;\n this.ready = false;\n\n var extractedComps = extractCompsFromCSS(existingSource);\n\n this.size = extractedComps.length;\n this.components = extractedComps.reduce(function (acc, obj) {\n acc[obj.componentId] = obj; // eslint-disable-line no-param-reassign\n return acc;\n }, {});\n }\n\n BrowserTag.prototype.isFull = function isFull() {\n return this.size >= COMPONENTS_PER_TAG;\n };\n\n BrowserTag.prototype.addComponent = function addComponent(componentId) {\n if (!this.ready) this.replaceElement();\n if (process.env.NODE_ENV !== 'production' && this.components[componentId]) {\n throw new Error('Trying to add Component \\'' + componentId + '\\' twice!');\n }\n\n var comp = { componentId: componentId, textNode: document.createTextNode('') };\n this.el.appendChild(comp.textNode);\n\n this.size += 1;\n this.components[componentId] = comp;\n };\n\n BrowserTag.prototype.inject = function inject(componentId, css, name) {\n if (!this.ready) this.replaceElement();\n var comp = this.components[componentId];\n\n if (process.env.NODE_ENV !== 'production' && !comp) {\n throw new Error('Must add a new component before you can inject css into it');\n }\n if (comp.textNode.data === '') {\n comp.textNode.appendData('\\n/* sc-component-id: ' + componentId + ' */\\n');\n }\n\n comp.textNode.appendData(css);\n if (name) {\n var existingNames = this.el.getAttribute(SC_ATTR);\n this.el.setAttribute(SC_ATTR, existingNames ? existingNames + ' ' + name : name);\n }\n\n var nonce = getNonce();\n\n if (nonce) {\n this.el.setAttribute('nonce', nonce);\n }\n };\n\n BrowserTag.prototype.toHTML = function toHTML() {\n return this.el.outerHTML;\n };\n\n BrowserTag.prototype.toReactElement = function toReactElement() {\n throw new Error(\"BrowserTag doesn't implement toReactElement!\");\n };\n\n BrowserTag.prototype.clone = function clone() {\n throw new Error('BrowserTag cannot be cloned!');\n };\n\n /* Because we care about source order, before we can inject anything we need to\n * create a text node for each component and replace the existing CSS. */\n\n\n BrowserTag.prototype.replaceElement = function replaceElement() {\n var _this = this;\n\n this.ready = true;\n // We have nothing to inject. Use the current el.\n if (this.size === 0) return;\n\n // Build up our replacement style tag\n var newEl = this.el.cloneNode();\n newEl.appendChild(document.createTextNode('\\n'));\n\n Object.keys(this.components).forEach(function (key) {\n var comp = _this.components[key];\n\n // eslint-disable-next-line no-param-reassign\n comp.textNode = document.createTextNode(comp.cssFromDOM);\n newEl.appendChild(comp.textNode);\n });\n\n if (!this.el.parentNode) {\n throw new Error(\"Trying to replace an element that wasn't mounted!\");\n }\n\n // The ol' switcheroo\n this.el.parentNode.replaceChild(newEl, this.el);\n this.el = newEl;\n };\n\n return BrowserTag;\n}();\n\n/* Factory function to separate DOM operations from logical ones*/\n\n\nvar BrowserStyleSheet = {\n create: function create() {\n var tags = [];\n var names = {};\n\n /* Construct existing state from DOM */\n var nodes = document.querySelectorAll('[' + SC_ATTR + ']');\n var nodesLength = nodes.length;\n\n for (var i = 0; i < nodesLength; i += 1) {\n var el = nodes[i];\n\n tags.push(new BrowserTag(el, el.getAttribute(LOCAL_ATTR) === 'true', el.innerHTML));\n\n var attr = el.getAttribute(SC_ATTR);\n if (attr) {\n attr.trim().split(/\\s+/).forEach(function (name) {\n names[name] = true;\n });\n }\n }\n\n /* Factory for making more tags */\n var tagConstructor = function tagConstructor(isLocal) {\n var el = document.createElement('style');\n el.type = 'text/css';\n el.setAttribute(SC_ATTR, '');\n el.setAttribute(LOCAL_ATTR, isLocal ? 'true' : 'false');\n if (!document.head) throw new Error('Missing document <head>');\n document.head.appendChild(el);\n return new BrowserTag(el, isLocal);\n };\n\n return new StyleSheet(tagConstructor, tags, names);\n }\n};\n\n// \nvar SC_ATTR = 'data-styled-components';\nvar LOCAL_ATTR = 'data-styled-components-is-local';\nvar CONTEXT_KEY = '__styled-components-stylesheet__';\n\n/* eslint-disable flowtype/object-type-delimiter */\n\n/* eslint-enable flowtype/object-type-delimiter */\n\nvar instance = null;\n// eslint-disable-next-line no-use-before-define\nvar clones = [];\n\nvar StyleSheet = function () {\n function StyleSheet(tagConstructor) {\n var tags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var names = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, StyleSheet);\n this.hashes = {};\n this.deferredInjections = {};\n this.stylesCacheable = typeof document !== 'undefined';\n\n this.tagConstructor = tagConstructor;\n this.tags = tags;\n this.names = names;\n this.constructComponentTagMap();\n }\n\n // helper for `ComponentStyle` to know when it cache static styles.\n // staticly styled-component can not safely cache styles on the server\n // without all `ComponentStyle` instances saving a reference to the\n // the styleSheet instance they last rendered with,\n // or listening to creation / reset events. otherwise you might create\n // a component with one stylesheet and render it another api response\n // with another, losing styles on from your server-side render.\n\n\n StyleSheet.prototype.constructComponentTagMap = function constructComponentTagMap() {\n var _this = this;\n\n this.componentTags = {};\n\n this.tags.forEach(function (tag) {\n Object.keys(tag.components).forEach(function (componentId) {\n _this.componentTags[componentId] = tag;\n });\n });\n };\n\n /* Best level of caching—get the name from the hash straight away. */\n\n\n StyleSheet.prototype.getName = function getName(hash) {\n return this.hashes[hash.toString()];\n };\n\n /* Second level of caching—if the name is already in the dom, don't\n * inject anything and record the hash for getName next time. */\n\n\n StyleSheet.prototype.alreadyInjected = function alreadyInjected(hash, name) {\n if (!this.names[name]) return false;\n\n this.hashes[hash.toString()] = name;\n return true;\n };\n\n /* Third type of caching—don't inject components' componentId twice. */\n\n\n StyleSheet.prototype.hasInjectedComponent = function hasInjectedComponent(componentId) {\n return !!this.componentTags[componentId];\n };\n\n StyleSheet.prototype.deferredInject = function deferredInject(componentId, isLocal, css) {\n if (this === instance) {\n clones.forEach(function (clone) {\n clone.deferredInject(componentId, isLocal, css);\n });\n }\n\n this.getOrCreateTag(componentId, isLocal);\n this.deferredInjections[componentId] = css;\n };\n\n StyleSheet.prototype.inject = function inject(componentId, isLocal, css, hash, name) {\n if (this === instance) {\n clones.forEach(function (clone) {\n clone.inject(componentId, isLocal, css);\n });\n }\n\n var tag = this.getOrCreateTag(componentId, isLocal);\n\n var deferredInjection = this.deferredInjections[componentId];\n if (deferredInjection) {\n tag.inject(componentId, deferredInjection);\n delete this.deferredInjections[componentId];\n }\n\n tag.inject(componentId, css, name);\n\n if (hash && name) {\n this.hashes[hash.toString()] = name;\n }\n };\n\n StyleSheet.prototype.toHTML = function toHTML() {\n return this.tags.map(function (tag) {\n return tag.toHTML();\n }).join('');\n };\n\n StyleSheet.prototype.toReactElements = function toReactElements() {\n return this.tags.map(function (tag, i) {\n return tag.toReactElement('sc-' + i);\n });\n };\n\n StyleSheet.prototype.getOrCreateTag = function getOrCreateTag(componentId, isLocal) {\n var existingTag = this.componentTags[componentId];\n if (existingTag) {\n return existingTag;\n }\n\n var lastTag = this.tags[this.tags.length - 1];\n var componentTag = !lastTag || lastTag.isFull() || lastTag.isLocal !== isLocal ? this.createNewTag(isLocal) : lastTag;\n this.componentTags[componentId] = componentTag;\n componentTag.addComponent(componentId);\n return componentTag;\n };\n\n StyleSheet.prototype.createNewTag = function createNewTag(isLocal) {\n var newTag = this.tagConstructor(isLocal);\n this.tags.push(newTag);\n return newTag;\n };\n\n StyleSheet.reset = function reset(isServer) {\n instance = StyleSheet.create(isServer);\n };\n\n /* We can make isServer totally implicit once Jest 20 drops and we\n * can change environment on a per-test basis. */\n\n\n StyleSheet.create = function create() {\n var isServer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : typeof document === 'undefined';\n\n return (isServer ? ServerStyleSheet : BrowserStyleSheet).create();\n };\n\n StyleSheet.clone = function clone(oldSheet) {\n var newSheet = new StyleSheet(oldSheet.tagConstructor, oldSheet.tags.map(function (tag) {\n return tag.clone();\n }), _extends({}, oldSheet.names));\n\n newSheet.hashes = _extends({}, oldSheet.hashes);\n newSheet.deferredInjections = _extends({}, oldSheet.deferredInjections);\n clones.push(newSheet);\n\n return newSheet;\n };\n\n createClass(StyleSheet, null, [{\n key: 'instance',\n get: function get$$1() {\n return instance || (instance = StyleSheet.create());\n }\n }]);\n return StyleSheet;\n}();\n\nvar _StyleSheetManager$ch;\n\n// \nvar StyleSheetManager = function (_Component) {\n inherits(StyleSheetManager, _Component);\n\n function StyleSheetManager() {\n classCallCheck(this, StyleSheetManager);\n return possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n StyleSheetManager.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[CONTEXT_KEY] = this.props.sheet, _ref;\n };\n\n StyleSheetManager.prototype.render = function render() {\n /* eslint-disable react/prop-types */\n // Flow v0.43.1 will report an error accessing the `children` property,\n // but v0.47.0 will not. It is necessary to use a type cast instead of\n // a \"fixme\" comment to satisfy both Flow versions.\n return React.Children.only(this.props.children);\n };\n\n return StyleSheetManager;\n}(Component);\n\nStyleSheetManager.childContextTypes = (_StyleSheetManager$ch = {}, _StyleSheetManager$ch[CONTEXT_KEY] = PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]).isRequired, _StyleSheetManager$ch);\n\nStyleSheetManager.propTypes = {\n sheet: PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]).isRequired\n};\n\n// \n/* eslint-disable no-underscore-dangle */\nvar ServerTag = function () {\n function ServerTag(isLocal) {\n classCallCheck(this, ServerTag);\n\n this.isLocal = isLocal;\n this.components = {};\n this.size = 0;\n this.names = [];\n }\n\n ServerTag.prototype.isFull = function isFull() {\n return false;\n };\n\n ServerTag.prototype.addComponent = function addComponent(componentId) {\n if (process.env.NODE_ENV !== 'production' && this.components[componentId]) {\n throw new Error('Trying to add Component \\'' + componentId + '\\' twice!');\n }\n this.components[componentId] = { componentId: componentId, css: '' };\n this.size += 1;\n };\n\n ServerTag.prototype.concatenateCSS = function concatenateCSS() {\n var _this = this;\n\n return Object.keys(this.components).reduce(function (styles, k) {\n return styles + _this.components[k].css;\n }, '');\n };\n\n ServerTag.prototype.inject = function inject(componentId, css, name) {\n var comp = this.components[componentId];\n\n if (process.env.NODE_ENV !== 'production' && !comp) {\n throw new Error('Must add a new component before you can inject css into it');\n }\n if (comp.css === '') comp.css = '/* sc-component-id: ' + componentId + ' */\\n';\n\n comp.css += css.replace(/\\n*$/, '\\n');\n\n if (name) this.names.push(name);\n };\n\n ServerTag.prototype.toHTML = function toHTML() {\n var attrs = ['type=\"text/css\"', SC_ATTR + '=\"' + this.names.join(' ') + '\"', LOCAL_ATTR + '=\"' + (this.isLocal ? 'true' : 'false') + '\"'];\n\n var nonce = getNonce();\n\n if (nonce) {\n attrs.push('nonce=\"' + nonce + '\"');\n }\n\n return '<style ' + attrs.join(' ') + '>' + this.concatenateCSS() + '</style>';\n };\n\n ServerTag.prototype.toReactElement = function toReactElement(key) {\n var _attrs;\n\n var attrs = (_attrs = {}, _attrs[SC_ATTR] = this.names.join(' '), _attrs[LOCAL_ATTR] = this.isLocal.toString(), _attrs);\n\n var nonce = getNonce();\n\n if (nonce) {\n attrs.nonce = nonce;\n }\n\n return React.createElement('style', _extends({\n key: key,\n type: 'text/css'\n }, attrs, {\n dangerouslySetInnerHTML: { __html: this.concatenateCSS() }\n }));\n };\n\n ServerTag.prototype.clone = function clone() {\n var _this2 = this;\n\n var copy = new ServerTag(this.isLocal);\n copy.names = [].concat(this.names);\n copy.size = this.size;\n copy.components = Object.keys(this.components).reduce(function (acc, key) {\n acc[key] = _extends({}, _this2.components[key]); // eslint-disable-line no-param-reassign\n return acc;\n }, {});\n\n return copy;\n };\n\n return ServerTag;\n}();\n\nvar ServerStyleSheet = function () {\n function ServerStyleSheet() {\n classCallCheck(this, ServerStyleSheet);\n\n this.instance = StyleSheet.clone(StyleSheet.instance);\n }\n\n ServerStyleSheet.prototype.collectStyles = function collectStyles(children) {\n if (this.closed) {\n throw new Error(\"Can't collect styles once you've called getStyleTags!\");\n }\n return React.createElement(\n StyleSheetManager,\n { sheet: this.instance },\n children\n );\n };\n\n ServerStyleSheet.prototype.getStyleTags = function getStyleTags() {\n if (!this.closed) {\n clones.splice(clones.indexOf(this.instance), 1);\n this.closed = true;\n }\n\n return this.instance.toHTML();\n };\n\n ServerStyleSheet.prototype.getStyleElement = function getStyleElement() {\n if (!this.closed) {\n clones.splice(clones.indexOf(this.instance), 1);\n this.closed = true;\n }\n\n return this.instance.toReactElements();\n };\n\n ServerStyleSheet.create = function create() {\n return new StyleSheet(function (isLocal) {\n return new ServerTag(isLocal);\n });\n };\n\n return ServerStyleSheet;\n}();\n\n// \n\nvar LIMIT = 200;\n\nvar createWarnTooManyClasses = (function (displayName) {\n var generatedClasses = {};\n var warningSeen = false;\n\n return function (className) {\n if (!warningSeen) {\n generatedClasses[className] = true;\n if (Object.keys(generatedClasses).length >= LIMIT) {\n // Unable to find latestRule in test environment.\n /* eslint-disable no-console, prefer-template */\n console.warn('Over ' + LIMIT + ' classes were generated for component ' + displayName + '. \\n' + 'Consider using the attrs method, together with a style object for frequently changed styles.\\n' + 'Example:\\n' + ' const Component = styled.div.attrs({\\n' + ' style: ({ background }) => ({\\n' + ' background,\\n' + ' }),\\n' + ' })`width: 100%;`\\n\\n' + ' <Component />');\n warningSeen = true;\n generatedClasses = {};\n }\n }\n };\n});\n\n// \n/* eslint-disable max-len */\n/**\n * Trying to avoid the unknown-prop errors on styled components by filtering by\n * React's attribute whitelist.\n *\n * To regenerate this regex:\n *\n * 1. `npm i -g regexgen` (https://github.com/devongovett/regexgen)\n * 2. Run `regexgen` with the list of space-separated words below as input\n * 3. Surround the emitted regex with this: `/^(GENERATED_REGEX)$/` -- this will ensure a full string match\n * and no false positives from partials\n **/\n/*\nchildren dangerouslySetInnerHTML key ref autoFocus defaultValue valueLink defaultChecked checkedLink innerHTML suppressContentEditableWarning onFocusIn onFocusOut className onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onReset onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onAnimationStart onAnimationEnd onAnimationIteration onTransitionEnd onCopyCapture onCutCapture onPasteCapture onCompositionEndCapture onCompositionStartCapture onCompositionUpdateCapture onKeyDownCapture onKeyPressCapture onKeyUpCapture onFocusCapture onBlurCapture onChangeCapture onInputCapture onSubmitCapture onResetCapture onClickCapture onContextMenuCapture onDoubleClickCapture onDragCapture onDragEndCapture onDragEnterCapture onDragExitCapture onDragLeaveCapture onDragOverCapture onDragStartCapture onDropCapture onMouseDownCapture onMouseEnterCapture onMouseLeaveCapture onMouseMoveCapture onMouseOutCapture onMouseOverCapture onMouseUpCapture onSelectCapture onTouchCancelCapture onTouchEndCapture onTouchMoveCapture onTouchStartCapture onScrollCapture onWheelCapture onAbortCapture onCanPlayCapture onCanPlayThroughCapture onDurationChangeCapture onEmptiedCapture onEncryptedCapture onEndedCapture onErrorCapture onLoadedDataCapture onLoadedMetadataCapture onLoadStartCapture onPauseCapture onPlayCapture onPlayingCapture onProgressCapture onRateChangeCapture onSeekedCapture onSeekingCapture onStalledCapture onSuspendCapture onTimeUpdateCapture onVolumeChangeCapture onWaitingCapture onLoadCapture onAnimationStartCapture onAnimationEndCapture onAnimationIterationCapture onTransitionEndCapture accept acceptCharset accessKey action allowFullScreen allowTransparency alt as async autoComplete autoPlay capture cellPadding cellSpacing charSet challenge checked cite classID className cols colSpan content contentEditable contextMenu controls coords crossOrigin data dateTime default defer dir disabled download draggable encType form formAction formEncType formMethod formNoValidate formTarget frameBorder headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity is keyParams keyType kind label lang list loop low manifest 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 span spellCheck src srcDoc srcLang srcSet start step style summary tabIndex target title type useMap value width wmode wrap about datatype inlist prefix property resource typeof vocab autoCapitalize autoCorrect autoSave color itemProp itemScope itemType itemID itemRef results security unselectable accentHeight accumulate additive alignmentBaseline allowReorder alphabetic amplitude arabicForm ascent attributeName attributeType autoReverse azimuth baseFrequency baseProfile baselineShift bbox begin bias by calcMode capHeight clip clipPath clipRule clipPathUnits 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 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 paintOrder panose1 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\n*/\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_REGEX = /^((?:s(?:uppressContentEditableWarn|croll|pac)|(?:shape|image|text)Render|(?:letter|word)Spac|vHang|hang)ing|(?:on(?:AnimationIteration|C(?:o(?:mposition(?:Update|Start|End)|ntextMenu|py)|anPlayThrough|anPlay|hange|lick|ut)|(?:(?:Duration|Volume|Rate)Chang|(?:MouseLea|(?:Touch|Mouse)Mo|DragLea)v|Paus)e|Loaded(?:Metad|D)ata|(?:Animation|Touch|Load|Drag)Start|(?:(?:T(?:ransition|ouch)|Animation)E|Suspe)nd|DoubleClick|(?:TouchCanc|Whe)el|(?:Mouse(?:Ent|Ov)e|Drag(?:Ent|Ov)e|Erro)r|TimeUpdate|(?:E(?:n(?:crypt|d)|mpti)|S(?:tall|eek))ed|MouseDown|P(?:rogress|laying)|(?:MouseOu|DragExi|S(?:elec|ubmi)|Rese|Inpu)t|KeyPress|DragEnd|Key(?:Down|Up)|(?:Wait|Seek)ing|(?:MouseU|Dro)p|Scroll|Paste|Focus|Abort|Drag|Play|Load|Blur)Captur|alignmentBaselin|(?:limitingConeAng|xlink(?:(?:Arcr|R)o|Tit)|s(?:urfaceSca|ty|ca)|unselectab|baseProfi|fontSty|(?:focus|dragg)ab|multip|profi|tit)l|d(?:ominantBaselin|efaultValu)|a(?:uto(?:Capitaliz|Revers|Sav)|dditiv)|(?:(?:formNoValid|xlinkActu|noValid|accumul|rot)a|autoComple|decelera)t|(?:(?:attribute|item)T|datat)yp|(?:attribute|glyph)Nam|playsInlin|(?:formE|e)ncTyp|(?:writing|input|edge)Mod|(?:xlinkTy|itemSco|keyTy|slo)p|(?:amplitu|mo)d|(?:xmlSpa|non)c|fillRul|(?:dateTi|na)m|r(?:esourc|ol)|xmlBas|wmod)e|(?:glyphOrientationHorizont|loc)al|(?:externalResourcesRequir|select|revers|mut)ed|c(?:o(?:lorInterpolationFilter|ntrol|ord)s|o(?:lor(?:Interpolation)?|ntent)|(?:ontentS(?:cript|tyle)Typ|o(?:ntentEditab|lorProfi)l|l(?:assNam|ipRul)|a(?:lcMod|ptur)|it)e|olorRendering|l(?:ipPathUnits|assID)|o(?:ntextMenu|ls)|h(?:eckedLink|a(?:llenge|rSet)|ildren|ecked)|ell(?:Spac|Padd)ing|(?:rossOrigi|olSpa)n|apHeight|lip(?:Path)?|ursor|[xy])|glyphOrientationVertical|d(?:angerouslySetInnerHTML|efaultChecked|ownload|isabled|isplay|[xy])|(?:s(?:trikethroughThickn|eaml)es|(?:und|ov)erlineThicknes|r(?:equiredExtension|adiu)|(?:requiredFeatur|tableValu|stitchTil|numOctav|filterR)e|key(?:(?:Splin|Tim)e|Param)|autoFocu|header|bia)s|(?:(?:st(?:rikethroughPosi|dDevia)|(?:und|ov)erlinePosi|(?:textDecor|elev)a|orienta)tio|(?:strokeLinejo|orig)i|formActio|zoomAndPa|onFocusI|directio|(?:vers|act)io|rowSpa|begi|ico)n|o(?:n(?:AnimationIteration|C(?:o(?:mposition(?:Update|Start|End)|ntextMenu|py)|anPlayThrough|anPlay|hange|lick|ut)|(?:(?:Duration|Volume|Rate)Chang|(?:MouseLea|(?:Touch|Mouse)Mo|DragLea)v|Paus)e|Loaded(?:Metad|D)ata|(?:Animation|Touch|Load|Drag)Start|(?:(?:T(?:ransition|ouch)|Animation)E|Suspe)nd|DoubleClick|(?:TouchCanc|Whe)el|(?:Mouse(?:Ent|Ov)e|Drag(?:Ent|Ov)e|Erro)r|TimeUpdate|(?:E(?:n(?:crypt|d)|mpti)|S(?:tall|eek))ed|MouseDown|P(?:rogress|laying)|(?:MouseOu|DragExi|S(?:elec|ubmi)|Rese|Inpu)t|KeyPress|DragEnd|Key(?:Down|Up)|(?:Wait|Seek)ing|(?:MouseU|Dro)p|Scroll|Paste|Focus|Abort|Drag|Play|Load|Blur)|rient)|p(?:reserveA(?:spectRatio|lpha)|ointsAt[X-Z]|anose1)|(?:patternContent|ma(?:sk(?:Content)?|rker)|primitive|gradient|pattern|filter)Units|(?:gradientT|patternT|t)ransform|(?:(?:allowTranspar|baseFrequ)enc|re(?:ferrerPolic|adOnl)|(?:(?:st(?:roke|op)O|floodO|fillO|o)pac|integr|secur)it|visibilit|fontFamil|accessKe|propert|summar)y|(?:strokeMiterlimi|(?:specularConsta|repeatCou|fontVaria)n|(?:(?:specularE|e)xpon|renderingInt|asc)en|d(?:iffuseConsta|esce)n|(?:fontSizeAdju|lengthAdju|manife)s|baselineShif|vectorEffec|(?:(?:mar(?:ker|gin)|x)H|accentH|fontW)eigh|a(?:utoCorrec|bou)|markerStar|onFocusOu|in(?:tercep|lis)|restar|forma|heigh|lis)t|(?:(?:st(?:rokeDasho|artO)|o)ffs|acceptChars|formTarg|viewTarg|srcS)et|(?:(?:enableBackgrou|markerE)n|s(?:p(?:readMetho|ee)|ee)|formMetho|m(?:arkerMi|etho)|preloa|kin)d|k(?:ernel(?:UnitLength|Matrix)|[1-4])|(?:[xy]ChannelSelect|lightingCol|textAnch|floodCol|stopCol|operat|htmlF)or|(?:allowFullScre|hidd)en|strokeDasharray|systemLanguage|(?:strokeLineca|itemPro|useMa|wra|loo)p|v(?:Mathematical|ert(?:Origin[XY]|AdvY)|alues|ocab)|(?:pointerEve|keyPoi)nts|unicodeRange|(?:(?:allowReord|placehold|frameBord|paintOrd|post|ord)e|repeatDu|d(?:efe|u))r|mathematical|(?:vI|i)deographic|h(?:oriz(?:Origin|Adv)X|ttpEquiv)|u(?:nicodeBidi|[12])|(?:fontStretc|hig)h|(?:(?:mar(?:ker|gin)W|strokeW)id|azimu)th|vAlphabetic|mediaGroup|spellCheck|(?:unitsPerE|optimu|fro)m|r(?:adioGroup|e(?:sults|f[XY]|l)|ows|[xy])|(?:xmlnsXl|valueL)ink|a(?:rabicForm|l(?:phabetic|t)|sync)|pathLength|(?:text|m(?:in|ax))Length|innerHTML|xlinkShow|(?:xlinkHr|glyphR)ef|r(?:e(?:quired|sult|f))?|o(?:verflow|pen)|(?:tabInde|(?:sand|b)bo|viewBo)x|(?:(?:href|xml|src)La|kerni)ng|f(?:o(?:ntSize|rm)|il(?:ter|l))|autoPlay|unicode|p(?:attern|oints)|t(?:arget[XY]|o)|i(?:temRef|n2|s)|divisor|d(?:efault|ata|ir)?|srcDoc|s(?:coped|te(?:m[hv]|p)|pan)|(?:width|size)s|(?:stri|la)ng|prefix|itemID|s(?:t(?:roke|art)|hape|cope|rc)|a(?:ccept|s)|t(?:arget|ype)|typeof|width|value|x(?:mlns)?|label|m(?:edia|a(?:sk|x)|in)|size|href|k(?:ey)?|end|low|x[12]|i[dn]|y[12]|g[12]|by|f[xy]|[yz])$/;\n\n/* From DOMProperty */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nvar isCustomAttribute = RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$'));\n\nvar validAttr = (function (name) {\n return ATTRIBUTE_REGEX.test(name) || isCustomAttribute(name.toLowerCase());\n});\n\n// \n\n\nfunction isTag(target) /* : %checks */{\n return typeof target === 'string';\n}\n\n// \n\n\nfunction isStyledComponent(target) /* : %checks */{\n return typeof target === 'function' && typeof target.styledComponentId === 'string';\n}\n\n// \n\n/* eslint-disable no-undef */\nfunction getComponentName(target) {\n return target.displayName || target.name || 'Component';\n}\n\n// \n\n\nvar determineTheme = (function (props, fallbackTheme, defaultProps) {\n // Props should take precedence over ThemeProvider, which should take precedence over\n // defaultProps, but React automatically puts defaultProps on props.\n\n /* eslint-disable react/prop-types */\n var isDefaultTheme = defaultProps && props.theme === defaultProps.theme;\n var theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme;\n /* eslint-enable */\n\n return theme;\n});\n\n// \nvar escapeRegex = /[[\\].#*$><+~=|^:(),\"'`-]+/g;\nvar dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nfunction escape(str) {\n return str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n\n// \n/**\n * Creates a broadcast that can be listened to, i.e. simple event emitter\n *\n * @see https://github.com/ReactTraining/react-broadcast\n */\n\nvar createBroadcast = function createBroadcast(initialState) {\n var listeners = {};\n var id = 0;\n var state = initialState;\n\n function publish(nextState) {\n state = nextState;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in listeners) {\n var listener = listeners[key];\n if (listener === undefined) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n listener(state);\n }\n }\n\n function subscribe(listener) {\n var currentId = id;\n listeners[currentId] = listener;\n id += 1;\n listener(state);\n return currentId;\n }\n\n function unsubscribe(unsubID) {\n listeners[unsubID] = undefined;\n }\n\n return { publish: publish, subscribe: subscribe, unsubscribe: unsubscribe };\n};\n\n// \n// Helper to call a given function, only once\nvar once = (function (cb) {\n var called = false;\n\n return function () {\n if (!called) {\n called = true;\n cb();\n }\n };\n});\n\nvar _ThemeProvider$childC;\nvar _ThemeProvider$contex;\n\n// \n/* globals React$Element */\n// NOTE: DO NOT CHANGE, changing this is a semver major change!\nvar CHANNEL = '__styled-components__';\nvar CHANNEL_NEXT = CHANNEL + 'next__';\n\nvar CONTEXT_CHANNEL_SHAPE = PropTypes.shape({\n getTheme: PropTypes.func,\n subscribe: PropTypes.func,\n unsubscribe: PropTypes.func\n});\n\nvar warnChannelDeprecated = void 0;\nif (process.env.NODE_ENV !== 'production') {\n warnChannelDeprecated = once(function () {\n // eslint-disable-next-line no-console\n console.error('Warning: Usage of `context.' + CHANNEL + '` as a function is deprecated. It will be replaced with the object on `.context.' + CHANNEL_NEXT + '` in a future version.');\n });\n}\n\nvar isFunction = function isFunction(test) {\n return typeof test === 'function';\n};\n\n/**\n * Provide a theme to an entire react component tree via context and event listeners (have to do\n * both context and event emitter as pure components block context updates)\n */\n\nvar ThemeProvider = function (_Component) {\n inherits(ThemeProvider, _Component);\n\n function ThemeProvider() {\n classCallCheck(this, ThemeProvider);\n\n var _this = possibleConstructorReturn(this, _Component.call(this));\n\n _this.unsubscribeToOuterId = -1;\n\n _this.getTheme = _this.getTheme.bind(_this);\n return _this;\n }\n\n ThemeProvider.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n // If there is a ThemeProvider wrapper anywhere around this theme provider, merge this theme\n // with the outer theme\n var outerContext = this.context[CHANNEL_NEXT];\n if (outerContext !== undefined) {\n this.unsubscribeToOuterId = outerContext.subscribe(function (theme) {\n _this2.outerTheme = theme;\n });\n }\n this.broadcast = createBroadcast(this.getTheme());\n };\n\n ThemeProvider.prototype.getChildContext = function getChildContext() {\n var _this3 = this,\n _babelHelpers$extends;\n\n return _extends({}, this.context, (_babelHelpers$extends = {}, _babelHelpers$extends[CHANNEL_NEXT] = {\n getTheme: this.getTheme,\n subscribe: this.broadcast.subscribe,\n unsubscribe: this.broadcast.unsubscribe\n }, _babelHelpers$extends[CHANNEL] = function (subscriber) {\n if (process.env.NODE_ENV !== 'production') {\n warnChannelDeprecated();\n }\n\n // Patch the old `subscribe` provide via `CHANNEL` for older clients.\n var unsubscribeId = _this3.broadcast.subscribe(subscriber);\n return function () {\n return _this3.broadcast.unsubscribe(unsubscribeId);\n };\n }, _babelHelpers$extends));\n };\n\n ThemeProvider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.theme !== nextProps.theme) {\n this.broadcast.publish(this.getTheme(nextProps.theme));\n }\n };\n\n ThemeProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.unsubscribeToOuterId !== -1) {\n this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeToOuterId);\n }\n };\n\n // Get the theme from the props, supporting both (outerTheme) => {} as well as object notation\n\n\n ThemeProvider.prototype.getTheme = function getTheme(passedTheme) {\n var theme = passedTheme || this.props.theme;\n if (isFunction(theme)) {\n var mergedTheme = theme(this.outerTheme);\n if (process.env.NODE_ENV !== 'production' && !isPlainObject(mergedTheme)) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n return mergedTheme;\n }\n if (!isPlainObject(theme)) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n return _extends({}, this.outerTheme, theme);\n };\n\n ThemeProvider.prototype.render = function render() {\n if (!this.props.children) {\n return null;\n }\n return React.Children.only(this.props.children);\n };\n\n return ThemeProvider;\n}(Component);\n\nThemeProvider.childContextTypes = (_ThemeProvider$childC = {}, _ThemeProvider$childC[CHANNEL] = PropTypes.func, _ThemeProvider$childC[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _ThemeProvider$childC);\nThemeProvider.contextTypes = (_ThemeProvider$contex = {}, _ThemeProvider$contex[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _ThemeProvider$contex);\n\n// \n\n// HACK for generating all static styles without needing to allocate\n// an empty execution context every single time...\nvar STATIC_EXECUTION_CONTEXT = {};\n\nvar _StyledComponent = (function (ComponentStyle, constructWithOptions) {\n var identifiers = {};\n\n /* We depend on components having unique IDs */\n var generateId = function generateId(_displayName, parentComponentId) {\n var displayName = typeof _displayName !== 'string' ? 'sc' : escape(_displayName);\n\n var componentId = void 0;\n\n /**\n * only fall back to hashing the component injection order if\n * a proper displayName isn't provided by the babel plugin\n */\n if (!_displayName) {\n var nr = (identifiers[displayName] || 0) + 1;\n identifiers[displayName] = nr;\n\n componentId = displayName + '-' + ComponentStyle.generateName(displayName + nr);\n } else {\n componentId = displayName + '-' + ComponentStyle.generateName(displayName);\n }\n\n return parentComponentId !== undefined ? parentComponentId + '-' + componentId : componentId;\n };\n\n var BaseStyledComponent = function (_Component) {\n inherits(BaseStyledComponent, _Component);\n\n function BaseStyledComponent() {\n var _temp, _this, _ret;\n\n classCallCheck(this, BaseStyledComponent);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.attrs = {}, _this.state = {\n theme: null,\n generatedClassName: ''\n }, _this.unsubscribeId = -1, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n BaseStyledComponent.prototype.unsubscribeFromContext = function unsubscribeFromContext() {\n if (this.unsubscribeId !== -1) {\n this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeId);\n }\n };\n\n BaseStyledComponent.prototype.buildExecutionContext = function buildExecutionContext(theme, props) {\n var attrs = this.constructor.attrs;\n\n var context = _extends({}, props, { theme: theme });\n if (attrs === undefined) {\n return context;\n }\n\n this.attrs = Object.keys(attrs).reduce(function (acc, key) {\n var attr = attrs[key];\n // eslint-disable-next-line no-param-reassign\n acc[key] = typeof attr === 'function' ? attr(context) : attr;\n return acc;\n }, {});\n\n return _extends({}, context, this.attrs);\n };\n\n BaseStyledComponent.prototype.generateAndInjectStyles = function generateAndInjectStyles(theme, props) {\n var _constructor = this.constructor,\n attrs = _constructor.attrs,\n componentStyle = _constructor.componentStyle,\n warnTooManyClasses = _constructor.warnTooManyClasses;\n\n var styleSheet = this.context[CONTEXT_KEY] || StyleSheet.instance;\n\n // staticaly styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n if (componentStyle.isStatic && attrs === undefined) {\n return componentStyle.generateAndInjectStyles(STATIC_EXECUTION_CONTEXT, styleSheet);\n } else {\n var executionContext = this.buildExecutionContext(theme, props);\n var className = componentStyle.generateAndInjectStyles(executionContext, styleSheet);\n\n if (process.env.NODE_ENV !== 'production' && warnTooManyClasses !== undefined) {\n warnTooManyClasses(className);\n }\n\n return className;\n }\n };\n\n BaseStyledComponent.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n var componentStyle = this.constructor.componentStyle;\n\n var styledContext = this.context[CHANNEL_NEXT];\n\n // If this is a staticaly-styled component, we don't need to the theme\n // to generate or build styles.\n if (componentStyle.isStatic) {\n var generatedClassName = this.generateAndInjectStyles(STATIC_EXECUTION_CONTEXT, this.props);\n this.setState({ generatedClassName: generatedClassName });\n // If there is a theme in the context, subscribe to the event emitter. This\n // is necessary due to pure components blocking context updates, this circumvents\n // that by updating when an event is emitted\n } else if (styledContext !== undefined) {\n var subscribe = styledContext.subscribe;\n\n this.unsubscribeId = subscribe(function (nextTheme) {\n // This will be called once immediately\n var theme = determineTheme(_this2.props, nextTheme, _this2.constructor.defaultProps);\n var generatedClassName = _this2.generateAndInjectStyles(theme, _this2.props);\n\n _this2.setState({ theme: theme, generatedClassName: generatedClassName });\n });\n } else {\n // eslint-disable-next-line react/prop-types\n var theme = this.props.theme || {};\n var _generatedClassName = this.generateAndInjectStyles(theme, this.props);\n this.setState({ theme: theme, generatedClassName: _generatedClassName });\n }\n };\n\n BaseStyledComponent.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n // If this is a staticaly-styled component, we don't need to listen to\n // props changes to update styles\n var componentStyle = this.constructor.componentStyle;\n\n if (componentStyle.isStatic) {\n return;\n }\n\n this.setState(function (oldState) {\n var theme = determineTheme(nextProps, oldState.theme, _this3.constructor.defaultProps);\n var generatedClassName = _this3.generateAndInjectStyles(theme, nextProps);\n\n return { theme: theme, generatedClassName: generatedClassName };\n });\n };\n\n BaseStyledComponent.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unsubscribeFromContext();\n };\n\n BaseStyledComponent.prototype.render = function render() {\n var _this4 = this;\n\n // eslint-disable-next-line react/prop-types\n var innerRef = this.props.innerRef;\n var generatedClassName = this.state.generatedClassName;\n var _constructor2 = this.constructor,\n styledComponentId = _constructor2.styledComponentId,\n target = _constructor2.target;\n\n\n var isTargetTag = isTag(target);\n\n var className = [\n // eslint-disable-next-line react/prop-types\n this.props.className, styledComponentId, this.attrs.className, generatedClassName].filter(Boolean).join(' ');\n\n var baseProps = _extends({}, this.attrs, {\n className: className\n });\n\n if (isStyledComponent(target)) {\n baseProps.innerRef = innerRef;\n } else {\n baseProps.ref = innerRef;\n }\n\n var propsForElement = Object.keys(this.props).reduce(function (acc, propName) {\n // Don't pass through non HTML tags through to HTML elements\n // always omit innerRef\n if (propName !== 'innerRef' && propName !== 'className' && (!isTargetTag || validAttr(propName))) {\n // eslint-disable-next-line no-param-reassign\n acc[propName] = _this4.props[propName];\n }\n\n return acc;\n }, baseProps);\n\n return createElement(target, propsForElement);\n };\n\n return BaseStyledComponent;\n }(Component);\n\n var createStyledComponent = function createStyledComponent(target, options, rules) {\n var _StyledComponent$cont;\n\n var _options$displayName = options.displayName,\n displayName = _options$displayName === undefined ? isTag(target) ? 'styled.' + target : 'Styled(' + getComponentName(target) + ')' : _options$displayName,\n _options$componentId = options.componentId,\n componentId = _options$componentId === undefined ? generateId(options.displayName, options.parentComponentId) : _options$componentId,\n _options$ParentCompon = options.ParentComponent,\n ParentComponent = _options$ParentCompon === undefined ? BaseStyledComponent : _options$ParentCompon,\n extendingRules = options.rules,\n attrs = options.attrs;\n\n\n var styledComponentId = options.displayName && options.componentId ? escape(options.displayName) + '-' + options.componentId : componentId;\n\n var componentStyle = new ComponentStyle(extendingRules === undefined ? rules : extendingRules.concat(rules), attrs, styledComponentId);\n\n var StyledComponent = function (_ParentComponent) {\n inherits(StyledComponent, _ParentComponent);\n\n function StyledComponent() {\n classCallCheck(this, StyledComponent);\n return possibleConstructorReturn(this, _ParentComponent.apply(this, arguments));\n }\n\n StyledComponent.withComponent = function withComponent(tag) {\n var previousComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['componentId']);\n\n\n var newComponentId = previousComponentId && previousComponentId + '-' + (isTag(tag) ? tag : escape(getComponentName(tag)));\n\n var newOptions = _extends({}, optionsToCopy, {\n componentId: newComponentId,\n ParentComponent: StyledComponent\n });\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n createClass(StyledComponent, null, [{\n key: 'extend',\n get: function get$$1() {\n var rulesFromOptions = options.rules,\n parentComponentId = options.componentId,\n optionsToCopy = objectWithoutProperties(options, ['rules', 'componentId']);\n\n\n var newRules = rulesFromOptions === undefined ? rules : rulesFromOptions.concat(rules);\n\n var newOptions = _extends({}, optionsToCopy, {\n rules: newRules,\n parentComponentId: parentComponentId,\n ParentComponent: StyledComponent\n });\n\n return constructWithOptions(createStyledComponent, target, newOptions);\n }\n }]);\n return StyledComponent;\n }(ParentComponent);\n\n StyledComponent.contextTypes = (_StyledComponent$cont = {}, _StyledComponent$cont[CHANNEL] = PropTypes.func, _StyledComponent$cont[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _StyledComponent$cont[CONTEXT_KEY] = PropTypes.oneOfType([PropTypes.instanceOf(StyleSheet), PropTypes.instanceOf(ServerStyleSheet)]), _StyledComponent$cont);\n StyledComponent.displayName = displayName;\n StyledComponent.styledComponentId = styledComponentId;\n StyledComponent.attrs = attrs;\n StyledComponent.componentStyle = componentStyle;\n StyledComponent.target = target;\n\n\n if (process.env.NODE_ENV !== 'production') {\n StyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName);\n }\n\n return StyledComponent;\n };\n\n return createStyledComponent;\n});\n\n// murmurhash2 via https://gist.github.com/raycmorgan/588423\n\nfunction doHash(str, seed) {\n var m = 0x5bd1e995;\n var r = 24;\n var h = seed ^ str.length;\n var length = str.length;\n var currentIndex = 0;\n\n while (length >= 4) {\n var k = UInt32(str, currentIndex);\n\n k = Umul32(k, m);\n k ^= k >>> r;\n k = Umul32(k, m);\n\n h = Umul32(h, m);\n h ^= k;\n\n currentIndex += 4;\n length -= 4;\n }\n\n switch (length) {\n case 3:\n h ^= UInt16(str, currentIndex);\n h ^= str.charCodeAt(currentIndex + 2) << 16;\n h = Umul32(h, m);\n break;\n\n case 2:\n h ^= UInt16(str, currentIndex);\n h = Umul32(h, m);\n break;\n\n case 1:\n h ^= str.charCodeAt(currentIndex);\n h = Umul32(h, m);\n break;\n }\n\n h ^= h >>> 13;\n h = Umul32(h, m);\n h ^= h >>> 15;\n\n return h >>> 0;\n}\n\nfunction UInt32(str, pos) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8) + (str.charCodeAt(pos++) << 16) + (str.charCodeAt(pos) << 24);\n}\n\nfunction UInt16(str, pos) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8);\n}\n\nfunction Umul32(n, m) {\n n = n | 0;\n m = m | 0;\n var nlo = n & 0xffff;\n var nhi = n >>> 16;\n var res = nlo * m + ((nhi * m & 0xffff) << 16) | 0;\n return res;\n}\n\n// \nvar isStaticRules = function isStaticRules(rules, attrs) {\n for (var i = 0; i < rules.length; i += 1) {\n var rule = rules[i];\n\n // recursive case\n if (Array.isArray(rule) && !isStaticRules(rule)) {\n return false;\n } else if (typeof rule === 'function' && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled copmonent\n return false;\n }\n }\n\n if (attrs !== undefined) {\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (var key in attrs) {\n var value = attrs[key];\n if (typeof value === 'function') {\n return false;\n }\n }\n }\n\n return true;\n};\n\nvar isHRMEnabled = typeof module !== 'undefined' && module.hot && process.env.NODE_ENV !== 'production';\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\nvar _ComponentStyle = (function (nameGenerator, flatten, stringifyRules) {\n var ComponentStyle = function () {\n function ComponentStyle(rules, attrs, componentId) {\n classCallCheck(this, ComponentStyle);\n\n this.rules = rules;\n this.isStatic = !isHRMEnabled && isStaticRules(rules, attrs);\n this.componentId = componentId;\n if (!StyleSheet.instance.hasInjectedComponent(this.componentId)) {\n var placeholder = process.env.NODE_ENV !== 'production' ? '.' + componentId + ' {}' : '';\n StyleSheet.instance.deferredInject(componentId, true, placeholder);\n }\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n\n\n ComponentStyle.prototype.generateAndInjectStyles = function generateAndInjectStyles(executionContext, styleSheet) {\n var isStatic = this.isStatic,\n lastClassName = this.lastClassName;\n\n if (isStatic && lastClassName !== undefined) {\n return lastClassName;\n }\n\n var flatCSS = flatten(this.rules, executionContext);\n var hash = doHash(this.componentId + flatCSS.join(''));\n\n var existingName = styleSheet.getName(hash);\n if (existingName !== undefined) {\n if (styleSheet.stylesCacheable) {\n this.lastClassName = existingName;\n }\n return existingName;\n }\n\n var name = nameGenerator(hash);\n if (styleSheet.stylesCacheable) {\n this.lastClassName = existingName;\n }\n if (styleSheet.alreadyInjected(hash, name)) {\n return name;\n }\n\n var css = '\\n' + stringifyRules(flatCSS, '.' + name);\n // NOTE: this can only be set when we inject the class-name.\n // For some reason, presumably due to how css is stringifyRules behaves in\n // differently between client and server, styles break.\n styleSheet.inject(this.componentId, true, css, hash, name);\n return name;\n };\n\n ComponentStyle.generateName = function generateName(str) {\n return nameGenerator(doHash(str));\n };\n\n return ComponentStyle;\n }();\n\n return ComponentStyle;\n});\n\n// \n// Thanks to ReactDOMFactories for this handy list!\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',\n\n// SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// \n\nvar _styled = (function (styledComponent, constructWithOptions) {\n var styled = function styled(tag) {\n return constructWithOptions(styledComponent, tag);\n };\n\n // Shorthands for all valid HTML Elements\n domElements.forEach(function (domElement) {\n styled[domElement] = styled(domElement);\n });\n\n return styled;\n});\n\n// \nvar replaceWhitespace = function replaceWhitespace(str) {\n return str.replace(/\\s|\\\\n/g, '');\n};\n\nvar _keyframes = (function (nameGenerator, stringifyRules, css) {\n return function (strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var hash = doHash(replaceWhitespace(JSON.stringify(rules)));\n\n var existingName = StyleSheet.instance.getName(hash);\n if (existingName) return existingName;\n\n var name = nameGenerator(hash);\n if (StyleSheet.instance.alreadyInjected(hash, name)) return name;\n\n var generatedCSS = stringifyRules(rules, name, '@keyframes');\n StyleSheet.instance.inject('sc-keyframes-' + name, true, generatedCSS, hash, name);\n return name;\n };\n});\n\n// \nvar _injectGlobal = (function (stringifyRules, css) {\n var injectGlobal = function injectGlobal(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n var rules = css.apply(undefined, [strings].concat(interpolations));\n var hash = doHash(JSON.stringify(rules));\n\n var componentId = 'sc-global-' + hash;\n if (StyleSheet.instance.hasInjectedComponent(componentId)) return;\n\n StyleSheet.instance.inject(componentId, false, stringifyRules(rules));\n };\n\n return injectGlobal;\n});\n\n// \n\n\nvar _constructWithOptions = (function (css) {\n var constructWithOptions = function constructWithOptions(componentConstructor, tag) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (process.env.NODE_ENV !== 'production' && typeof tag !== 'string' && typeof tag !== 'function') {\n // $FlowInvalidInputTest\n throw new Error('Cannot create styled-component for component: ' + tag);\n }\n\n /* This is callable directly as a template function */\n var templateFunction = function templateFunction(strings) {\n for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n return componentConstructor(tag, options, css.apply(undefined, [strings].concat(interpolations)));\n };\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = function (config) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, config));\n };\n templateFunction.attrs = function (attrs) {\n return constructWithOptions(componentConstructor, tag, _extends({}, options, {\n attrs: _extends({}, options.attrs || {}, attrs)\n }));\n };\n\n return templateFunction;\n };\n\n return constructWithOptions;\n});\n\n// \n/* globals ReactClass */\n\nvar wrapWithTheme = function wrapWithTheme(Component$$1) {\n var _WithTheme$contextTyp;\n\n var componentName = Component$$1.displayName || Component$$1.name || 'Component';\n\n var shouldSetInnerRef = isStyledComponent(Component$$1) ||\n // NOTE: We can't pass a ref to a stateless functional component\n typeof Component$$1 === 'function' && !(Component$$1.prototype && 'isReactComponent' in Component$$1.prototype);\n\n var WithTheme = function (_React$Component) {\n inherits(WithTheme, _React$Component);\n\n function WithTheme() {\n var _temp, _this, _ret;\n\n classCallCheck(this, WithTheme);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {}, _this.unsubscribeId = -1, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n // NOTE: This is so that isStyledComponent passes for the innerRef unwrapping\n\n\n WithTheme.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n var defaultProps = this.constructor.defaultProps;\n\n var styledContext = this.context[CHANNEL_NEXT];\n var themeProp = determineTheme(this.props, undefined, defaultProps);\n if (styledContext === undefined && themeProp === undefined && process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps');\n } else if (styledContext === undefined && themeProp !== undefined) {\n this.setState({ theme: themeProp });\n } else {\n var subscribe = styledContext.subscribe;\n\n this.unsubscribeId = subscribe(function (nextTheme) {\n var theme = determineTheme(_this2.props, nextTheme, defaultProps);\n _this2.setState({ theme: theme });\n });\n }\n };\n\n WithTheme.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var defaultProps = this.constructor.defaultProps;\n\n this.setState(function (oldState) {\n var theme = determineTheme(nextProps, oldState.theme, defaultProps);\n\n return { theme: theme };\n });\n };\n\n WithTheme.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.unsubscribeId !== -1) {\n this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeId);\n }\n };\n\n WithTheme.prototype.render = function render() {\n // eslint-disable-next-line react/prop-types\n var innerRef = this.props.innerRef;\n var theme = this.state.theme;\n\n\n return React.createElement(Component$$1, _extends({\n theme: theme\n }, this.props, {\n innerRef: shouldSetInnerRef ? innerRef : undefined,\n ref: shouldSetInnerRef ? undefined : innerRef\n }));\n };\n\n return WithTheme;\n }(React.Component);\n\n WithTheme.displayName = 'WithTheme(' + componentName + ')';\n WithTheme.styledComponentId = 'withTheme';\n WithTheme.contextTypes = (_WithTheme$contextTyp = {}, _WithTheme$contextTyp[CHANNEL] = PropTypes.func, _WithTheme$contextTyp[CHANNEL_NEXT] = CONTEXT_CHANNEL_SHAPE, _WithTheme$contextTyp);\n\n\n return hoistStatics(WithTheme, Component$$1);\n};\n\n// \n\n/* Import singletons */\n/* Import singleton constructors */\n/* Import components */\n/* Import Higher Order Components */\n/* Instantiate singletons */\nvar ComponentStyle = _ComponentStyle(generateAlphabeticName, flatten, stringifyRules);\nvar constructWithOptions = _constructWithOptions(css);\nvar StyledComponent = _StyledComponent(ComponentStyle, constructWithOptions);\n\n/* Instantiate exported singletons */\nvar keyframes = _keyframes(generateAlphabeticName, stringifyRules, css);\nvar injectGlobal = _injectGlobal(stringifyRules, css);\nvar styled = _styled(StyledComponent, constructWithOptions);\n\nexport { css, keyframes, injectGlobal, ThemeProvider, wrapWithTheme as withTheme, ServerStyleSheet, StyleSheetManager };export default styled;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/styled-components/dist/styled-components.es.js\n// module id = 1030\n// module chunks = 0","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/styled-components/~/hoist-non-react-statics/index.js\n// module id = 1031\n// module chunks = 0","/*\n * __ ___\n * _____/ /___ __/ (_)____\n * / ___/ __/ / / / / / ___/\n * (__ ) /_/ /_/ / / (__ )\n * /____/\\__/\\__, /_/_/____/\n * /____/\n *\n * light - weight css preprocessor @licence MIT\n */\n(function (factory) {/* eslint-disable */\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory(null)) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory(null)) :\n\t\t\t(window['stylis'] = factory(null))\n}(/** @param {*=} options */function factory (options) {/* eslint-disable */\n\n\t'use strict'\n\n\t/**\n\t * Notes\n\t *\n\t * The ['<method name>'] pattern is used to support closure compiler\n\t * the jsdoc signatures are also used to the same effect\n\t *\n\t * ----\n\t *\n\t * int + int + int === n4 [faster]\n\t *\n\t * vs\n\t *\n\t * int === n1 && int === n2 && int === n3\n\t *\n\t * ----\n\t *\n\t * switch (int) { case ints...} [faster]\n\t *\n\t * vs\n\t *\n\t * if (int == 1 && int === 2 ...)\n\t *\n\t * ----\n\t *\n\t * The (first*n1 + second*n2 + third*n3) format used in the property parser\n\t * is a simple way to hash the sequence of characters\n\t * taking into account the index they occur in\n\t * since any number of 3 character sequences could produce duplicates.\n\t *\n\t * On the other hand sequences that are directly tied to the index of the character\n\t * resolve a far more accurate measure, it's also faster\n\t * to evaluate one condition in a switch statement\n\t * than three in an if statement regardless of the added math.\n\t *\n\t * This allows the vendor prefixer to be both small and fast.\n\t */\n\n\tvar nullptn = /^\\0+/g /* matches leading null characters */\n\tvar formatptn = /[\\0\\r\\f]/g /* matches new line, null and formfeed characters */\n\tvar colonptn = /: */g /* splits animation rules */\n\tvar cursorptn = /zoo|gra/ /* assert cursor varient */\n\tvar transformptn = /([,: ])(transform)/g /* vendor prefix transform, older webkit */\n\tvar animationptn = /,+\\s*(?![^(]*[)])/g /* splits multiple shorthand notation animations */\n\tvar propertiesptn = / +\\s*(?![^(]*[)])/g /* animation properties */\n\tvar elementptn = / *[\\0] */g /* selector elements */\n\tvar selectorptn = /,\\r+?/g /* splits selectors */\n\tvar andptn = /([\\t\\r\\n ])*\\f?&/g /* match & */\n\tvar escapeptn = /:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g /* matches :global(.*) */\n\tvar invalidptn = /\\W+/g /* removes invalid characters from keyframes */\n\tvar keyframeptn = /@(k\\w+)\\s*(\\S*)\\s*/ /* matches @keyframes $1 */\n\tvar plcholdrptn = /::(place)/g /* match ::placeholder varient */\n\tvar readonlyptn = /:(read-only)/g /* match :read-only varient */\n\tvar beforeptn = /\\s+(?=[{\\];=:>])/g /* matches \\s before ] ; = : */\n\tvar afterptn = /([[}=:>])\\s+/g /* matches \\s after characters [ } = : */\n\tvar tailptn = /(\\{[^{]+?);(?=\\})/g /* matches tail semi-colons ;} */\n\tvar whiteptn = /\\s{2,}/g /* matches repeating whitespace */\n\tvar pseudoptn = /([^\\(])(:+) */g /* pseudo element */\n\tvar writingptn = /[svh]\\w+-[tblr]{2}/ /* match writing mode property values */\n\tvar gradientptn = /([\\w-]+t\\()/g /* match *gradient property */\n\tvar supportsptn = /\\(\\s*(.*)\\s*\\)/g /* match supports (groups) */\n\tvar propertyptn = /([\\s\\S]*?);/g /* match properties leading semicolon */\n\tvar selfptn = /-self|flex-/g /* match flex- and -self in align-self: flex-*; */\n\tvar pseudofmt = /[^]*?(:[rp][el]a[\\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */\n\tvar trimptn = /[ \\t]+$/ /* match tail whitspace */\n\tvar dimensionptn = /stretch|:\\s*\\w+\\-(?:conte|avail)/ /* match max/min/fit-content, fill-available */\n\tvar imgsrcptn = /([^-])(image-set\\()/\n\n\t/* vendors */\n\tvar webkit = '-webkit-'\n\tvar moz = '-moz-'\n\tvar ms = '-ms-'\n\n\t/* character codes */\n\tvar SEMICOLON = 59 /* ; */\n\tvar CLOSEBRACES = 125 /* } */\n\tvar OPENBRACES = 123 /* { */\n\tvar OPENPARENTHESES = 40 /* ( */\n\tvar CLOSEPARENTHESES = 41 /* ) */\n\tvar OPENBRACKET = 91 /* [ */\n\tvar CLOSEBRACKET = 93 /* ] */\n\tvar NEWLINE = 10 /* \\n */\n\tvar CARRIAGE = 13 /* \\r */\n\tvar TAB = 9 /* \\t */\n\tvar AT = 64 /* @ */\n\tvar SPACE = 32 /* */\n\tvar AND = 38 /* & */\n\tvar DASH = 45 /* - */\n\tvar UNDERSCORE = 95 /* _ */\n\tvar STAR = 42 /* * */\n\tvar COMMA = 44 /* , */\n\tvar COLON = 58 /* : */\n\tvar SINGLEQUOTE = 39 /* ' */\n\tvar DOUBLEQUOTE = 34 /* \" */\n\tvar FOWARDSLASH = 47 /* / */\n\tvar GREATERTHAN = 62 /* > */\n\tvar PLUS = 43 /* + */\n\tvar TILDE = 126 /* ~ */\n\tvar NULL = 0 /* \\0 */\n\tvar FORMFEED = 12 /* \\f */\n\tvar VERTICALTAB = 11 /* \\v */\n\n\t/* special identifiers */\n\tvar KEYFRAME = 107 /* k */\n\tvar MEDIA = 109 /* m */\n\tvar SUPPORTS = 115 /* s */\n\tvar PLACEHOLDER = 112 /* p */\n\tvar READONLY = 111 /* o */\n\tvar IMPORT = 105 /* <at>i */\n\tvar CHARSET = 99 /* <at>c */\n\tvar DOCUMENT = 100 /* <at>d */\n\tvar PAGE = 112 /* <at>p */\n\n\tvar column = 1 /* current column */\n\tvar line = 1 /* current line numebr */\n\tvar pattern = 0 /* :pattern */\n\n\tvar cascade = 1 /* #id h1 h2 vs h1#id h2#id */\n\tvar prefix = 1 /* vendor prefix */\n\tvar escape = 1 /* escape :global() pattern */\n\tvar compress = 0 /* compress output */\n\tvar semicolon = 0 /* no/semicolon option */\n\tvar preserve = 0 /* preserve empty selectors */\n\n\t/* empty reference */\n\tvar array = []\n\n\t/* plugins */\n\tvar plugins = []\n\tvar plugged = 0\n\tvar should = null\n\n\t/* plugin context */\n\tvar POSTS = -2\n\tvar PREPS = -1\n\tvar UNKWN = 0\n\tvar PROPS = 1\n\tvar BLCKS = 2\n\tvar ATRUL = 3\n\n\t/* plugin newline context */\n\tvar unkwn = 0\n\n\t/* keyframe animation */\n\tvar keyed = 1\n\tvar key = ''\n\n\t/* selector namespace */\n\tvar nscopealt = ''\n\tvar nscope = ''\n\n\t/**\n\t * Compile\n\t *\n\t * @param {Array<string>} parent\n\t * @param {Array<string>} current\n\t * @param {string} body\n\t * @param {number} id\n\t * @param {number} depth\n\t * @return {string}\n\t */\n\tfunction compile (parent, current, body, id, depth) {\n\t\tvar bracket = 0 /* brackets [] */\n\t\tvar comment = 0 /* comments /* // or /* */\n\t\tvar parentheses = 0 /* functions () */\n\t\tvar quote = 0 /* quotes '', \"\" */\n\n\t\tvar first = 0 /* first character code */\n\t\tvar second = 0 /* second character code */\n\t\tvar code = 0 /* current character code */\n\t\tvar tail = 0 /* previous character code */\n\t\tvar trail = 0 /* character before previous code */\n\t\tvar peak = 0 /* previous non-whitespace code */\n\n\t\tvar counter = 0 /* count sequence termination */\n\t\tvar context = 0 /* track current context */\n\t\tvar atrule = 0 /* track @at-rule context */\n\t\tvar pseudo = 0 /* track pseudo token index */\n\t\tvar caret = 0 /* current character index */\n\t\tvar format = 0 /* control character formating context */\n\t\tvar insert = 0 /* auto semicolon insertion */\n\t\tvar invert = 0 /* inverted selector pattern */\n\t\tvar length = 0 /* generic length address */\n\t\tvar eof = body.length /* end of file(length) */\n\t\tvar eol = eof - 1 /* end of file(characters) */\n\n\t\tvar char = '' /* current character */\n\t\tvar chars = '' /* current buffer of characters */\n\t\tvar child = '' /* next buffer of characters */\n\t\tvar out = '' /* compiled body */\n\t\tvar children = '' /* compiled children */\n\t\tvar flat = '' /* compiled leafs */\n\t\tvar selector /* generic selector address */\n\t\tvar result /* generic address */\n\n\t\t// ...build body\n\t\twhile (caret < eof) {\n\t\t\tcode = body.charCodeAt(caret)\n\n\t\t\t// eof varient\n\t\t\tif (caret === eol) {\n\t\t\t\t// last character + noop context, add synthetic padding for noop context to terminate\n\t\t\t\tif (comment + quote + parentheses + bracket !== 0) {\n\t\t\t\t\tif (comment !== 0) {\n\t\t\t\t\t\tcode = comment === FOWARDSLASH ? NEWLINE : FOWARDSLASH\n\t\t\t\t\t}\n\n\t\t\t\t\tquote = parentheses = bracket = 0\n\t\t\t\t\teof++\n\t\t\t\t\teol++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t// eof varient\n\t\t\t\tif (caret === eol) {\n\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t}\n\n\t\t\t\t\tif (chars.trim().length > 0) {\n\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchars += body.charAt(caret)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcode = SEMICOLON\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// auto semicolon insertion\n\t\t\t\tif (insert === 1) {\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t// false flags\n\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\tcase OPENPARENTHESES:\n\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ignore\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// valid\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\tfirst = code\n\t\t\t\t\t\t\tcaret--\n\t\t\t\t\t\t\tcode = SEMICOLON\n\n\t\t\t\t\t\t\twhile (length < eof) {\n\t\t\t\t\t\t\t\tswitch (body.charCodeAt(length++)) {\n\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\t\tcode = first\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\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\t\tlength = eof\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\n\t\t\t\t// token varient\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\tchars = chars.trim()\n\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\tcounter = 1\n\t\t\t\t\t\tlength = ++caret\n\n\t\t\t\t\t\twhile (caret < eof) {\n\t\t\t\t\t\t\tswitch (code = body.charCodeAt(caret)) {\n\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\tcounter++\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\t\tcounter--\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\tswitch (second = body.charCodeAt(caret + 1)) {\n\t\t\t\t\t\t\t\t\t\t// /*, //\n\t\t\t\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\t\t\tcaret = delimited(second, caret, eol, body)\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\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"[\" === 91 & \"]\" === 93 hence forth 91 + 1 + 1 === 93\n\t\t\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"(\" === 40 & \")\" === 41 hence forth 40 + 1 === 41\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// quote tail delimiter is identical to the head delimiter hence noop,\n\t\t\t\t\t\t\t\t// fallthrough clauses have been shifted to the correct tail delimiter\n\t\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\t\t\twhile (caret++ < eol) {\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(caret) === code) {\n\t\t\t\t\t\t\t\t\t\t\tbreak\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\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcaret++\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchild = body.substring(length, caret)\n\n\t\t\t\t\t\tif (first === NULL) {\n\t\t\t\t\t\t\tfirst = (chars = chars.replace(nullptn, '').trim()).charCodeAt(0)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t// @at-rule\n\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\tcase SUPPORTS:\n\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\tselector = current\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tselector = array\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tchild = compile(current, selector, child, second, depth+1)\n\t\t\t\t\t\t\t\tlength = child.length\n\n\t\t\t\t\t\t\t\t// preserve empty @at-rule\n\t\t\t\t\t\t\t\tif (preserve > 0 && length === 0) {\n\t\t\t\t\t\t\t\t\tlength = chars.length\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// execute plugins, @at-rule context\n\t\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\t\tselector = select(array, chars, invert)\n\t\t\t\t\t\t\t\t\tresult = proxy(ATRUL, child, selector, current, line, column, length, second, depth, id)\n\t\t\t\t\t\t\t\t\tchars = selector.join('')\n\n\t\t\t\t\t\t\t\t\tif (result !== void 0) {\n\t\t\t\t\t\t\t\t\t\tif ((length = (child = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\t\tsecond = 0\n\t\t\t\t\t\t\t\t\t\t\tchild = ''\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\n\t\t\t\t\t\t\t\tif (length > 0) {\n\t\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\t\tcase SUPPORTS: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(supportsptn, supports)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase KEYFRAME: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(keyframeptn, '$1 $2' + (keyed > 0 ? key : ''))\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\n\t\t\t\t\t\t\t\t\t\t\tif (prefix === 1 || (prefix === 2 && vendor('@'+child, 3))) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + webkit + child + '@' + child\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + child\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + child\n\n\t\t\t\t\t\t\t\t\t\t\tif (id === PAGE) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = (out += child, '')\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}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// selector\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchild = compile(current, select(current, chars, invert), child, id, depth+1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchildren += child\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tatrule = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\tchars = (format > 0 ? chars.replace(formatptn, '') : chars).trim()\n\n\t\t\t\t\t\tif ((length = chars.length) > 1) {\n\t\t\t\t\t\t\t// monkey-patch missing colon\n\t\t\t\t\t\t\tif (pseudo === 0) {\n\t\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\n\t\t\t\t\t\t\t\t// first character is a letter or dash, buffer has a space character\n\t\t\t\t\t\t\t\tif ((first === DASH || first > 96 && first < 123)) {\n\t\t\t\t\t\t\t\t\tlength = (chars = chars.replace(' ', ':')).length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// execute plugins, property context\n\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\tif ((result = proxy(PROPS, chars, current, parent, line, column, out.length, id, depth, id)) !== void 0) {\n\t\t\t\t\t\t\t\t\tif ((length = (chars = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\tchars = '\\0\\0'\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\n\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\t\tif (second === IMPORT || second === CHARSET) {\n\t\t\t\t\t\t\t\t\t\tflat += chars + body.charAt(caret)\n\t\t\t\t\t\t\t\t\t\tbreak\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\tdefault: {\n\t\t\t\t\t\t\t\t\tif (chars.charCodeAt(length-1) === COLON) {\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tout += property(chars, first, second, chars.charCodeAt(2))\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// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// parse characters\n\t\t\tswitch (code) {\n\t\t\t\tcase CARRIAGE:\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t// auto insert semicolon\n\t\t\t\t\tif (comment + quote + parentheses + bracket + semicolon === 0) {\n\t\t\t\t\t\t// valid non-whitespace characters that\n\t\t\t\t\t\t// may precede a newline\n\t\t\t\t\t\tswitch (peak) {\n\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\tcase AT:\n\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\tcase FOWARDSLASH:\n\t\t\t\t\t\t\tcase DASH:\n\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t// current buffer has a colon\n\t\t\t\t\t\t\t\tif (pseudo > 0) {\n\t\t\t\t\t\t\t\t\tinsert = 1\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\n\t\t\t\t\t// terminate line comment\n\t\t\t\t\tif (comment === FOWARDSLASH) {\n\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t} else if (cascade + context === 0 && id !== KEYFRAME && chars.length > 0) {\n\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\tchars += '\\0'\n\t\t\t\t\t}\n\n\t\t\t\t\t// execute plugins, newline context\n\t\t\t\t\tif (plugged * unkwn > 0) {\n\t\t\t\t\t\tproxy(UNKWN, chars, current, parent, line, column, out.length, id, depth, id)\n\t\t\t\t\t}\n\n\t\t\t\t\t// next line, reset column position\n\t\t\t\t\tcolumn = 1\n\t\t\t\t\tline++\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase SEMICOLON:\n\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t\t\tcolumn++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// increment column position\n\t\t\t\t\tcolumn++\n\n\t\t\t\t\t// current character\n\t\t\t\t\tchar = body.charAt(caret)\n\n\t\t\t\t\t// remove comments, escape functions, strings, attributes and prepare selectors\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tif (quote + bracket + comment === 0) {\n\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tif (code !== SPACE) {\n\t\t\t\t\t\t\t\t\t\t\tchar = ' '\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\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// escape breaking control characters\n\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\tchar = '\\\\0'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase FORMFEED: {\n\t\t\t\t\t\t\tchar = '\\\\f'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase VERTICALTAB: {\n\t\t\t\t\t\t\tchar = '\\\\v'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// &\n\t\t\t\t\t\tcase AND: {\n\t\t\t\t\t\t\t// inverted selector pattern i.e html &\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0 && cascade > 0) {\n\t\t\t\t\t\t\t\tinvert = 1\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar = '\\f' + char\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ::p<l>aceholder, l\n\t\t\t\t\t\t// :read-on<l>y, l\n\t\t\t\t\t\tcase 108: {\n\t\t\t\t\t\t\tif (quote + comment + bracket + pattern === 0 && pseudo > 0) {\n\t\t\t\t\t\t\t\tswitch (caret - pseudo) {\n\t\t\t\t\t\t\t\t\t// ::placeholder\n\t\t\t\t\t\t\t\t\tcase 2: {\n\t\t\t\t\t\t\t\t\t\tif (tail === PLACEHOLDER && body.charCodeAt(caret-3) === COLON) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = tail\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\t// :read-only\n\t\t\t\t\t\t\t\t\tcase 8: {\n\t\t\t\t\t\t\t\t\t\tif (trail === READONLY) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = trail\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\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// :<pattern>\n\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tpseudo = caret\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// selectors\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket === 0) {\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar += '\\r'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// quotes\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t\t\tquote = quote === code ? 0 : (quote === 0 ? code : quote)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// attributes\n\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase CLOSEBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// functions\n\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tparentheses--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\tswitch (tail*2 + trail*3) {\n\t\t\t\t\t\t\t\t\t\t// :matches\n\t\t\t\t\t\t\t\t\t\tcase 533: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// :global, :not, :nth-child etc...\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tcounter = 0\n\t\t\t\t\t\t\t\t\t\t\tcontext = 1\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\n\t\t\t\t\t\t\t\tparentheses++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket + pseudo + atrule === 0) {\n\t\t\t\t\t\t\t\tatrule = 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// block/line comments\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\tif (quote + bracket + parentheses > 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (comment) {\n\t\t\t\t\t\t\t\t// initialize line/block comment context\n\t\t\t\t\t\t\t\tcase 0: {\n\t\t\t\t\t\t\t\t\tswitch (code*2 + body.charCodeAt(caret+1)*3) {\n\t\t\t\t\t\t\t\t\t\t// //\n\t\t\t\t\t\t\t\t\t\tcase 235: {\n\t\t\t\t\t\t\t\t\t\t\tcomment = FOWARDSLASH\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\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\tcase 220: {\n\t\t\t\t\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\t\t\t\t\tcomment = STAR\n\t\t\t\t\t\t\t\t\t\t\tbreak\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\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// end block comment context\n\t\t\t\t\t\t\t\tcase STAR: {\n\t\t\t\t\t\t\t\t\tif (code === FOWARDSLASH && tail === STAR && length + 2 !== caret) {\n\t\t\t\t\t\t\t\t\t\t// /*<!> ... */, !\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(length+2) === 33) {\n\t\t\t\t\t\t\t\t\t\t\tout += body.substring(length, caret+1)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tcomment = 0\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\n\t\t\t\t\t// ignore comment blocks\n\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t// aggressive isolation mode, divide each individual selector\n\t\t\t\t\t\t// including selectors in :not function but excluding selectors in :global function\n\t\t\t\t\t\tif (cascade + quote + bracket + atrule === 0 && id !== KEYFRAME && code !== SEMICOLON) {\n\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t// outside of an isolated context i.e nth-child(<...>)\n\t\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = char + '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = '\\0' + char + (code === COMMA ? '' : '\\0')\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\tformat = 1\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// within an isolated context, sleep untill it's terminated\n\t\t\t\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\t// :globa<l>(\n\t\t\t\t\t\t\t\t\t\t\t\tif (pseudo + 7 === caret && tail === 108) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcontext = ++counter\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\tif ((context = --counter) === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\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}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\tcase NULL:\n\t\t\t\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\t\tcase FORMFEED:\n\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t// ignore in isolated contexts\n\t\t\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\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}\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// concat buffer of characters\n\t\t\t\t\t\tchars += char\n\n\t\t\t\t\t\t// previous non-whitespace character code\n\t\t\t\t\t\tif (code !== SPACE && code !== TAB) {\n\t\t\t\t\t\t\tpeak = code\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// tail character codes\n\t\t\ttrail = tail\n\t\t\ttail = code\n\n\t\t\t// visit every character\n\t\t\tcaret++\n\t\t}\n\n\t\tlength = out.length\n\n\t\t// preserve empty selector\n \t\tif (preserve > 0) {\n \t\t\tif (length === 0 && children.length === 0 && (current[0].length === 0) === false) {\n \t\t\t\tif (id !== MEDIA || (current.length === 1 && (cascade > 0 ? nscopealt : nscope) === current[0])) {\n\t\t\t\t\tlength = current.join(',').length + 2\n \t\t\t\t}\n \t\t\t}\n\t\t}\n\n\t\tif (length > 0) {\n\t\t\t// cascade isolation mode?\n\t\t\tselector = cascade === 0 && id !== KEYFRAME ? isolate(current) : current\n\n\t\t\t// execute plugins, block context\n\t\t\tif (plugged > 0) {\n\t\t\t\tresult = proxy(BLCKS, out, selector, parent, line, column, length, id, depth, id)\n\n\t\t\t\tif (result !== void 0 && (out = result).length === 0) {\n\t\t\t\t\treturn flat + out + children\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tout = selector.join(',') + '{' + out + '}'\n\n\t\t\tif (prefix*pattern !== 0) {\n\t\t\t\tif (prefix === 2 && !vendor(out, 2))\n\t\t\t\t\tpattern = 0\n\n\t\t\t\tswitch (pattern) {\n\t\t\t\t\t// ::read-only\n\t\t\t\t\tcase READONLY: {\n\t\t\t\t\t\tout = out.replace(readonlyptn, ':'+moz+'$1')+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// ::placeholder\n\t\t\t\t\tcase PLACEHOLDER: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + webkit + 'input-$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + moz + '$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, ':' + ms + 'input-$1') + out\n\t\t\t\t\t\t)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpattern = 0\n\t\t\t}\n\t\t}\n\n\t\treturn flat + out + children\n\t}\n\n\t/**\n\t * Select\n\t *\n\t * @param {Array<string>} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @return {Array<string>}\n\t */\n\tfunction select (parent, current, invert) {\n\t\tvar selectors = current.trim().split(selectorptn)\n\t\tvar out = selectors\n\n\t\tvar length = selectors.length\n\t\tvar l = parent.length\n\n\t\tswitch (l) {\n\t\t\t// 0-1 parent selectors\n\t\t\tcase 0:\n\t\t\tcase 1: {\n\t\t\t\tfor (var i = 0, selector = l === 0 ? '' : parent[0] + ' '; i < length; ++i) {\n\t\t\t\t\tout[i] = scope(selector, out[i], invert, l).trim()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// >2 parent selectors, nested\n\t\t\tdefault: {\n\t\t\t\tfor (var i = 0, j = 0, out = []; i < length; ++i) {\n\t\t\t\t\tfor (var k = 0; k < l; ++k) {\n\t\t\t\t\t\tout[j++] = scope(parent[k] + ' ', selectors[i], invert, l).trim()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Scope\n\t *\n\t * @param {string} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @param {number} level\n\t * @return {string}\n\t */\n\tfunction scope (parent, current, invert, level) {\n\t\tvar selector = current\n\t\tvar code = selector.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (selector = selector.trim()).charCodeAt(0)\n\t\t}\n\n\t\tswitch (code) {\n\t\t\t// &\n\t\t\tcase AND: {\n\t\t\t\tswitch (cascade + level) {\n\t\t\t\t\tcase 0:\n\t\t\t\t\tcase 1: {\n\t\t\t\t\t\tif (parent.trim().length === 0) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// :\n\t\t\tcase COLON: {\n\t\t\t\tswitch (selector.charCodeAt(1)) {\n\t\t\t\t\t// g in :global\n\t\t\t\t\tcase 103: {\n\t\t\t\t\t\tif (escape > 0 && cascade > 0) {\n\t\t\t\t\t\t\treturn selector.replace(escapeptn, '$1').replace(andptn, '$1'+nscope)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\t// :hover\n\t\t\t\t\t\treturn parent.trim() + selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\t// html &\n\t\t\t\tif (invert*cascade > 0 && selector.indexOf('\\f') > 0) {\n\t\t\t\t\treturn selector.replace(andptn, (parent.charCodeAt(0) === COLON ? '' : '$1')+parent.trim())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn parent + selector\n\t}\n\n\t/**\n\t * Property\n\t *\n\t * @param {string} input\n\t * @param {number} first\n\t * @param {number} second\n\t * @param {number} third\n\t * @return {string}\n\t */\n\tfunction property (input, first, second, third) {\n\t\tvar index = 0\n\t\tvar out = input + ';'\n\t\tvar hash = (first*2) + (second*3) + (third*4)\n\t\tvar cache\n\n\t\t// animation: a, n, i characters\n\t\tif (hash === 944) {\n\t\t\treturn animation(out)\n\t\t} else if (prefix === 0 || (prefix === 2 && !vendor(out, 1))) {\n\t\t\treturn out\n\t\t}\n\n\t\t// vendor prefix\n\t\tswitch (hash) {\n\t\t\t// text-decoration/text-size-adjust/text-shadow/text-align/text-transform: t, e, x\n\t\t\tcase 1015: {\n\t\t\t\t// text-shadow/text-align/text-transform, a\n\t\t\t\treturn out.charCodeAt(10) === 97 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// filter/fill f, i, l\n\t\t\tcase 951: {\n\t\t\t\t// filter, t\n\t\t\t\treturn out.charCodeAt(3) === 116 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// color/column, c, o, l\n\t\t\tcase 963: {\n\t\t\t\t// column, n\n\t\t\t\treturn out.charCodeAt(5) === 110 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// box-decoration-break, b, o, x\n\t\t\tcase 1009: {\n\t\t\t\tif (out.charCodeAt(4) !== 100) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// mask, m, a, s\n\t\t\t// clip-path, c, l, i\n\t\t\tcase 969:\n\t\t\tcase 942: {\n\t\t\t\treturn webkit + out + out\n\t\t\t}\n\t\t\t// appearance: a, p, p\n\t\t\tcase 978: {\n\t\t\t\treturn webkit + out + moz + out + out\n\t\t\t}\n\t\t\t// hyphens: h, y, p\n\t\t\t// user-select: u, s, e\n\t\t\tcase 1019:\n\t\t\tcase 983: {\n\t\t\t\treturn webkit + out + moz + out + ms + out + out\n\t\t\t}\n\t\t\t// background/backface-visibility, b, a, c\n\t\t\tcase 883: {\n\t\t\t\t// backface-visibility, -\n\t\t\t\tif (out.charCodeAt(8) === DASH) {\n\t\t\t\t\treturn webkit + out + out\n\t\t\t\t}\n\n\t\t\t\t// image-set(...)\n\t\t\t\tif (out.indexOf('image-set(', 11) > 0) {\n\t\t\t\t\treturn out.replace(imgsrcptn, '$1'+webkit+'$2') + out\n\t\t\t\t}\n\n\t\t\t\treturn out\n\t\t\t}\n\t\t\t// flex: f, l, e\n\t\t\tcase 932: {\n\t\t\t\tif (out.charCodeAt(4) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(5)) {\n\t\t\t\t\t\t// flex-grow, g\n\t\t\t\t\t\tcase 103: {\n\t\t\t\t\t\t\treturn webkit + 'box-' + out.replace('-grow', '') + webkit + out + ms + out.replace('grow', 'positive') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-shrink, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('shrink', 'negative') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-basis, b\n\t\t\t\t\t\tcase 98: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('basis', 'preferred-size') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + out + out\n\t\t\t}\n\t\t\t// order: o, r, d\n\t\t\tcase 964: {\n\t\t\t\treturn webkit + out + ms + 'flex' + '-' + out + out\n\t\t\t}\n\t\t\t// justify-items/justify-content, j, u, s\n\t\t\tcase 1023: {\n\t\t\t\t// justify-content, c\n\t\t\t\tif (out.charCodeAt(8) !== 99) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tcache = out.substring(out.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify')\n\t\t\t\treturn webkit + 'box-pack' + cache + webkit + out + ms + 'flex-pack' + cache + out\n\t\t\t}\n\t\t\t// cursor, c, u, r\n\t\t\tcase 1005: {\n\t\t\t\treturn cursorptn.test(out) ? out.replace(colonptn, ':' + webkit) + out.replace(colonptn, ':' + moz) + out : out\n\t\t\t}\n\t\t\t// writing-mode, w, r, i\n\t\t\tcase 1000: {\n\t\t\t\tcache = out.substring(13).trim()\n\t\t\t\tindex = cache.indexOf('-') + 1\n\n\t\t\t\tswitch (cache.charCodeAt(0)+cache.charCodeAt(index)) {\n\t\t\t\t\t// vertical-lr\n\t\t\t\t\tcase 226: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// vertical-rl\n\t\t\t\t\tcase 232: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb-rl')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// horizontal-tb\n\t\t\t\t\tcase 220: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'lr')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn out\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + cache + out\n\t\t\t}\n\t\t\t// position: sticky\n\t\t\tcase 1017: {\n\t\t\t\tif (out.indexOf('sticky', 9) === -1) {\n\t\t\t\t\treturn out\n\t\t\t\t}\n\t\t\t}\n\t\t\t// display(flex/inline-flex/inline-box): d, i, s\n\t\t\tcase 975: {\n\t\t\t\tindex = (out = input).length - 10\n\t\t\t\tcache = (out.charCodeAt(index) === 33 ? out.substring(0, index) : out).substring(input.indexOf(':', 7) + 1).trim()\n\n\t\t\t\tswitch (hash = cache.charCodeAt(0) + (cache.charCodeAt(7)|0)) {\n\t\t\t\t\t// inline-\n\t\t\t\t\tcase 203: {\n\t\t\t\t\t\t// inline-box\n\t\t\t\t\t\tif (cache.charCodeAt(8) < 111) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// inline-box/sticky\n\t\t\t\t\tcase 115: {\n\t\t\t\t\t\tout = out.replace(cache, webkit+cache)+';'+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// inline-flex\n\t\t\t\t\t// flex\n\t\t\t\t\tcase 207:\n\t\t\t\t\tcase 102: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(cache, webkit+(hash > 102 ? 'inline-' : '')+'box')+';'+\n\t\t\t\t\t\t\tout.replace(cache, webkit+cache)+';'+\n\t\t\t\t\t\t\tout.replace(cache, ms+cache+'box')+';'+\n\t\t\t\t\t\t\tout\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn out + ';'\n\t\t\t}\n\t\t\t// align-items, align-center, align-self: a, l, i, -\n\t\t\tcase 938: {\n\t\t\t\tif (out.charCodeAt(5) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(6)) {\n\t\t\t\t\t\t// align-items, i\n\t\t\t\t\t\tcase 105: {\n\t\t\t\t\t\t\tcache = out.replace('-items', '')\n\t\t\t\t\t\t\treturn webkit + out + webkit + 'box-' + cache + ms + 'flex-' + cache + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-self, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-item-' + out.replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-content\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-line-pack' + out.replace('align-content', '').replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// min/max\n\t\t\tcase 973:\n\t\t\tcase 989: {\n\t\t\t\t// min-/max- height/width/block-size/inline-size\n\t\t\t\tif (out.charCodeAt(3) !== DASH || out.charCodeAt(4) === 122) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// height/width: min-content / width: max-content\n\t\t\tcase 931:\n\t\t\tcase 953: {\n\t\t\t\tif (dimensionptn.test(input) === true) {\n\t\t\t\t\t// stretch\n\t\t\t\t\tif ((cache = input.substring(input.indexOf(':') + 1)).charCodeAt(0) === 115)\n\t\t\t\t\t\treturn property(input.replace('stretch', 'fill-available'), first, second, third).replace(':fill-available', ':stretch')\n\t\t\t\t\telse\n\t\t\t\t\t\treturn out.replace(cache, webkit + cache) + out.replace(cache, moz + cache.replace('fill-', '')) + out\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// transform, transition: t, r, a\n\t\t\tcase 962: {\n\t\t\t\tout = webkit + out + (out.charCodeAt(5) === 102 ? ms + out : '') + out\n\n\t\t\t\t// transitions\n\t\t\t\tif (second + third === 211 && out.charCodeAt(13) === 105 && out.indexOf('transform', 10) > 0) {\n\t\t\t\t\treturn out.substring(0, out.indexOf(';', 27) + 1).replace(transformptn, '$1' + webkit + '$2') + out\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Vendor\n\t *\n\t * @param {string} content\n\t * @param {number} context\n\t * @return {boolean}\n\t */\n\tfunction vendor (content, context) {\n\t\tvar index = content.indexOf(context === 1 ? ':' : '{')\n\t\tvar key = content.substring(0, context !== 3 ? index : 10)\n\t\tvar value = content.substring(index + 1, content.length - 1)\n\n\t\treturn should(context !== 2 ? key : key.replace(pseudofmt, '$1'), value, context)\n\t}\n\n\t/**\n\t * Supports\n\t *\n\t * @param {string} match\n\t * @param {string} group\n\t * @return {string}\n\t */\n\tfunction supports (match, group) {\n\t\tvar out = property(group, group.charCodeAt(0), group.charCodeAt(1), group.charCodeAt(2))\n\n\t\treturn out !== group+';' ? out.replace(propertyptn, ' or ($1)').substring(4) : '('+group+')'\n\t}\n\n\t/**\n\t * Animation\n\t *\n\t * @param {string} input\n\t * @return {string}\n\t */\n\tfunction animation (input) {\n\t\tvar length = input.length\n\t\tvar index = input.indexOf(':', 9) + 1\n\t\tvar declare = input.substring(0, index).trim()\n\t\tvar out = input.substring(index, length-1).trim()\n\n\t\tswitch (input.charCodeAt(9)*keyed) {\n\t\t\tcase 0: {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// animation-*, -\n\t\t\tcase DASH: {\n\t\t\t\t// animation-name, n\n\t\t\t\tif (input.charCodeAt(10) !== 110) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// animation/animation-name\n\t\t\tdefault: {\n\t\t\t\t// split in case of multiple animations\n\t\t\t\tvar list = out.split((out = '', animationptn))\n\n\t\t\t\tfor (var i = 0, index = 0, length = list.length; i < length; index = 0, ++i) {\n\t\t\t\t\tvar value = list[i]\n\t\t\t\t\tvar items = value.split(propertiesptn)\n\n\t\t\t\t\twhile (value = items[index]) {\n\t\t\t\t\t\tvar peak = value.charCodeAt(0)\n\n\t\t\t\t\t\tif (keyed === 1 && (\n\t\t\t\t\t\t\t// letters\n\t\t\t\t\t\t\t(peak > AT && peak < 90) || (peak > 96 && peak < 123) || peak === UNDERSCORE ||\n\t\t\t\t\t\t\t// dash but not in sequence i.e --\n\t\t\t\t\t\t\t(peak === DASH && value.charCodeAt(1) !== DASH)\n\t\t\t\t\t\t)) {\n\t\t\t\t\t\t\t// not a number/function\n\t\t\t\t\t\t\tswitch (isNaN(parseFloat(value)) + (value.indexOf('(') !== -1)) {\n\t\t\t\t\t\t\t\tcase 1: {\n\t\t\t\t\t\t\t\t\tswitch (value) {\n\t\t\t\t\t\t\t\t\t\t// not a valid reserved keyword\n\t\t\t\t\t\t\t\t\t\tcase 'infinite': case 'alternate': case 'backwards': case 'running':\n\t\t\t\t\t\t\t\t\t\tcase 'normal': case 'forwards': case 'both': case 'none': case 'linear':\n\t\t\t\t\t\t\t\t\t\tcase 'ease': case 'ease-in': case 'ease-out': case 'ease-in-out':\n\t\t\t\t\t\t\t\t\t\tcase 'paused': case 'reverse': case 'alternate-reverse': case 'inherit':\n\t\t\t\t\t\t\t\t\t\tcase 'initial': case 'unset': case 'step-start': case 'step-end': {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tvalue += key\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\titems[index++] = value\n\t\t\t\t\t}\n\n\t\t\t\t\tout += (i === 0 ? '' : ',') + items.join(' ')\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tout = declare + out + ';'\n\n\t\tif (prefix === 1 || (prefix === 2 && vendor(out, 1)))\n\t\t\treturn webkit + out + out\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Isolate\n\t *\n\t * @param {Array<string>} current\n\t */\n\tfunction isolate (current) {\n\t\tfor (var i = 0, length = current.length, selector = Array(length), padding, element; i < length; ++i) {\n\t\t\t// split individual elements in a selector i.e h1 h2 === [h1, h2]\n\t\t\tvar elements = current[i].split(elementptn)\n\t\t\tvar out = ''\n\n\t\t\tfor (var j = 0, size = 0, tail = 0, code = 0, l = elements.length; j < l; ++j) {\n\t\t\t\t// empty element\n\t\t\t\tif ((size = (element = elements[j]).length) === 0 && l > 1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\ttail = out.charCodeAt(out.length-1)\n\t\t\t\tcode = element.charCodeAt(0)\n\t\t\t\tpadding = ''\n\n\t\t\t\tif (j !== 0) {\n\t\t\t\t\t// determine if we need padding\n\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tpadding = ' '\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase AND: {\n\t\t\t\t\t\telement = padding + nscopealt\n\t\t\t\t\t}\n\t\t\t\t\tcase TILDE:\n\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\tcase PLUS:\n\t\t\t\t\tcase SPACE:\n\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\tswitch (element.charCodeAt(1)*2 + element.charCodeAt(2)*3) {\n\t\t\t\t\t\t\t// :global\n\t\t\t\t\t\t\tcase 530: {\n\t\t\t\t\t\t\t\tif (escape > 0) {\n\t\t\t\t\t\t\t\t\telement = padding + element.substring(8, size - 1)\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// :hover, :nth-child(), ...\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tif (j < 1 || elements[j-1].length < 1) {\n\t\t\t\t\t\t\t\t\telement = padding + nscopealt + element\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\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\tpadding = ''\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tif (size > 1 && element.indexOf(':') > 0) {\n\t\t\t\t\t\t\telement = padding + element.replace(pseudoptn, '$1' + nscopealt + '$2')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tout += element\n\t\t\t}\n\n\t\t\tselector[i] = out.replace(formatptn, '').trim()\n\t\t}\n\n\t\treturn selector\n\t}\n\n\t/**\n\t * Proxy\n\t *\n\t * @param {number} context\n\t * @param {string} content\n\t * @param {Array<string>} selectors\n\t * @param {Array<string>} parents\n\t * @param {number} line\n\t * @param {number} column\n\t * @param {number} length\n\t * @param {number} id\n\t * @param {number} depth\n\t * @param {number} at\n\t * @return {(string|void|*)}\n\t */\n\tfunction proxy (context, content, selectors, parents, line, column, length, id, depth, at) {\n\t\tfor (var i = 0, out = content, next; i < plugged; ++i) {\n\t\t\tswitch (next = plugins[i].call(stylis, context, out, selectors, parents, line, column, length, id, depth, at)) {\n\t\t\t\tcase void 0:\n\t\t\t\tcase false:\n\t\t\t\tcase true:\n\t\t\t\tcase null: {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tout = next\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (out !== content) {\n\t\t return out\n\t\t}\n\t}\n\n\t/**\n\t * @param {number} code\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction delimited (code, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\t// /*\n\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\tif (code === STAR) {\n\t\t\t\t\t\tif (body.charCodeAt(i - 1) === STAR && index + 2 !== i) {\n\t\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// //\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\tif (code === FOWARDSLASH) {\n\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * @param {number} type\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {number} find\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction match (type, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\tcase type: {\n\t\t\t\t\treturn i\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * Minify\n\t *\n\t * @param {(string|*)} output\n\t * @return {string}\n\t */\n\tfunction minify (output) {\n\t\treturn output\n\t\t\t.replace(formatptn, '')\n\t\t\t.replace(beforeptn, '')\n\t\t\t.replace(afterptn, '$1')\n\t\t\t.replace(tailptn, '$1')\n\t\t\t.replace(whiteptn, ' ')\n\t}\n\n\t/**\n\t * Use\n\t *\n\t * @param {(Array<function(...?)>|function(...?)|number|void)?} plugin\n\t */\n\tfunction use (plugin) {\n\t\tswitch (plugin) {\n\t\t\tcase void 0:\n\t\t\tcase null: {\n\t\t\t\tplugged = plugins.length = 0\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tif (typeof plugin === 'function') {\n\t\t\t\t\tplugins[plugged++] = plugin\n\t\t\t\t}\telse if (typeof plugin === 'object') {\n\t\t\t\t\tfor (var i = 0, length = plugin.length; i < length; ++i) {\n\t\t\t\t\t\tuse(plugin[i])\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tunkwn = !!plugin|0\n\t\t\t\t}\n\t\t\t}\n \t\t}\n\n \t\treturn use\n\t}\n\n\t/**\n\t * Set\n\t *\n\t * @param {*} options\n\t */\n\tfunction set (options) {\n\t\tfor (var name in options) {\n\t\t\tvar value = options[name]\n\t\t\tswitch (name) {\n\t\t\t\tcase 'keyframe': keyed = value|0; break\n\t\t\t\tcase 'global': escape = value|0; break\n\t\t\t\tcase 'cascade': cascade = value|0; break\n\t\t\t\tcase 'compress': compress = value|0; break\n\t\t\t\tcase 'semicolon': semicolon = value|0; break\n\t\t\t\tcase 'preserve': preserve = value|0; break\n\t\t\t\tcase 'prefix':\n\t\t\t\t\tshould = null\n\n\t\t\t\t\tif (!value) {\n\t\t\t\t\t\tprefix = 0\n\t\t\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\t\t\tprefix = 1\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprefix = 2\n\t\t\t\t\t\tshould = value\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn set\n\t}\n\n\t/**\n\t * Stylis\n\t *\n\t * @param {string} selector\n\t * @param {string} input\n\t * @return {*}\n\t */\n\tfunction stylis (selector, input) {\n\t\tif (this !== void 0 && this.constructor === stylis) {\n\t\t\treturn factory(selector)\n\t\t}\n\n\t\t// setup\n\t\tvar ns = selector\n\t\tvar code = ns.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (ns = ns.trim()).charCodeAt(0)\n\t\t}\n\n\t\t// keyframe/animation namespace\n\t\tif (keyed > 0) {\n\t\t\tkey = ns.replace(invalidptn, code === OPENBRACKET ? '' : '-')\n\t\t}\n\n\t\t// reset, used to assert if a plugin is moneky-patching the return value\n\t\tcode = 1\n\n\t\t// cascade/isolate\n\t\tif (cascade === 1) {\n\t\t\tnscope = ns\n\t\t} else {\n\t\t\tnscopealt = ns\n\t\t}\n\n\t\tvar selectors = [nscope]\n\t\tvar result\n\n\t\t// execute plugins, pre-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(PREPS, input, selectors, selectors, line, column, 0, 0, 0, 0)\n\n\t\t\tif (result !== void 0 && typeof result === 'string') {\n\t\t\t\tinput = result\n\t\t\t}\n\t\t}\n\n\t\t// build\n\t\tvar output = compile(array, selectors, input, 0, 0)\n\n\t\t// execute plugins, post-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(POSTS, output, selectors, selectors, line, column, output.length, 0, 0, 0)\n\n\t\t\t// bypass minification\n\t\t\tif (result !== void 0 && typeof(output = result) !== 'string') {\n\t\t\t\tcode = 0\n\t\t\t}\n\t\t}\n\n\t\t// reset\n\t\tkey = ''\n\t\tnscope = ''\n\t\tnscopealt = ''\n\t\tpattern = 0\n\t\tline = 1\n\t\tcolumn = 1\n\n\t\treturn compress*code === 0 ? output : minify(output)\n\t}\n\n\tstylis['use'] = use\n\tstylis['set'] = set\n\n\tif (options !== void 0) {\n\t\tset(options)\n\t}\n\n\treturn stylis\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/stylis/stylis.js\n// module id = 1032\n// module chunks = 0","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/symbol-observable/es/index.js\n// module id = 1033\n// module chunks = 0","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/symbol-observable/es/ponyfill.js\n// module id = 1034\n// module chunks = 0","module.exports = function(el, options) {\n options = options || {};\n\n var elementDocument = el.ownerDocument || el;\n var basicTabbables = [];\n var orderedTabbables = [];\n\n // A node is \"available\" if\n // - it's computed style\n var isUnavailable = createIsUnavailable(elementDocument);\n\n var candidateSelectors = [\n 'input',\n 'select',\n 'a[href]',\n 'textarea',\n 'button',\n '[tabindex]',\n ];\n\n var candidates = el.querySelectorAll(candidateSelectors.join(','));\n\n if (options.includeContainer) {\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n if (\n candidateSelectors.some(function(candidateSelector) {\n return matches.call(el, candidateSelector);\n })\n ) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var candidate, candidateIndexAttr, candidateIndex;\n for (var i = 0, l = candidates.length; i < l; i++) {\n candidate = candidates[i];\n candidateIndexAttr = parseInt(candidate.getAttribute('tabindex'), 10)\n candidateIndex = isNaN(candidateIndexAttr) ? candidate.tabIndex : candidateIndexAttr;\n\n if (\n candidateIndex < 0\n || (candidate.tagName === 'INPUT' && candidate.type === 'hidden')\n || candidate.disabled\n || isUnavailable(candidate, elementDocument)\n ) {\n continue;\n }\n\n if (candidateIndex === 0) {\n basicTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n index: i,\n tabIndex: candidateIndex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(function(a, b) {\n return a.tabIndex === b.tabIndex ? a.index - b.index : a.tabIndex - b.tabIndex;\n })\n .map(function(a) {\n return a.node\n });\n\n Array.prototype.push.apply(tabbableNodes, basicTabbables);\n\n return tabbableNodes;\n}\n\nfunction createIsUnavailable(elementDocument) {\n // Node cache must be refreshed on every check, in case\n // the content of the element has changed\n var isOffCache = [];\n\n // \"off\" means `display: none;`, as opposed to \"hidden\",\n // which means `visibility: hidden;`. getComputedStyle\n // accurately reflects visiblity in context but not\n // \"off\" state, so we need to recursively check parents.\n\n function isOff(node, nodeComputedStyle) {\n if (node === elementDocument.documentElement) return false;\n\n // Find the cached node (Array.prototype.find not available in IE9)\n for (var i = 0, length = isOffCache.length; i < length; i++) {\n if (isOffCache[i][0] === node) return isOffCache[i][1];\n }\n\n nodeComputedStyle = nodeComputedStyle || elementDocument.defaultView.getComputedStyle(node);\n\n var result = false;\n\n if (nodeComputedStyle.display === 'none') {\n result = true;\n } else if (node.parentNode) {\n result = isOff(node.parentNode);\n }\n\n isOffCache.push([node, result]);\n\n return result;\n }\n\n return function isUnavailable(node) {\n if (node === elementDocument.documentElement) return false;\n\n var computedStyle = elementDocument.defaultView.getComputedStyle(node);\n\n if (isOff(node, computedStyle)) return true;\n\n return computedStyle.visibility === 'hidden';\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/tabbable/index.js\n// module id = 1035\n// module chunks = 0","\"use strict\";\n\nvar isPrototype = require(\"../prototype/is\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/type/function/is.js\n// module id = 1036\n// module chunks = 0","\"use strict\";\n\nvar isValue = require(\"../value/is\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/type/object/is.js\n// module id = 1037\n// module chunks = 0","\"use strict\";\n\nvar isFunction = require(\"../function/is\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/type/plain-function/is.js\n// module id = 1038\n// module chunks = 0","\"use strict\";\n\nvar isObject = require(\"../object/is\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) return false;\n\ttry {\n\t\tif (!value.constructor) return false;\n\t\treturn value.constructor.prototype === value;\n\t} catch (error) {\n\t\treturn false;\n\t}\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/type/prototype/is.js\n// module id = 1039\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_hasObjectTag.js\n// module id = 1040\n// module chunks = 0","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_isBufferLike.js\n// module id = 1041\n// module chunks = 0","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n return key in obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_keyInObj.js\n// module id = 1042\n// module chunks = 0","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_toBufferView.js\n// module id = 1043\n// module chunks = 0","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/_unescapeMap.js\n// module id = 1044\n// module chunks = 0","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/after.js\n// module id = 1045\n// module chunks = 0","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/bindAll.js\n// module id = 1046\n// module chunks = 0","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/chain.js\n// module id = 1047\n// module chunks = 0","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/chunk.js\n// module id = 1048\n// module chunks = 0","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n return filter(array, Boolean);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/compact.js\n// module id = 1049\n// module chunks = 0","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/compose.js\n// module id = 1050\n// module chunks = 0","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/countBy.js\n// module id = 1051\n// module chunks = 0","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/create.js\n// module id = 1052\n// module chunks = 0","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/debounce.js\n// module id = 1053\n// module chunks = 0","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/defer.js\n// module id = 1054\n// module chunks = 0","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/escape.js\n// module id = 1055\n// module chunks = 0","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/every.js\n// module id = 1056\n// module chunks = 0","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/findWhere.js\n// module id = 1057\n// module chunks = 0","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/first.js\n// module id = 1058\n// module chunks = 0","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n return _flatten(array, depth, false);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/flatten.js\n// module id = 1059\n// module chunks = 0","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/groupBy.js\n// module id = 1060\n// module chunks = 0","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!_has(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/has.js\n// module id = 1061\n// module chunks = 0","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/index-default.js\n// module id = 1062\n// module chunks = 0","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n result[key] = value;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/indexBy.js\n// module id = 1063\n// module chunks = 0","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/intersection.js\n// module id = 1064\n// module chunks = 0","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/invoke.js\n// module id = 1065\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isDate.js\n// module id = 1066\n// module chunks = 0","// Is a given value a DOM element?\nexport default function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isElement.js\n// module id = 1067\n// module chunks = 0","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isEmpty.js\n// module id = 1068\n// module chunks = 0","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n return eq(a, b);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isEqual.js\n// module id = 1069\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isError.js\n// module id = 1070\n// module chunks = 0","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isFinite.js\n// module id = 1071\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isMap.js\n// module id = 1072\n// module chunks = 0","// Is a given value equal to null?\nexport default function isNull(obj) {\n return obj === null;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isNull.js\n// module id = 1073\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isRegExp.js\n// module id = 1074\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isSet.js\n// module id = 1075\n// module chunks = 0","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isWeakMap.js\n// module id = 1076\n// module chunks = 0","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/isWeakSet.js\n// module id = 1077\n// module chunks = 0","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/last.js\n// module id = 1078\n// module chunks = 0","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/lastIndexOf.js\n// module id = 1079\n// module chunks = 0","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/mapObject.js\n// module id = 1080\n// module chunks = 0","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/memoize.js\n// module id = 1081\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/min.js\n// module id = 1082\n// module chunks = 0","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/mixin.js\n// module id = 1083\n// module chunks = 0","import getLength from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/object.js\n// module id = 1084\n// module chunks = 0","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/omit.js\n// module id = 1085\n// module chunks = 0","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/once.js\n// module id = 1086\n// module chunks = 0","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/pairs.js\n// module id = 1087\n// module chunks = 0","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/partition.js\n// module id = 1088\n// module chunks = 0","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/propertyOf.js\n// module id = 1089\n// module chunks = 0","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/range.js\n// module id = 1090\n// module chunks = 0","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/reduce.js\n// module id = 1091\n// module chunks = 0","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/reduceRight.js\n// module id = 1092\n// module chunks = 0","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/reject.js\n// module id = 1093\n// module chunks = 0","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/result.js\n// module id = 1094\n// module chunks = 0","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n return sample(obj, Infinity);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/shuffle.js\n// module id = 1095\n// module chunks = 0","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/size.js\n// module id = 1096\n// module chunks = 0","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/some.js\n// module id = 1097\n// module chunks = 0","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/sortBy.js\n// module id = 1098\n// module chunks = 0","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/tap.js\n// module id = 1099\n// module chunks = 0","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/template.js\n// module id = 1100\n// module chunks = 0","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/throttle.js\n// module id = 1101\n// module chunks = 0","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/times.js\n// module id = 1102\n// module chunks = 0","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/toArray.js\n// module id = 1103\n// module chunks = 0","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\nexport default _;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/underscore-array-methods.js\n// module id = 1104\n// module chunks = 0","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/unescape.js\n// module id = 1105\n// module chunks = 0","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n return uniq(flatten(arrays, true, true));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/union.js\n// module id = 1106\n// module chunks = 0","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/uniqueId.js\n// module id = 1107\n// module chunks = 0","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/where.js\n// module id = 1108\n// module chunks = 0","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/without.js\n// module id = 1109\n// module chunks = 0","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/wrap.js\n// module id = 1110\n// module chunks = 0","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/underscore/modules/zip.js\n// module id = 1111\n// module chunks = 0","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/uuid/lib/bytesToUuid.js\n// module id = 1112\n// module chunks = 0","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/uuid/lib/rng-browser.js\n// module id = 1113\n// module chunks = 0","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/uuid/v4.js\n// module id = 1114\n// module chunks = 0"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACvvBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACVA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAMA;;;;AATA;AACA;AAWA;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACxCA;AAUA;AAOA;AAMA;AAOA;AAMA;AACA;AAvCA;AACA;AADA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;;;;;;AC1CA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC/2BA;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACOA;AAaA;AAaA;AAOA;AAgCA;AAyEA;AAwEA;AA+DA;AAoBA;AAMA;AAOA;AAkBA;AAOA;AAMA;AA8BA;AAMA;AAOA;AACA;AAnZA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAMA;AACA;AACA;AAFA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AADA;AAMA;AA7BA;AA+BA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAHA;AASA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AADA;AAMA;AAvBA;AAyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AApCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAoCA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AAVA;AACA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AADA;AAMA;AAfA;AAiBA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;;;;;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC+BA;AA4CA;AAMA;AA8BA;AAOA;AAMA;AAMA;AA0BA;AAWA;AAmBA;AAgCA;AAOA;AAMA;AAMA;AAgBA;AAoBA;AAUA;AAMA;AAqBA;AAUA;AAMA;AAwCA;AAWA;AAuBA;AA6BA;AA6BA;AACA;AAndA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;;;;;ACrdA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AAAA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACoCA;AAkEA;AAiDA;AAMA;AAsEA;AAwDA;AAgCA;AA+BA;AA+BA;AA+BA;AA0CA;AAMA;AAMA;AAMA;AAMA;AAmCA;AA4CA;AAqCA;AACA;AAxlBA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAMA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAiBA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AASA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;;;;;ACroBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7PA;AAwBA;AAOA;AAMA;AAqDA;AAWA;AAMA;AAyBA;AAWA;AAMA;AAiBA;AAWA;AAMA;AAyCA;AAOA;AAOA;AAMA;AAuBA;AAOA;AAMA;AAwBA;AAOA;AAMA;AAuBA;AAOA;AAMA;AAmBA;AAYA;AAMA;AAOA;AA2DA;AAgCA;AA6BA;AACA;AAnjBA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAKA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;;;;;;AC7jBA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;;;;;;;;;;;;;;;ACAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;AAQA;AAAA;AACA;AADA;AACA;AADA;AAmCA;AACA;AACA;AACA;AAtCA;AAwCA;AACA;AACA;AA1CA;AA4CA;AACA;AACA;AACA;AACA;AACA;AACA;AAlDA;AAoDA;AACA;AACA;AApDA;AACA;AACA;AACA;AALA;AAMA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAuBA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAaA;;;;AA9EA;AACA;AADA;AAEA;AACA;AACA;AACA;AAJA;AAgFA;;;;;;ACtFA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AADA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAEA;AACA;AAGA;AACA;AAAA;AACA;;;;;;;AARA;AACA;AAQA;AACA;AACA;AAAA;;;;;;;;AACA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAxBA;AAAA;AAAA;AACA;AADA;AAyBA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AA/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAgCA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AAAA;AACA;AAAA;AAMA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AAGA;AADA;AAAA;AAAA;AACA;AADA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA;AAAA;AACA;AACA;AACA;AACA;AACA;AAFA;AADA;AAMA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AADA;AAMA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAFA;AADA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAQA;AACA;AACA;AACA;;;;;;;;;;AAOA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAQA;AACA;AACA;AACA;;;;;;;;;;AAOA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAQA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AACA;AAAA;AACA;AALA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAKA;AACA;AAjBA;AACA;AAEA;AAAA;AAeA;AAlBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAkBA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAFA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAQA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAEA;AACA;AAHA;AAAA;AAAA;AAAA;AACA;AAIA;AACA;AAEA;AACA;AACA;AAAA;AAVA;AAAA;AACA;AADA;AAYA;AAZA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AAFA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAcA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AAzBA;AAAA;AAAA;AACA;AADA;AA0BA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AApCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAoCA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AAFA;AADA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA;AAAA;AAAA;AACA;AADA;AAiBA;AAAA;AACA;AAAA;AACA;AAnBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAmBA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;;;;;;;;;;;AAQA;AACA;AACA;;;;;;AAGA;AACA;AACA;;;;;;ACl0CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3CA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3MA;AAqBA;AA4BA;AAOA;AAOA;AAwDA;AAMA;AAOA;AAOA;AAqCA;AA4CA;AAoCA;AAuBA;AAaA;AA8BA;AA8BA;AAkDA;AACA;AAjcA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AAZA;AAcA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;;;;;ACncA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChPA;AAiBA;AAOA;AAMA;AA2FA;AAgBA;AAMA;AA2CA;AAcA;AAMA;AAoCA;AAYA;AAMA;AAQA;AAiCA;AAeA;AAuBA;AAOA;AAsCA;AAMA;AACA;AAlaA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AAdA;AACA;AACA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AAKA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA;AADA;AAFA;AADA;AADA;AAcA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA;AADA;AAFA;AADA;AADA;AAcA;AACA;AAAA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AADA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAKA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAOA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AASA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAFA;AAMA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AADA;AAFA;AAMA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;;;;;;;;;;;ACtaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/EA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBA;AASA;AASA;AACA;AArBA;AACA;AADA;AACA;;;AACA;AACA;AACA;AACA;AACA;AADA;AAFA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAFA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAFA;AAMA;;;;;;;;;;;;;;;AC3BA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;AAOA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AADA;AAIA;;;;AAPA;AACA;AASA;;;;;;;;;;;;;;;ACrBA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;AAOA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AACA;AAFA;AAKA;;;;AARA;AACA;AAUA;;;;;;ACtBA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9GA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAGA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;;;;;AANA;AACA;AACA;AACA;AAIA;;;;;;;;;AASA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAHA;AAHA;AAQA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAaA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAhQA;AACA;AAkQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAVA;AAYA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AAeA;AACA;;;AAEA;AACA;AAEA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AANA;AAQA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AAEA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAIA;AAEA;AAAA;AAAA;AAAA;AAXA;AAeA;AAKA;AAEA;AACA;AACA;AAHA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AAAA;AAAA;AAAA;AAAA;AARA;AA7BA;AAyCA;AAAA;AAAA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AAAA;AAAA;AAPA;AAWA;AAEA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAUA;AAEA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AA7BA;AA7CA;AADA;AADA;AARA;AAiGA;;;;AAtfA;AACA;AAwfA;AACA;AADA;AACA;AAGA;;;;;;ACviBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtOA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjVA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACXA;AACA;;;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;;;;AAIA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AADA;AAJA;AAeA;;;;AA3BA;AACA;AA6BA;;;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAEA;AAFA;AAAA;AAKA;AACA;AAEA;AACA;AACA;AAVA;AAGA;AAHA;AAYA;AACA;AACA;AAHA;AACA;AAZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAAA;AAQA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AACA;AAAA;AACA;AAfA;AAOA;AACA;AARA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AACA;AAiBA;AACA;AACA;AApBA;AAAA;AACA;AADA;AAqBA;AArBA;AAAA;AACA;AADA;AAsBA;AACA;AAAA;AACA;AAxBA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAKA;AADA;AACA;AALA;AAAA;AAAA;AAUA;AACA;AAEA;AACA;AACA;AAfA;AAQA;AARA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;;AAmBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAGA;AACA;AAFA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;;AAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AARA;AACA;AAJA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAIA;AAJA;AAAA;AAOA;AACA;AAEA;AACA;AACA;AAZA;AAKA;AACA;AANA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAcA;AACA;AAfA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAAA;AAoBA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AACA;AAAA;AACA;AA3BA;AAmBA;AACA;AApBA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;AA9HA;AACA;AAEA;AACA;;AAHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAIA;AACA;AACA;AAFA;AAzBA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACXA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AAHA;AAIA;AACA;;;AACA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AASA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AADA;AADA;AAUA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AADA;AAVA;AAqBA;AAAA;AAAA;AAEA;AAEA;AAAA;AACA;AADA;AAAA;AAAA;AAMA;AAEA;AAEA;AAAA;AACA;AADA;AAAA;AAAA;AAMA;AACA;AACA;AACA;AAvBA;AA0BA;AAEA;AACA;AACA;AACA;AACA;AAFA;AAFA;AArDA;AA+DA;;;;AA5GA;AACA;AA8GA;AACA;AADA;AACA;AAGA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAOA;AACA;;;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAEA;AACA;AAFA;AATA;AAgBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AALA;AADA;AAjBA;AA4BA;;;;AAzCA;AACA;AA2CA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/FA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3BA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC/SA;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5FA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;;;AAiBA;AAAA;AACA;AADA;AACA;AACA;AACA;AADA;AAFA;AAKA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAFA;AAKA;AAEA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AAcA;AAGA;AACA;AAAA;AAAA;AAAA;AAKA;AAEA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAUA;AAEA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AA3EA;AAwFA;;;;AA9JA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AACA;AA+JA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnBA;AALA;AA0BA;AACA;;;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;;;AAEA;AACA;AACA;AACA;AACA;AAFA;AAIA;;;AAEA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AACA;AAAA;AAAA;AAEA;AACA;AAAA;AAAA;AACA;AADA;AAOA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAQA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAQA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAQA;AACA;AAlDA;AALA;AADA;AADA;AA+DA;;;;AA7IA;AACA;AA+IA;AACA;AACA;AADA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AACA;AAaA;;;;;;;;;;;;;;;ACxVA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;AADA;AAGA;AACA;AAAA;;;AAMA;AAAA;AACA;AADA;AACA;AACA;AACA;AADA;AAFA;AAKA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AALA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AAAA;AAAA;AAPA;AAJA;AAcA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAJA;AAfA;AADA;AADA;AAPA;AAyCA;;;;AAzHA;AACA;AADA;AAEA;AACA;AAFA;AA2HA;;;;;;;;;;;;;;;ACxIA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;;;;;;;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AAAA;AAAA;AAAA;AAAA;AACA;AAGA;AACA;AACA;AAAA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAKA;AAEA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AAAA;AAAA;AAlBA;AAuBA;;;;AApDA;AACA;AAsDA;AACA;AACA;AACA;AAHA;AACA;AAKA;;;;;;;;;;;;;;;;ACzEA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAgBA;AACA;AACA;;;AAqBA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAGA;AACA;;;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AAHA;AAKA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAnBA;AA+BA;;;;AArHA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjBA;AAuHA;AACA;AACA;;;;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAEA;AACA;AACA;AAJA;AAAA;AACA;AADA;AAKA;AALA;AAAA;AACA;AADA;AAMA;AANA;AAAA;AASA;AACA;AACA;AAXA;AAAA;AAAA;AAaA;AACA;AACA;AAfA;AAAA;AAAA;AAiBA;AACA;AACA;AAnBA;AAAA;AAAA;AAqBA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AA5BA;AAAA;AAAA;AACA;AADA;AA6BA;AACA;AA9BA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAgCA;AACA;AAjCA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAsCA;AACA;AACA;AAxCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;;AAmDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAEA;AACA;AAHA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;AARA;AAIA;AACA;AAtDA;AACA;AADA;AACA;AAAA;AACA;;;;;AACA;AACA;AACA;AA4CA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/BA;AAiCA;;;;;;;;;;;;;;;;;AClGA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AAQA;;;;;;;;AAOA;AACA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AAUA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/BA;AAbA;AA+CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAVA;AAYA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAYA;;;AAEA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;;;;;;AAGA;;;;;;;;;;;;;;;;;AC/gBA;;;;;;;;;AAEA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;ACzCA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;;;;;;;;;AACA;AACA;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAHA;AADA;AAOA;AACA;AACA;AACA;AAHA;AARA;AADA;AAiBA;;;;AApBA;AACA;AAsBA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;AAGA;;;;;;;;;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAHA;AAAA;AAJA;AAfA;AACA;AA2BA;AACA;AAAA;AACA;AACA;AAAA;AACA;AADA;AAGA;AAAA;AACA;AADA;AALA;AAWA;;;;AA1DA;AACA;AA4DA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;;;;;;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrJA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACxHA;;;;;;ACAA;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvXA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5IA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAGA;AAEA;AAEA;AACA;AAEA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxvBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACmCA;AA2BA;AAgBA;AAOA;AACA;AAvFA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;;;;;;;;;;;;;;;ACnGA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AADA;AAIA;;;;AAPA;AACA;AASA;;;;;;;;;;;;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AAVA;AAaA;;;;AAnDA;AACA;AAqDA;;;;;;;;;;;;;;;AC3EA;AACA;;;AAAA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAJA;AAOA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAHA;AAMA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAHA;AAMA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAGA;AAHA;AAAA;AAMA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AANA;AASA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAJA;AAOA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AALA;AAQA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AALA;AAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAPA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AANA;AASA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAtOA;AAyOA;;;;AA5OA;AACA;AA8OA;;;;;;;;;;;;;;;AClPA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AACA;AACA;AAKA;AACA;AACA;AACA;;;AAEA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AALA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;;;AAYA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AANA;AASA;AACA;;;AACA;AACA;AACA;AAEA;AAEA;AAEA;;;AAEA;AACA;AACA;AAEA;AAEA;AAEA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AADA;AAGA;AAHA;AAMA;;;;AApGA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AAqGA;;;;;;;;;;;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAdA;AAgBA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AAGA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAOA;AACA;AAAA;AACA;AACA;AAFA;AAAA;AAtBA;AAtBA;AAsDA;;;;AApGA;AACA;AAsGA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AANA;AAQA;AATA;AAWA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AARA;AAFA;AAZA;AA2BA;;;;AAzCA;AACA;AA2CA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AAAA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAHA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAfA;AAqBA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AAMA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AACA;AAAA;AAAA;AACA;AADA;AACA;AADA;AACA;AADA;AANA;AAWA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AAJA;AADA;AAUA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAFA;AADA;AAXA;AA6BA;AAEA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AARA;AAWA;AAEA;AAAA;AACA;AADA;AAtBA;AA4BA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AARA;AAWA;AAEA;AAAA;AACA;AADA;AAfA;AA7BA;AAoDA;AAAA;AAAA;AAEA;AACA;AAAA;AACA;AACA;AAFA;AAIA;AAJA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AAVA;AAtFA;AAFA;AA8GA;;;;AArVA;AACA;AAuVA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;;;;;AC7oBA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AAHA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAHA;AAKA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AAAA;AAAA;AANA;AAQA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AADA;AANA;AAfA;AA2BA;;;;AAlDA;AACA;AAoDA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;;;;;;ACjEA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AACA;AACA;AAIA;AACA;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AADA;AAFA;AAKA;AACA;;;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAEA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AANA;AASA;AACA;AAAA;AACA;AADA;AAZA;AAmBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AAUA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAXA;AApBA;AAyCA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AA3CA;AALA;AA0DA;;;;AAjHA;AACA;AAmHA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AAQA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AADA;AAFA;AAKA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AACA;AAYA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAHA;AAAA;AAAA;AACA;AAQA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAFA;AAKA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AALA;AAQA;AACA;AAAA;AACA;AADA;AAVA;AAiBA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AAWA;AA9BA;AAiCA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAGA;AAAA;AAAA;AACA;AADA;AAJA;AASA;;;;AA1IA;AACA;AA4IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AACA;AAWA;;;;;;;;;;;;;;;ACrSA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AADA;AAFA;AAKA;AACA;;;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AAEA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAEA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AANA;AASA;AACA;AAAA;AACA;AADA;AAXA;AAkBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AAUA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAXA;AApBA;AAyCA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AA3CA;AALA;AA0DA;;;;AA3IA;AACA;AA6IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AACA;AASA;;;;;;;;;;;;;;;AClKA;AACA;;;AAAA;AACA;;;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AACA;;;;AAIA;;;;;;;;;;;AAUA;AACA;;;;;AAKA;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AADA;AASA;AACA;AACA;AACA;AACA;AAHA;AAKA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAHA;AAFA;AAhBA;AADA;AA4BA;;;;AAtDA;AACA;AAwDA;AACA;AACA;AACA;AA5DA;AAEA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AAyDA;;;;;;;;;;;;;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;;;;AAzBA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAmBA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AACA;AADA;AAPA;AAYA;;;;AA1CA;AACA;AA4CA;;;;;;;;;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AARA;AAcA;;;;AArBA;AACA;AAuBA;AACA;AADA;AACA;AAGA;;;;AAGA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAGA;AACA;;;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAFA;AAIA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAEA;AAEA;AAAA;AACA;AADA;AAAA;AAAA;AAXA;AAmBA;;;;AAzDA;AACA;AA2DA;AACA;AACA;AACA;AAHA;AACA;AAKA;;;;;;;;;;;;;;;ACvNA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AADA;AA4CA;AACA;AACA;AACA;AACA;AACA;AACA;AAhDA;AACA;AACA;AAFA;AAFA;AAMA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAUA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAPA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAKA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAJA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AANA;AAPA;AAiBA;AAEA;AAAA;AACA;AADA;AArBA;AA2BA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AA/BA;AAFA;AADA;AANA;AADA;AATA;AAgEA;;;;AAvKA;AACA;AAyKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AACA;AAWA;;;;;;;;;;;;;;;;;AClMA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;AAKA;AACA;;;AACA;AACA;;;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;AACA;AAAA;;;AAYA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAHA;AAYA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAVA;AAYA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAVA;AAYA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAVA;AAYA;AAEA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAGA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AAKA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AADA;AAAA;AAIA;AACA;AAAA;AAAA;AACA;AADA;AANA;AAYA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAGA;AACA;AAFA;AALA;AAFA;AAcA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AADA;AAfA;AAwBA;AACA;AACA;AACA;AACA;AACA;AALA;AA/CA;AAwDA;;;;AA/OA;AACA;AAiPA;;;;;;AAlPA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AAoPA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AAHA;AAIA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AAAA;AAAA;AALA;AADA;AASA;AAAA;AAAA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAhCA;AAVA;AA8CA;AACA;AAGA;AAAA;AACA;AAAA;AAAA;AAEA;AAFA;AADA;AAWA;AAGA;AAAA;AACA;AADA;AAjEA;AAwEA;;;;AAzFA;AACA;AA2FA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;AAGA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AADA;AAKA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AATA;AAcA;;;;AAjBA;AACA;AAmBA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;;;;;;ACvZA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AACA;AACA;AAKA;AACA;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;;;AAcA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AANA;AASA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AA/BA;AACA;AAiCA;AACA;;;AAEA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AADA;AAIA;;;;AArGA;AACA;AAuGA;;;;;;AAxGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AACA;AA0GA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAHA;AAeA;AACA;;;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjBA;AACA;AAmBA;AACA;AACA;;;AAEA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjBA;AACA;AAmBA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAFA;AAKA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AADA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AACA;AADA;AAIA;AACA;AACA;AACA;AAJA;AATA;AADA;AAmBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AACA;AADA;AAIA;AACA;AACA;AACA;AAJA;AATA;AADA;AA3BA;AA+CA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AAJA;AASA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAXA;AArDA;AA4EA;;;;AA7MA;AACA;AA+MA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AAEA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAHA;AADA;AADA;AADA;AADA;AANA;AA2BA;;;;AAlCA;AACA;AAoCA;AACA;AADA;AACA;AAGA;;;;;;;;;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AACA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AAHA;AAKA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AANA;AAQA;AARA;AAUA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AAXA;AAXA;AAiCA;;;;AAtIA;AACA;AAwIA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;;;ACjiBA;AACA;;;AAAA;AACA;;;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AADA;AADA;AACA;AASA;AACA;AADA;AACA;AAGA;;;;;;;;;;;;;;;ACjBA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AARA;AAWA;;;;AAfA;AACA;AAiBA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;;;;;;AC/BA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AACA;AACA;AAKA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;;;AAaA;AAAA;AACA;AADA;AACA;AADA;AAgCA;AACA;AADA;AAGA;AACA;AAlCA;AACA;AADA;AACA;AAGA;AANA;AAOA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AAFA;AAQA;AAEA;AACA;AACA;AACA;AACA;AACA;AANA;AASA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAUA;AAGA;AACA;AAFA;AAKA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AALA;AAQA;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAKA;AAEA;AAAA;AAEA;AAFA;AA9EA;AAsFA;;;;AA3JA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AACA;AA4JA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AADA;AAFA;AAKA;AACA;;;AACA;AACA;AAEA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AARA;AADA;AAYA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AAAA;AAAA;AAMA;AACA;AAAA;AAAA;AAAA;AAMA;AAEA;AAAA;AACA;AADA;AAjCA;AAsCA;AAAA;AAAA;AAAA;AAAA;AA1CA;AA+CA;;;;AAxGA;AACA;AA0GA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AAQA;;;;;;;;;;;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AACA;AARA;AADA;AAaA;AAEA;AAAA;AACA;AADA;AAhBA;AAJA;AA2BA;;;;AAlCA;AACA;AAoCA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AAQA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAHA;AAYA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAHA;AAKA;AACA;AAAA;AACA;AAAA;AAAA;AAGA;AAAA;AAAA;AAEA;AAFA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AATA;AAYA;AAEA;AAAA;AACA;AADA;AAfA;AAVA;AAgCA;AAAA;AAAA;AAIA;AAAA;AAAA;AAEA;AAFA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAZA;AAeA;AAEA;AAAA;AACA;AADA;AAlBA;AAuBA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAlBA;AAlCA;AAjCA;AA6FA;;;;AAnLA;AACA;AAqLA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AAFA;AAHA;AAOA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAUA;AAEA;AAAA;AACA;AADA;AAbA;AANA;AA0BA;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAUA;AAEA;AAAA;AACA;AADA;AAbA;AANA;AA3BA;AAuDA;;;;AA9FA;AACA;AAgGA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AAHA;AAFA;AAOA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AAEA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AARA;AADA;AAcA;AACA;AAAA;AAAA;AAAA;AAMA;AACA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAJA;AAWA;AAEA;AAAA;AACA;AADA;AApCA;AAJA;AA+CA;AACA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAXA;AAcA;AAEA;AAAA;AACA;AADA;AAjBA;AAPA;AAjDA;AAmFA;;;;AA/LA;AACA;AAiMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AACA;AASA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AAFA;AAHA;AAOA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AASA;AAEA;AAAA;AACA;AADA;AAZA;AADA;AAmBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AASA;AAEA;AAAA;AACA;AADA;AAIA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAhBA;AADA;AApBA;AA4CA;;;;AApEA;AACA;AAsEA;AACA;AACA;AAFA;AACA;AAIA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAFA;AAMA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AATA;AADA;AAYA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AARA;AAWA;AAEA;AAAA;AACA;AADA;AAnCA;AAPA;AAiDA;;;;AAzEA;AACA;AA2EA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;AACA;AAAA;AACA;AACA;AACA;AACA;AAJA;AACA;AAIA;AACA;AADA;AALA;AAQA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AASA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAfA;AAFA;AAuBA;AAEA;AAAA;AACA;AADA;AA1BA;AAJA;AAqCA;AAAA;AAAA;AAIA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAKA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AATA;AAYA;AAEA;AAAA;AACA;AADA;AAfA;AATA;AAtCA;AAsEA;;;;AAnHA;AACA;AAqHA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;;AC5mCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjBA;AACA;AAdA;AACA;AACA;;;;;;;;;;;AAWA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC/VA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AACA;AASA;;;;;AAIA;AACA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AAUA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/BA;AAbA;AA+CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAIA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAVA;AAYA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAYA;;;AAEA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AAEA;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAKA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAGA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AACA;AAdA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AACA;AAEA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;;;;;;AAGA;;;;;;;;;;;;;;;ACnkBA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAKA;AACA;;;AACA;AACA;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;;;AAWA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;AAVA;AAWA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAZA;AACA;AAcA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AAZA;AAcA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AAFA;AAKA;AAAA;AAAA;AAEA;AAFA;AAKA;AACA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAPA;AAaA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAAA;AAAA;AASA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AA1BA;AAxDA;AA6FA;;;;AA9TA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAgUA;;;;;;;;;;;;;ACjWA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AACA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACvCA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtCA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACz+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACtMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtGA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC9KA;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/SA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/DA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClIA;AAAA;AACA;AACA;;;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClFA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjQA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9JA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChHA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrFA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvPA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AAAA;AACA;;;;;;;;ACDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrBA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AASA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAEA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAEA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AAhDA;AACA;AACA;AACA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AASA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AACA;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AARA;AADA;AA0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnIA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACHA;AAwCA;AAsCA;AA8BA;AAmCA;AACA;AAvKA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;;;;;;;;;;;ACnJA;AACA;AAvBA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AADA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AANA;AACA;AAQA;AACA;AADA;AAGA;;;;;;;;;;;;;;;ACrDA;AACA;;;AACA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AADA;AATA;AAgBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AARA;AAlBA;AA8BA;;;;AAjCA;AACA;AAmCA;;;;;;;;;;;;;;;ACxCA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AAEA;AACA;AACA;AACA;AAEA;AADA;AADA;AAMA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AADA;AATA;AAgBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AARA;AAlBA;AA8BA;;;;AA9CA;AACA;AAgDA;AACA;;;;;;;;;;;;;;;ACtDA;AACA;;;AACA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AADA;AATA;AAgBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AARA;AAlBA;AA8BA;;;;AAjCA;AACA;AAmCA;;;;;;;;;;;;;;;ACxCA;AACA;;;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;AAQA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAGA;AACA;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AAEA;AAAA;AAAA;AACA;AADA;AACA;AADA;AACA;AADA;AACA;AADA;AAEA;AAAA;AACA;AAAA;AAHA;AAIA;AAAA;AAJA;AAJA;AAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHA;AAAA;AAAA;AAfA;AADA;AAsBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAIA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFA;AAGA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFA;AAGA;AARA;AAFA;AALA;AAkBA;AAzCA;AA4CA;;;;AA3DA;AACA;AADA;AAEA;AACA;AACA;AACA;AAJA;AA6DA;;;;;;;;;;;;;;;AC7EA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;;;AACA;AAAA;AACA;AADA;AAEA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAOA;AACA;AACA;;;AAEA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAHA;AAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAKA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AARA;AAAA;AAYA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AASA;AAEA;AAAA;AACA;AADA;AAbA;AAmBA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAPA;AARA;AAmBA;AAEA;AAAA;AACA;AADA;AAvBA;AA6BA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAJA;AAMA;AANA;AAlEA;AADA;AAnBA;AADA;AAoGA;;;;AA5KA;AACA;AA8KA;AACA;AACA;AAFA;AACA;AAIA;AACA;;;;;;;;;;;;;;;ACxMA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;;;;;;;;;AAOA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAEA;AAAA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAJA;AAQA;AAdA;AAiBA;AAGA;AAGA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AA9BA;AAoCA;;;;AAjDA;AACA;AADA;AAEA;AACA;AACA;AAHA;AAmDA;;;;;;;;;;;;;;;AClEA;AACA;;;AAAA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AAFA;AADA;AAWA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AAFA;AADA;AADA;AAaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AAFA;AAAA;AADA;AADA;AAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAvEA;AA0EA;;;;AA9EA;AACA;AAgFA;;;;;;;;;;;;;;;ACpFA;AACA;;;AAAA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAJA;AAOA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAGA;AAHA;AAAA;AAMA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AANA;AASA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAJA;AAOA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAhLA;AADA;AAqLA;;;;AAxLA;AACA;AA0LA;;;;;;;;;;;;;;;AC9LA;AACA;;;AACA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AADA;AATA;AAgBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AARA;AAlBA;AA8BA;;;;AAjCA;AACA;AAmCA;;;;;;;;;;;;;;;ACxCA;AACA;;;AACA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AADA;AATA;AAgBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AARA;AAlBA;AA8BA;;;;AAjCA;AACA;AAmCA;;;;;;;;;;;;;;;ACxCA;AACA;;;AAAA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AADA;AATA;AAgBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AARA;AAlBA;AA8BA;;;;AAjCA;AACA;AAmCA;;;;;;;;;;;;;;;ACvCA;AACA;;;AAAA;AACA;;;;;;;;;AACA;;;;;;;;;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAOA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAXA;AADA;AAgBA;;;;AAzBA;AACA;AA2BA;;;;;;;;;;;;;;;;;AC/BA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAUA;AACA;;;AACA;AACA;;;;;;;;AAJA;AACA;AACA;AAGA;;;;AAIA;;;AAUA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAOA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;;;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAdA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAHA;AAKA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AAAA;AAAA;AAAA;AAAA;AALA;AAUA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAHA;AADA;AAOA;AAAA;AACA;AADA;AAGA;AAAA;AACA;AACA;AACA;AACA;AAHA;AADA;AAxBA;AAkCA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AAZA;AAcA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AAAA;AACA;AADA;AAJA;AASA;AACA;AAAA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAJA;AAQA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AADA;AAnBA;AA0BA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAMA;AANA;AA3BA;AA1DA;AAmGA;;;;AAvQA;AACA;AAyQA;;;;;;AA1QA;AAEA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AA4QA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAnBA;AAoBA;AACA;;;AACA;AACA;AACA;AACA;AAEA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAJA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AADA;AAMA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAHA;AADA;AAhBA;AAyBA;;;;AAtFA;AACA;AAwFA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;;;;;ACtYA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAYA;AACA;AACA;;;AAgBA;AAAA;AACA;AADA;AACA;AACA;AACA;AAHA;AAIA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAUA;AACA;AACA;AACA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AAMA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAAA;AAAA;AAMA;AAGA;AACA;AAAA;AAAA;AAAA;AAKA;AAEA;AACA;AAAA;AAAA;AAAA;AAGA;AAEA;AAKA;AACA;AAAA;AAAA;AAAA;AAMA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AAHA;AAJA;AAYA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AAKA;AACA;AACA;AACA;AAEA;AAAA;AACA;AADA;AAIA;AAAA;AAAA;AAEA;AAIA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAPA;AADA;AAeA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AArBA;AApEA;AAiGA;;;;AAtMA;AACA;AAwMA;;;;;;AAzMA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AACA;AA2MA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAWA;AACA;;;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAJA;AAMA;AAAA;AAAA;AACA;AAEA;AAEA;AACA;AAFA;AAJA;AAWA;AAAA;AAAA;AAAA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAHA;AAJA;AALA;AAjBA;AAqCA;;;;AA1DA;AACA;AA4DA;AACA;AACA;AACA;AAIA;AACA;AACA;AATA;AACA;AAWA;AACA;AACA;;;;;;;;;;;;;;;ACtTA;AACA;;;AAAA;AACA;;;AACA;AACA;AACA;AACA;;;;;;;;;AACA;;;AAGA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AAFA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AAFA;AADA;AAHA;AAcA;AAEA;AACA;AACA;AACA;AACA;AAHA;AAKA;AAhCA;AAmCA;;;;AA1DA;AACA;AA4DA;AACA;AACA;AAFA;AACA;AAIA;;;;AAGA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFA;AAKA;;;;AARA;AACA;AAUA;AACA;AACA;AAFA;AACA;AAIA;;;;;;;;;;;;;;;;AC/FA;AACA;;;AAAA;AACA;;;AACA;AACA;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;;;;;;;;;AACA;;;AAGA;;;AACA;AAAA;AACA;AADA;AACA;AADA;AAgCA;AACA;AACA;AAhCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAUA;AACA;;;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAhBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAiBA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAJA;AACA;AAFA;AAAA;AAAA;AACA;AADA;AAQA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AACA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AA1CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AA2CA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAHA;AALA;AAYA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAEA;AACA;AAKA;AACA;AAAA;AAAA;AARA;AALA;AAkBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AADA;AA1BA;AAlBA;AA2DA;;;;AAlPA;AACA;AAoPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AAUA;;;;AAGA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AAHA;AAIA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAAA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAJA;AAOA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAEA;AAEA;AACA;AAEA;AAJA;AASA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AAGA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AALA;AAQA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAIA;AAJA;AAMA;AAfA;AAJA;AAyBA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AARA;AAFA;AAtCA;AAXA;AAkEA;;;;AAhIA;AACA;AAkIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AACA;AASA;;;;;;;;;;;;;;;AC5ZA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAFA;AAKA;;;;AARA;AACA;AAUA;AACA;AACA;AAFA;AACA;AAIA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAHA;AADA;AAOA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAFA;AAIA;AAPA;AARA;AADA;AAsBA;;;;AAzBA;AACA;AA2BA;AACA;AADA;AACA;AAGA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHA;AAMA;;;;AAXA;AACA;AAaA;AACA;AADA;AACA;AAGA;;;;;;;;;;;ACvEA;AACA;;;AAAA;AACA;;;;;;;;;;;AACA;AACA;AAcA;;;;;;;;;;;;;;AAgCA;AACA;AACA;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;;;;AAnKA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AADA;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AACA;AACA;AAoJA;;;;;;;;;;;;;;;ACxLA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;;;;;;;;;AACA;AACA;;;AACA;AAAA;AACA;AADA;AACA;AADA;AACA;AADA;AA0GA;AACA;AACA;AACA;AAFA;AAIA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AAlBA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AAmBA;AApBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AACA;AACA;AArIA;AACA;AACA;AACA;AAHA;AAHA;AAQA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AAUA;AAXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAHA;AAKA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AADA;AAeA;AAEA;AAAA;AACA;AADA;AAxBA;AA6BA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AANA;AAXA;AAqBA;AAEA;AAAA;AACA;AADA;AA9BA;AA9BA;AAkEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AANA;AADA;AAAA;AADA;AAaA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAKA;AAAA;AAAA;AACA;AACA;AAFA;AArFA;AA0FA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AADA;AAUA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AA5GA;AAoHA;;;;AA9QA;AACA;AAgRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AACA;AAWA;;;;;;;;;;;;;;;AC3SA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAEA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AALA;AAMA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AAIA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAMA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAHA;AAAA;AAAA;AAXA;AAoBA;;;;AArDA;AACA;AAuDA;AACA;AACA;AADA;;;;;;;;;;;;;;;AC/EA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAMA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAVA;AAkBA;;;;AA9BA;AACA;AAgCA;;;;;;;;;;;;;;;ACtCA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;;;;;;;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AAMA;AACA;;;AAGA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AAUA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AAdA;AAwBA;;;;AA5CA;AACA;AA8CA;;;;;;;;;;;;;;;AC9DA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAGA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AALA;AAJA;AAaA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AAJA;AAdA;AA0BA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AA5BA;AAoCA;;;;AAtDA;AACA;AAwDA;;;;;;;;;;;;;;;AC7DA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAIA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAMA;AACA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AACA;AACA;AACA;AAHA;AAOA;AACA;AAAA;AACA;AACA;AAFA;AAIA;AAJA;AA3BA;AAqCA;;;;AA7DA;AACA;AA+DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AAUA;;;;;;;;;;;;;;;AChFA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAAA;AACA;;;;;;;;;;AAPA;AACA;AACA;AAMA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAOA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAGA;AAHA;AAIA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAGA;AACA;AACA;AACA;AACA;AAHA;AAdA;AAmBA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAGA;AAHA;AACA;AAIA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAGA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAGA;AAHA;AACA;AAIA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAGA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AAMA;;;AAEA;AACA;AACA;AAIA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AANA;AAQA;AARA;AADA;AAYA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AANA;AAQA;AARA;AADA;AAaA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AANA;AAQA;AARA;AADA;AA1BA;AAwCA;AACA;AAAA;AAAA;AAAA;AA1CA;AA8CA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAHA;AAKA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AALA;AAJA;AAYA;AAAA;AAAA;AAAA;AAAA;AAZA;AAcA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAJA;AAAA;AAAA;AAWA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAlFA;AA2FA;;;;AAzPA;AACA;AADA;AAEA;AACA;AACA;AAHA;AACA;AACA;AAyPA;AACA;;;;;;;;;;;;;;;;AC/QA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;;;AACA;AACA;AAAA;AACA;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AAAA;;;AAWA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AADA;AAHA;AAMA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAVA;AACA;AAeA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AADA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AADA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AADA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AADA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AADA;AAMA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AANA;AADA;AAnCA;AAsDA;AAEA;AAAA;AACA;AADA;AAIA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAMA;AANA;AAWA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AAxEA;AAoFA;;;;AAhNA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AACA;AACA;AAgNA;AACA;;;;;;;;;;;;;;;ACxOA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;AAIA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAGA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAHA;AAKA;AAVA;AAcA;;;;AArCA;AACA;AAuCA;AACA;AACA;AAFA;AACA;AAIA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAHA;AALA;AAFA;AAeA;AAhBA;AAmBA;;;;AAhCA;AACA;AAkCA;AACA;AACA;AAFA;AACA;AAIA;;;;;;;;;;;;;;;AC9FA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAFA;AAUA;;;;AAbA;AACA;AAeA;;;;;;;;;;;;;;;ACpBA;AACA;;;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;;;;;;;;;;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAxBA;AACA;AA0BA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAHA;AADA;AADA;AADA;AAYA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AAFA;AAKA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AALA;AAUA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAhBA;AAwBA;;;;AAtKA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAwKA;;;;;;;;;;;;;;;AC1LA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;AALA;AACA;AACA;AAIA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAQA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAeA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AACA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAGA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AACA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAGA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AACA;AAGA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAFA;AAGA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAPA;AAWA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAPA;AAYA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAJA;AADA;AAQA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAJA;AADA;AAQA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AANA;AADA;AAjBA;AA6BA;AAEA;AAAA;AAEA;AAFA;AAhCA;AAzBA;AAqEA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAlFA;AA0FA;;;;AAzOA;AACA;AADA;AAEA;AACA;AACA;AACA;AAJA;AA2OA;;;;;;;;;;;;;;;AC3PA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAFA;AAUA;;;;AAlBA;AACA;AAoBA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;;;;;;;;;;;;;;;ACnCA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAIA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAbA;AAqBA;;;;AAzCA;AACA;AA2CA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;;;;;AC1DA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;;;AAGA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAHA;AAGA;AAHA;AADA;AAOA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAHA;AAGA;AAHA;AADA;AAVA;AAoBA;;;;AAlCA;AACA;AAoCA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;;;;;ACzDA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;AAGA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAFA;AAWA;;;;AA/BA;AACA;AAiCA;AACA;AADA;AACA;AAGA;;;;;;;;;;;;;;;AC9CA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AAMA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AACA;AACA;;;AAkBA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAlBA;AAwBA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AADA;AACA;AAQA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AADA;AAGA;AACA;AACA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AALA;AAOA;AAAA;AAAA;AAEA;AAEA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AAAA;AAAA;AAAA;AAAA;AAfA;AAiBA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AAAA;AAAA;AAAA;AAAA;AAdA;AAlBA;AAoCA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AACA;AACA;AACA;AACA;AAJA;AALA;AAkBA;AAAA;AAAA;AACA;AACA;AAFA;AAMA;AAEA;AACA;AACA;AAVA;AAnBA;AAwCA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AARA;AAJA;AAAA;AADA;AAoBA;AAAA;AAAA;AACA;AADA;AAMA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAPA;AAJA;AAAA;AANA;AAuBA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAHA;AAMA;AANA;AAYA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAMA;AANA;AAzIA;AAPA;AAgKA;;;;AAnoBA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AACA;AAooBA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAIA;;;;AAPA;AACA;AASA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAQA;AAEA;AAAA;AACA;AADA;AAXA;AADA;AAkBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AAFA;AADA;AAPA;AAeA;AAEA;AAAA;AACA;AADA;AAlBA;AAuBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AAFA;AADA;AAPA;AAeA;AAEA;AAAA;AACA;AADA;AAlBA;AAuBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AADA;AAAA;AASA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AADA;AAAA;AAVA;AAjEA;AADA;AAwFA;;;;AA3FA;AACA;AA6FA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;AAAA;AAGA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAIA;AAEA;AAAA;AACA;AADA;AAbA;AAkBA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAXA;AADA;AAeA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAKA;AACA;AAZA;AAcA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAKA;AACA;AAZA;AAjBA;AAhBA;AAkDA;AAIA;AAAA;AAEA;AAEA;AAAA;AACA;AADA;AAKA;AAEA;AAAA;AACA;AADA;AAKA;AAEA;AAAA;AACA;AADA;AAlBA;AA3DA;AArBA;AADA;AA6GA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AATA;AAYA;AAEA;AAAA;AACA;AADA;AAfA;AADA;AADA;AA9GA;AAwIA;;;;AAlKA;AACA;AAoKA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;;;;;ACn8BA;AACA;;;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;;;;;;;AANA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAHA;AAWA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AASA;AACA;AACA;AAEA;AACA;AACA;AACA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAWA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAFA;AACA;AASA;AACA;AACA;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;AAEA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAGA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAKA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AAAA;AAAA;AAZA;AAcA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAMA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAMA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAAA;AAKA;AACA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AAdA;AAgBA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAAA;AAOA;AACA;AAAA;AAEA;AAFA;AAlEA;AADA;AADA;AAPA;AADA;AAwFA;;;;AA5NA;AACA;AA8NA;;;;;;;;;;;;AChPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvFA;AACA;;;;;;;;;;;;ACUA;AACA;AAZA;AACA;AACA;AACA;;;;;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAIA;AACA;;;;;;;;;;;;;AC/BA;AACA;AADA;AACA;AAAA;AACA;;;AACA;AACA;AAAA;AACA;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAzHA;AACA;AA2HA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;;;;;;;;;;;;;AC9IA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAAA;AACA;AAGA;AACA;AADA;AAJA;AAAA;AACA;AADA;AAAA;AAAA;AASA;AACA;AAFA;AACA;AATA;AAAA;AACA;AADA;AAcA;AACA;AADA;AAdA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;;;;;AAFA;AACA;;;;;;;;;;;;;ACDA;AAMA;AAMA;AAcA;AAUA;AAUA;AASA;AAvDA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AADA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AADA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AADA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AADA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/DA;AACA;;;;;AACA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AAYA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA9BA;AACA;AAGA;AAAA;AA2BA;AA/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAgCA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AADA;AACA;AAAA;AACA;;;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AAAA;AACA;AACA;AACA;AAGA;AAHA;AAKA;AACA;AACA;AACA;AAAA;AACA;AACA;AA9CA;AAgDA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC7DA;AACA;AADA;AACA;AAAA;AACA;AAQA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AACA;AAcA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAGA;AACA;AAGA;AACA;AAGA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AACA;AAEA;AAFA;AAIA;AAAA;AACA;AACA;AACA;AACA;AAGA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAlKA;AACA;AAoKA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC5MA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AACA;AAYA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAAA;AAAA;AACA;AADA;AAMA;AAAA;AACA;AAAA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AACA;AADA;AAIA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAWA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAAA;AACA;AAEA;AAFA;AAIA;AACA;AAAA;AACA;AAEA;AAFA;AAIA;AACA;AAAA;AACA;AAEA;AAFA;AAIA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AACA;AAAA;AACA;AAKA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AAAA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAGA;AAHA;AAKA;AACA;AACA;AACA;AAAA;AACA;AACA;AA3KA;AA6KA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACnRA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;;;;;AACA;AACA;AACA;AAFA;AACA;AAIA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AARA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAnCA;AACA;AAqCA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACpEA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA;AACA;AAYA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAAA;AAAA;AACA;AADA;AAEA;AAAA;AACA;AAAA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AAVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAHA;AAKA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AASA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAGA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AAjOA;AAmOA;AACA;AACA;AACA;;;;;;;;;;;;;;;AClXA;AACA;AADA;AACA;AAAA;AACA;;;;;AACA;AACA;AACA;AAFA;AACA;AAIA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAAA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAGA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAxCA;AA0CA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtDA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AACA;AACA;AACA;AAFA;AACA;AAIA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAGA;AAHA;AAKA;AACA;AACA;AACA;AACA;AAjFA;AAmFA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChHA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;;;;;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAAA;AACA;AACA;AACA;AAGA;AAHA;AAKA;AACA;AACA;AACA;AAAA;AACA;AACA;AA5IA;AA8IA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACrMA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AAQA;AAAA;AAAA;AACA;AAAA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AACA;AADA;AAKA;AAAA;AACA;AAAA;AACA;AAPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AACA;AADA;AAKA;AAAA;AACA;AAAA;AACA;AAPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AACA;AAKA;AACA;AAEA;AACA;AACA;AAJA;AACA;AAMA;AACA;AAEA;AAFA;AACA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AACA;AAMA;AACA;AAEA;AACA;AAHA;AACA;AAKA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAGA;AAHA;AAKA;AACA;AACA;AACA;AACA;AA9KA;AACA;AAgLA;AACA;AACA;AACA;;;;;;;;;;;;;;AC5QA;AACA;AACA;AAJA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AACA;AA4BA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AAAA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AACA;AACA;AALA;AAOA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AACA;AACA;AAFA;AAHA;AAQA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AAHA;AAKA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AAFA;AAIA;AACA;AAEA;AACA;AACA;AAJA;AAMA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AACA;AAEA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlTA;AAoTA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC1VA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AACA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AADA;AAIA;;;;AAPA;AACA;AASA;;;;;;;;;;;;;;;AClBA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;AAQA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AARA;AAYA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AACA;AAGA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AARA;AAUA;AAAA;AAAA;AAEA;AAEA;AAAA;AAEA;AAFA;AAJA;AAXA;AA0BA;;;;AA1IA;AACA;AADA;AAEA;AACA;AACA;AACA;AAJA;AA4IA;;;;;;;;;;;;;;;ACjKA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;;;;;;;;;;;AAYA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AADA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AAEA;AAAA;AAEA;AAFA;AAMA;AAAA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAVA;AAsBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AADA;AAhCA;AADA;AA6CA;AACA;AAtDA;AAyDA;;;;AA7EA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AACA;AA6EA;AACA;AACA;;;;;;;;;;;;;;;AC1GA;AACA;;;AACA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAAA;AADA;AA0CA;;;;AA7CA;AACA;AA+CA;;;;;;;;;;;;;;;ACpDA;AACA;;;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AAAA;;;AACA;AAAA;AACA;AADA;AAEA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AADA;AADA;AADA;AAYA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAPA;AADA;AADA;AAbA;AA8BA;;;;AA1CA;AACA;AA4CA;;;;;;;;;;;;;;;ACvDA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;AAEA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AACA;AACA;;;;;;;;;AAVA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;AAQA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AADA;AAHA;AAMA;AACA;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AAKA;AAEA;AAAA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAFA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAbA;AAJA;AAuBA;AAGA;AAAA;AAAA;AAAA;AAnCA;AADA;AAyCA;AAAA;AAAA;AAEA;AAFA;AA1CA;AAmDA;;;;AAtHA;AACA;AADA;AAEA;AACA;AACA;AACA;AAJA;AACA;AAuHA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAGA;AAAA;AAAA;AAAA;AAAA;AAHA;AAKA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAXA;AAFA;AAiBA;;;;AAvCA;AACA;AAyCA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAFA;AAFA;AAQA;;;;AAXA;AACA;AAaA;AACA;AADA;AACA;AAGA;;;;;;;;;;;;;;;ACrNA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;;;AASA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AARA;AASA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;AAGA;AACA;AACA;AAnBA;AACA;AAqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AADA;AADA;AADA;AAYA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAKA;AAGA;AACA;AACA;AACA;AAJA;AAQA;AAEA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAQA;AARA;AAaA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAdA;AARA;AAlBA;AAkDA;AACA;AAhEA;AAmEA;;;;AAnLA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AALA;AACA;AACA;AAmLA;AACA;AACA;;;;;;;;;;;;;;;ACvNA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AAMA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;;;;;;;;;AAQA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AAGA;AACA;AACA;AACA;AAJA;AAJA;AAYA;AAbA;AAgBA;;;;AA/BA;AACA;AAiCA;;;;;;;AAlCA;AAEA;AACA;AACA;AACA;AAJA;AACA;AAqCA;;;;;;;;;;;;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AAFA;AAKA;AAGA;AACA;AACA;AAHA;AAjBA;AAyBA;;;;AA/DA;AACA;AAiEA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AACA;AADA;AALA;AAQA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AADA;AANA;AAaA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAKA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AADA;AAAA;AAWA;AACA;AAAA;AAAA;AAAA;AAbA;AAkBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAMA;AANA;AADA;AA9BA;AAPA;AAfA;AAqEA;;;;AAxJA;AACA;AA0JA;AACA;AACA;AACA;AAHA;AACA;AAKA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AACA;AADA;AALA;AAQA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAAA;AADA;AANA;AAaA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAPA;AADA;AALA;AANA;AAfA;AA4CA;;;;AArHA;AACA;AAuHA;AACA;AACA;AAFA;AACA;AAIA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AACA;AADA;AACA;AADA;AACA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAHA;AADA;AANA;AAgBA;AA1BA;AADA;AAgCA;;;;AA/CA;AACA;AAiDA;AACA;AACA;AAFA;AACA;AAIA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AATA;AAgBA;AACA;AACA;;;;;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAPA;AADA;AAWA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAPA;AAUA;AACA;AAAA;AAAA;AAAA;AAZA;AADA;AAkBA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAPA;AAUA;AACA;AAAA;AAAA;AAAA;AAZA;AADA;AApBA;AAwCA;AAEA;AAAA;AACA;AADA;AA3CA;AAbA;AA+DA;;;;AAnPA;AACA;AAqPA;AACA;AACA;AAFA;AACA;AAIA;;;;AAGA;;;;;;;;;;;;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAKA;AALA;AAOA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AAFA;AAIA;AAJA;AAOA;;;;AAzCA;AACA;AA2CA;AACA;AACA;AAFA;AACA;AAIA;;;;;;;;;;;;;;;AC/wBA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;;;;;;;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;AAQA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAGA;AACA;AACA;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AACA;AADA;AAKA;AARA;AAUA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAGA;AACA;AACA;AACA;;;;AAnDA;AACA;AADA;AAEA;AACA;AACA;AACA;AAJA;AAqDA;;;;;;;;;;;;;;;ACrEA;AACA;;;AAAA;AACA;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;;;AAUA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAHA;AAQA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AAAA;AACA;AACA;AACA;AALA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAMA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AAIA;AAEA;AACA;AACA;AACA;AAJA;AAQA;AACA;AAEA;AAEA;AACA;AACA;AAHA;AAOA;AA1BA;AA4BA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AADA;AA7BA;AAoCA;;;;AApGA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AAqGA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAHA;AAQA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AAAA;AACA;AACA;AADA;AAGA;AACA;AACA;AADA;AAGA;AACA;AAXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAYA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AACA;AADA;AAEA;AACA;AAAA;AACA;AACA;AADA;AACA;AAGA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AAEA;AACA;AACA;AADA;AAGA;AACA;AAnBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAFA;AADA;AAOA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAIA;AACA;AAAA;AACA;AADA;AAIA;AACA;AACA;AAHA;AATA;AADA;AAVA;AAFA;AAiCA;;;;AA/IA;AACA;AAiJA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAFA;AADA;AADA;AADA;AAFA;AAcA;;;;AAhCA;AACA;AAkCA;AACA;AADA;AACA;AAGA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAFA;AADA;AADA;AADA;AAFA;AAcA;;;;AAhCA;AACA;AAkCA;AACA;AADA;AACA;AAGA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAHA;AAFA;AAUA;AACA;;;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAHA;AACA;AAJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AAAA;AACA;AADA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AAAA;AACA;AADA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAJA;AAJA;AADA;AAFA;AAiBA;;;;AA3EA;AACA;AA6EA;AACA;AACA;AACA;AAHA;AACA;AAIA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AADA;AAFA;AAKA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA;AAkBA;;;AAEA;AAAA;AACA;AAAA;AACA;AASA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AADA;AASA;AAbA;AADA;AADA;AAHA;AAyBA;;;;AA7EA;AACA;AA+EA;AACA;AADA;AACA;AAGA;;;;;;;;;;;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AAFA;AAjBA;AAsBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AACA;AADA;AAJA;AAvBA;AAgCA;AAAA;AAAA;AACA;AADA;AAlCA;AADA;AAPA;AAiDA;;;;AApDA;AACA;AAsDA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;;;;;ACplBA;AACA;;;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;;;AAKA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AAJA;AAKA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AANA;AAcA;;;;AAhDA;AACA;AADA;AAEA;AADA;AACA;AACA;AAgDA;AACA;;;;;;;;;;;;;;;AC9DA;AACA;;;AAAA;AACA;AACA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAPA;AADA;AAYA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHA;AADA;AAQA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AADA;AA5BA;AADA;AADA;AAuCA;;;;AA1CA;AACA;AA4CA;;;;;;;;;;;;;;;ACpDA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;;;;;;;AACA;;;;;;;;;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAJA;AADA;AADA;AADA;AAYA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAGA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AANA;AADA;AADA;AAbA;AA6BA;;;;AAtCA;AACA;AAwCA;;;;;;;;;;;;;;;AC/CA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AACA;AACA;AAAA;AACA;AAAA;AACA;AAGA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AAiBA;AACA;AACA;;;AA6BA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAJA;AAeA;AACA;AACA;;;;;;;;;;AA7CA;;;;;;;;;;;AAsDA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAZA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;;;AAEA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AAEA;AAFA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AA/BA;AARA;AAoDA;;;;AAlXA;AACA;AADA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlBA;AACA;AACA;AA2WA;AACA;AACA;;;;;;;;;;;;;;;ACraA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;AAGA;AACA;;;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AAAA;;;AAGA;;;;;;;;;;;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAIA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AAcA;AAfA;AADA;AALA;AA0BA;;;;AAnCA;AACA;AAqCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AACA;AAcA;;;;AAGA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AAHA;AAWA;;;;AAxBA;AACA;AA0BA;AACA;AADA;AACA;AAGA;;;;AAGA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AACA;AADA;AALA;AAQA;AACA;;;AAAA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAlCA;AACA;AA2CA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAIA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAFA;AAJA;AAYA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAEA;AAAA;AAAA;AACA;AADA;AAHA;AAjBA;AAyBA;;;;AApHA;AACA;AAsHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AACA;AAcA;;;;;;;;;;;AACA;AACA;AACA;AAEA;;;AAEA;AACA;AACA;AAEA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AADA;AAGA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAWA;AAEA;AAAA;AACA;AADA;AAfA;AAqBA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AANA;AARA;AAkBA;AAEA;AAAA;AACA;AADA;AAtBA;AA4BA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AANA;AADA;AAAA;AADA;AAaA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AAQA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AAAA;AADA;AA7EA;AADA;AAJA;AA8FA;;;;AA3KA;AACA;AA6KA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AACA;AAQA;;;;;;;;;;;;;;;AC3aA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AAHA;AAIA;AACA;;;AACA;AACA;AAEA;AACA;AACA;AAHA;AAKA;;;AAEA;AACA;AAEA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAMA;AAAA;AAAA;AAAA;AAAA;AANA;AAQA;AACA;AAAA;AAAA;AAAA;AAAA;AASA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAFA;AAAA;AADA;AAnBA;AAHA;AAkCA;;;;AAzEA;AACA;AA2EA;AACA;AACA;AACA;AAHA;AACA;AAKA;;;;;;;;;;;;;;;ACxFA;AACA;;;AAAA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AAGA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AAGA;AAjBA;AAoBA;;;;AAzBA;AACA;AA2BA;AACA;AADA;AACA;AAGA;;;;;;;;;;;;;;;ACnCA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AACA;AADA;AAHA;AAMA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAZA;AACA;AAcA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAEA;AAKA;AAGA;AACA;AACA;AAHA;AAOA;AAEA;AACA;AACA;AAHA;AAlBA;AA0BA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AATA;AAUA;AAAA;AACA;AAXA;AAFA;AA3BA;AA6CA;;;;AAhFA;AACA;AAkFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AACA;AAUA;;;;;;;;;;;;;;;ACpGA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;;;;;;;AACA;;;;;;;;;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAGA;AAAA;AAAA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AAzCA;AAJA;AAkDA;;;;AAvEA;AACA;AAyEA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;;;;;;;;;;;;;;;ACrFA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAOA;AACA;;;AAAA;AACA;;;;;;;;;AACA;;;;;;;;;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AACA;AAXA;AAAA;AAAA;AACA;AADA;AAcA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAvCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAwCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAFA;AAIA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AAOA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AADA;AAGA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAFA;AAMA;AAGA;AACA;AACA;AAHA;AATA;AALA;AAsBA;AAEA;AAEA;AAAA;AAAA;AAAA;AAGA;AAEA;AAAA;AACA;AADA;AAEA;AAFA;AAAA;AASA;AAEA;AAAA;AACA;AADA;AAEA;AAFA;AAAA;AASA;AACA;AAAA;AAAA;AAAA;AAIA;AAGA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAIA;AAEA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AADA;AAMA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAFA;AADA;AACA;AAQA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFA;AA9FA;AAsGA;;;;AAzOA;AACA;AA2OA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;;;;;ACtQA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;;;;;AAIA;AACA;AACA;AADA;AAGA;AACA;AACA;;;AAOA;AAAA;AACA;AADA;AACA;AACA;AAFA;AAGA;AACA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AADA;AACA;AAFA;AAAA;AAAA;AACA;AADA;AAKA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAJA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AApBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBA;;;AAEA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA;AADA;AAKA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAOA;AAPA;AARA;AAVA;AAiCA;;;;AA5FA;AACA;AADA;AAEA;AACA;AACA;AAHA;AA8FA;;;;;;;;;;;;;;;AClHA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;;;;;AACA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AADA;AAGA;AACA;AADA;AALA;AAQA;AACA;AACA;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AAHA;AAjBA;AADA;AA0BA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;AACA;AAFA;AAZA;AAeA;AACA;AACA;AAFA;AAIA;AAnBA;AADA;AAwBA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;AACA;AAFA;AAIA;AAhBA;AADA;AArDA;AA2EA;;;;AA5HA;AACA;AA8HA;AACA;AACA;AAFA;AACA;AAIA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAOA;AACA;;;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AADA;AAGA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAPA;AADA;AAYA;;;;AApDA;AACA;AAsDA;AACA;AACA;AAFA;AACA;AAIA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;AAZA;AAaA;AACA;;;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AATA;AADA;AAcA;;;;AA/DA;AACA;AAiEA;AACA;AACA;AAFA;AACA;AAIA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAJA;AAOA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;AA7BA;AA8BA;AACA;;;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AADA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAXA;AADA;AAgBA;;;;AArGA;AACA;AAuGA;AACA;AACA;AAFA;AACA;AAIA;;;AACA;AAAA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AALA;AAQA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AA5BA;AA6BA;AACA;;;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAFA;AACA;AAIA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AALA;AADA;AAUA;;;;AA5EA;AACA;AA8EA;AACA;AACA;AAFA;AACA;AAIA;;;;;;;;;;;;;;;AC5cA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AACA;AACA;;;AACA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAHA;AAaA;AACA;;;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AALA;AADA;AASA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAFA;AAFA;AAdA;AAuBA;;;;AA/DA;AACA;AAiEA;AACA;AACA;AACA;AACA;AACA;AALA;AACA;AAOA;;;;;;;;;;;;;;;ACjGA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;AAEA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAGA;AACA;AAAA;AACA;AAAA;AACA;;;;;;;;;;;AAjBA;AACA;AACA;AAgBA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA;AAkBA;AACA;AACA;;;;;;;;;;;AAiBA;AACA;AACA;;;AAEA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AApBA;AAsBA;AAAA;AAAA;AAEA;AAEA;AAAA;AACA;AADA;AAJA;AAvBA;AADA;AAoCA;;;;AAzGA;AACA;AA2GA;;;;;AA5GA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AACA;AA6GA;;;AACA;AAAA;AACA;AADA;AACA;AADA;AA8EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AACA;AA7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AALA;AAFA;AAYA;AACA;;;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;;;AAWA;AACA;AACA;;;AAEA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA;AAAA;AAAA;AACA;AADA;AAeA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AA2BA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAJA;AACA;AAHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA;;;AAEA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AAJA;AASA;AAEA;AACA;AACA;AACA;AAJA;AASA;AAEA;AACA;AACA;AAHA;AAQA;AAEA;AACA;AACA;AAHA;AAQA;AAEA;AAGA;AACA;AACA;AANA;AAWA;AAEA;AAGA;AACA;AACA;AANA;AAWA;AAEA;AACA;AACA;AAHA;AAQA;AAEA;AAGA;AACA;AACA;AANA;AAWA;AAEA;AAGA;AACA;AACA;AANA;AAWA;AAEA;AAAA;AACA;AACA;AAFA;AAIA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AASA;AAlBA;AAJA;AA6BA;AAKA;AACA;AACA;AAvIA;AA8IA;;;;AAhYA;AACA;AAkYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AACA;AAiBA;;;;;;;;;;;;;;;ACnjBA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAQA;AACA;AACA;;;;;;;;;;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA;AAAA;AAAA;AACA;AADA;AAOA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAZA;AAcA;AACA;AAxBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBA;AACA;AApCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAoCA;AACA;AACA;AACA;AACA;;;AAAA;AACA;AACA;AACA;AAHA;AAAA;AAAA;AACA;AADA;AAIA;AAAA;AAAA;AAAA;AAAA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAZA;AAcA;AACA;AAvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBA;AA5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AA4BA;AACA;;;AAEA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AAKA;AAGA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAIA;AAdA;AAgBA;AA9BA;AAiCA;AAAA;AAAA;AAEA;AAIA;AACA;AAFA;AALA;AAlCA;AA+CA;;;;AA7IA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AACA;AACA;AA6IA;AACA;;;;;;;;;;;;;;;AChLA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AACA;AACA;AAEA;AACA;;;;;;;;AAHA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA;AAcA;AACA;AACA;;;AAmBA;AAAA;AACA;AADA;AACA;AAEA;AACA;AADA;AAHA;AAMA;AACA;;;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AAEA;AAAA;AAEA;AAFA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;AAeA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAHA;AAnCA;AAyCA;AA1CA;AA6CA;;;;AA9FA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AACA;AACA;AA8FA;AACA;AACA;;;;;;;;;;;;;;;ACxIA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAEA;AACA;;;AAAA;AACA;;;AAEA;AACA;;;;;;;;AAPA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AAUA;AACA;AACA;;;;AAGA;;;AAaA;AAAA;AACA;AADA;AACA;AAEA;AACA;AACA;AAFA;AAHA;AAOA;AACA;;;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAEA;AAKA;AAMA;AAEA;AACA;AACA;AACA;AACA;AACA;AANA;AAdA;AAyBA;AAAA;AAAA;AAEA;AACA;AAAA;AACA;AACA;AADA;AADA;AAHA;AA1BA;AAuCA;;;;AA/DA;AACA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAiEA;;;;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/tBA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;;;;;;;ACAA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpEA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;;;;;;;ACFA;AACA;AACA;;;;;;;ACFA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACVA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7CA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;;;;;;;ACHA;AACA;;;;;;;ACDA;AACA;;;;;;;ACDA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACVA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;;;;;;;ACDA;AACA;;;;;;;ACDA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;;;;;;;ACHA;AACA;;;;;;;ACDA;AACA;;;;;;;ACDA;AACA;;;;;;;ACDA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACvOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AClUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACraA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnIA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;;;;;;;;;ACHA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjmBA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1NA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtEA;AACA;AACA;;;;;;;ACFA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACp4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACv+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/fA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjGA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtFA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtFA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClKA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3JA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxCA;AAAA;AAAA;AAAA;AACA;AACA;;;;;;;ACFA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AAAA;AAAA;AAAA;AACA;AACA;;;;;;;ACFA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/OA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnIA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/CA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9CA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3rDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/pDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzIA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AACA;AACA;;;;;;;;ACFA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AACA;AACA;AACA;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpGA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;A","sourceRoot":""}