{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/mobx/lib/mobx.module.js","webpack:///./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js","webpack:///./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack:///./node_modules/mobx-react/dist/mobxreact.esm.js","webpack:///./src/graph.js","webpack:///./src/blocks/field.js","webpack:///./node_modules/mobx-react-lite/es/assertEnvironment.js","webpack:///./node_modules/mobx-react-lite/es/observerBatching.js","webpack:///./node_modules/mobx-react-lite/es/staticRendering.js","webpack:///./node_modules/mobx-react-lite/es/printDebugValue.js","webpack:///./node_modules/mobx-react-lite/es/reactionCleanupTracking.js","webpack:///./node_modules/mobx-react-lite/es/useQueuedForceUpdate.js","webpack:///./node_modules/mobx-react-lite/es/useObserver.js","webpack:///./node_modules/mobx-react-lite/es/observer.js","webpack:///./node_modules/mobx-react-lite/es/ObserverComponent.js","webpack:///./node_modules/mobx-react-lite/es/useAsObservableSource.js","webpack:///./node_modules/mobx-react-lite/es/index.js","webpack:///./src/models/clock/index.js","webpack:///./node_modules/quagga/dist/quagga.js","webpack:///./node_modules/mobx-react-lite/es/utils.js","webpack:///./src/models/record/index.js","webpack:///./src/blocks/modal.js","webpack:///./src/dynamic/displays.js","webpack:///./src/models/member/index.js","webpack:///./node_modules/react-is/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/process/browser.js","webpack:///./src/models/hold.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/styled-react-modal/build/index.js","webpack:///./src/blocks/border.js","webpack:///./node_modules/js-md5/src/md5.js","webpack:///./node_modules/luxon/build/cjs-browser/luxon.js","webpack:///./src/models/subscripcion.js","webpack:///./src/models/index.js","webpack:///./src/models/barcode/index.js","webpack:///./src/models/shipping_charge.js","webpack:///./src/blocks/header.js","webpack:///./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@loadable/component/dist/loadable.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./src/models/pool/index.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./src/models/barcode/scan.display.js","webpack:///./src/models/member/link.display.js","webpack:///./src/models/member/primary.display.js","webpack:///./src/models/pool/primary.display.js","webpack:///./src/models/record/card.display.js","webpack:///./src/models/record/grid.display.js","webpack:///./src/models/record/line.display.js","webpack:///./src/blocks/button.js","webpack:///./src/blocks/selection.js","webpack:///./src/models/record/focused.display.js","webpack:///./src/blocks/genre_menu.js","webpack:///./src/models/record/add.display.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///./src/graphql.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./node_modules/content-type/index.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/@tanem/svg-injector/dist/svg-injector.esm.js","webpack:///./node_modules/react-svg/dist/react-svg.esm.js","webpack:///./src/blocks/links.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/mobx-react-lite/batchingForReactDom.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./src/models sync \\.js$","webpack:///(webpack)/buildin/amd-options.js","webpack:///./src/models lazy ^\\.\\/.*\\.display$ namespace object","webpack:///./src/arrays/card.array.js","webpack:///./src/arrays/grid.array.js","webpack:///./src/arrays/line.array.js","webpack:///./node_modules/react-dom/client.js","webpack:///./node_modules/@mdi/react/Icon.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./src/arrays lazy ^\\.\\/.*\\.array$ namespace object","webpack:///./src/arrays sync \\.js$","webpack:///./src/blocks/search.js","webpack:///./node_modules/@mdi/js/mdi.js","webpack:///./src/blocks/session.js","webpack:///./node_modules/@iconify/react/dist/iconify.mjs","webpack:///./src/blocks/holds.js","webpack:///./src/blocks/subscripcions.js","webpack:///./src/blocks/accions.js","webpack:///./src/dynamic/arrays.js","webpack:///./src/blocks/loading.js","webpack:///./src/blocks/home.js","webpack:///./src/base.js","webpack:///./src/packs/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","EMPTY_ARRAY","freeze","EMPTY_OBJECT","getNextId","globalState","mobxGuid","fail","message","invariant","check","Error","once","func","invoked","apply","this","arguments","noop","isObject","isPlainObject","proto","getPrototypeOf","addHiddenProp","propName","writable","configurable","createInstanceofPredicate","clazz","x","isES6Map","thing","Map","isES6Set","Set","getPlainObjectKeys","enumerables","add","getOwnPropertySymbols","forEach","k","getOwnPropertyDescriptor","Array","from","stringifyKey","toString","String","toPrimitive","ownKeys","Reflect","obj","getOwnPropertyNames","concat","$mobx","Atom","isPendingUnobservation","isBeingObserved","observers","diffValue","lastAccessedBy","lowestObserverState","IDerivationState","NOT_TRACKING","onBecomeObserved","onBecomeObservedListeners","listener","onBecomeUnobserved","onBecomeUnobservedListeners","reportObserved","reportChanged","startBatch","observable","STALE","dependenciesState","UP_TO_DATE","isTracing","TraceMode","NONE","logTraceInfo","onBecomeStale","propagateChanged","endBatch","isAtom","createAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","arg3","atom","interceptHook","comparer","identity","a","b","structural","deepEqual","default","is","shallow","extendStatics","setPrototypeOf","__proto__","__assign","assign","length","__values","iterator","next","done","__read","e","ar","push","error","__spread","mobxDidRunLazyInitializersSymbol","mobxPendingDecorators","enumerableDescriptorCache","nonEnumerableDescriptorCache","createPropertyInitializerDescriptor","prop","cache","initializeInstance","set","target","e_1","_a","decorators","keys","keys_1","keys_1_1","propertyCreator","descriptor","decoratorTarget","decoratorArguments","e_1_1","return","createPropDecorator","propertyInitiallyEnumerable","decorator","applyImmediately","inheritedDecorators","quacksLikeADecorator","slice","args","deepEnhancer","v","_","isObservable","isArray","array","undefined","map","referenceEnhancer","newValue","createDecoratorForEnhancer","enhancer","propertyName","_decoratorTarget","decoratorArgs","initialValue","initializer","asObservableObject","addObservableProp","res","process","env","defaultCreateObservableOptions","deep","defaultDecorator","proxy","asCreateObservableOptions","deepDecorator","shallowDecorator","isObservableObject","isObservableArray","isObservableMap","isObservableSet","refDecorator","refStructDecorator","oldValue","getEnhancerFromOptions","options","observableFactories","box","incorrectlyUsedAsDecorator","ObservableValue","equals","initialValues","createObservableArray","ObservableMap","ObservableSet","props","extendObservable","getDefaultDecoratorFromObjectOptions","base","createDynamicObservableObject","extendObservableObjectWithProperties","ref","struct","arg2","methodName","computedDecorator","instance","addComputedProp","context","computedStructDecorator","computed","arg1","opts","ComputedValue","CaughtException","cause","isCaughtException","shouldCompute","derivation","POSSIBLY_STALE","prevAllowStateReads","allowStateReadsStart","prevUntracked","untrackedStart","obs","observing","isComputedValue","disableErrorBoundaries","untrackedEnd","allowStateReadsEnd","changeDependenciesStateTo0","checkIfStateModificationsAreAllowed","hasObservers","size","computationDepth","allowStateChanges","enforceActions","trackDerivedFunction","f","newObserving","unboundDepsCount","runId","result","prevTracking","trackingDerivation","prevObserving","lowestNewObservingDerivationState","i0","dep","removeObserver","addObserver","bindDependencies","clearObserving","untracked","action","prev","allowStateReads","currentActionId","nextActionId","functionNameDescriptor","createAction","actionName","fn","executeAction","isMobxAction","scope","runInfo","notifySpy","startTime","prevDerivation","prevAllowStateChanges","allowStateChangesStart","actionId","parentActionId","_startAction","err","suppressReactionErrors","allowStateChangesEnd","_endAction","allowStateChangesInsideComputed","_super","_this","hasUnreportedChange","__","constructor","__extends","dehanceValue","dehancer","prepareNewValue","UNCHANGED","setNewValue","hasInterceptors","change","interceptChange","type","hasListeners","notifyListeners","intercept","handler","registerInterceptor","observe","fireImmediately","registerListener","toJSON","valueOf","isObservableValue","__mapid","isComputing","isRunningSetter","setter","compareStructural","requiresReaction","keepAlive","propagateMaybeChanged","inBatch","trackAndCompute","propagateChangeConfirmed","warnAboutUntrackedRead","computeValue","peek","wasSuspended","changed","track","suspend","firstTime","prevValue","autorun","prevU","MobXGlobals","version","pendingUnobservations","pendingReactions","isRunningReactions","spyListeners","globalReactionErrorHandlers","computedRequiresReaction","reactionRequiresObservable","observableRequiresReaction","computedConfigurable","mockGlobal","getGlobal","window","global","self","canMergeGlobalState","isolateCalled","__mobxInstanceCount","__mobxGlobals","setTimeout","node","delete","queueForUnobservation","runReactions","list","console","log","BREAK","lines","printDepTree","getDependencyTree","Function","replace","join","tree","depth","dependencies","child","Reaction","onInvalidate","errorHandler","requiresObservable","isDisposed","_isScheduled","_isTrackPending","_isRunning","schedule","isScheduled","runReaction","reportExceptionInDerivation","warn","dispose","getDisposer","trace","enterBreakPoint","_i","pop","getAtomFromArgs","LOG","reactionScheduler","runReactionsHelper","allReactions","iterations","splice","remainingReactions","isReaction","setReactionScheduler","baseScheduler","spy","dontReassignFields","namedActionDecorator","initializer_1","actionFieldDecorator","arg4","runInAction","defineBoundAction","view","reaction","scheduler","delay","reactionRunner","onError","scheduler_1","createSchedulerFromOptions","isScheduled_1","bound","applyToInstance","run","expression","effect","baseFn","effectAction","runSync","nextValue","hook","getAtom","cb","listenersKey","hookListeners","configure","isolateGlobalState","ea","properties","e_2","_b","keys_2","keys_2_1","resultDescriptor","e_2_1","nodeToDependencyTree","item","indexOf","FlowCancellationError","interceptReads","propOrHandler","getAdministration","interceptProperty","interceptInterceptable","_isComputed","values","has","isComputedProp","_isObservable","isObservableProp","getKeys","index","entries","adm","existingObservable","write","defaultEnhancer","parseInt","values_1","key_1","propOrCb","cbOrFire","observeObservableProperty","observeObservable","transaction","thisArg","getAdm","isPropertyKey","val","objectProxyTraps","deleteProperty","remove","keysAtom","preventExtensions","Proxy","interceptable","interceptors","idx","listenable","changeListeners","listeners","arrayTraps","getArrayLength","arrayExtensions","isNaN","setArrayLength","owned","ObservableArrayAdministration","spliceWithArray","lastKnownLength","newV","oldV","dehanceValues","added","addedCount","removed","removedCount","newLength","currentLength","newItems","updateArrayLength","oldLength","delta","deleteCount","Math","max","min","spliceItemsIntoValues","notifyArraySplice","notifyArrayChildUpdate","notify","clear","toJS","items","shift","unshift","reverse","clone","sort","compareFn","funcName","dehancedValues","callback","element","accumulator","currentValue","isObservableArrayAdministration","_a$1","ObservableMapMarker","initialData","_keysAtom","_data","_hasMap","merge","_has","entry","newEntry","hasKey","_updateValue","_addValue","_updateHasMapEntry","makeIterable","_c","_d","_e","other","e_3","e_4","replacementMap","dataStructure","convertToMap","orderedData","keysReportChangedCalled","e_3_1","_f","_g","_h","keyExisted","value_1","e_4_1","iter1","iter2","next1","next2","toPOJO","e_5","e_5_1","ObservableSetMarker","_atom","callbackFn","nextIndex","observableValues","ObservableObjectAdministration","read","pendingKeys","exists","observablePropertyConfigs","generateObservablePropConfig","notifyPropertyAddition","propertyOwner","computedPropertyConfigs","getAdministrationForComputedPropOwner","generateComputedPropConfig","oldObservable","illegalAccess","owner","isObservableObjectAdministration","anyThing","eq","aStack","bStack","className","unwrap","areArrays","aCtor","bCtor","has$1","getSelf","__MOBX_DEVTOOLS_GLOBAL_HOOK__","injectMobx","extras","getDebugName","Hook","livelinessChecking","getLivelinessChecking","__decorate","desc","decorate","TypeError","getType","assertIsStateTreeNode","getStateTreeNode","applyPatch","patch","assertArg","applyPatches","asArray","applySnapshot","snapshot","getSnapshot","applyPostProcess","getRoot","root","storedValue","TypeFlags","BaseNode","parent","subpath","environment","_state","NodeLifeCycle","INITIALIZING","baseSetParent","_subpath","_subpathUponDeath","_pathUponDeath","getValue","wasAlive","isAlive","aliveAtom","fireInternalHook","_hookSubscribers","emit","registerHook","hookHandler","EventHandlers","register","_parent","_escapedSubpath","pathAtom","getEscapedPath","escapeJsonPath","state","DEAD","DETACHING","baseFinalizeCreation","whenFinalized","CREATED","FINALIZED","fireHook","afterAttach","baseFinalizeDeath","clearAll","baseAboutToDie","beforeDestroy","ScalarNode","simpleType","initialSnapshot","createNewInstance","finalizeCreation","fail$1","setParent","newParent","parentChanged","subpathChanged","path","pathUponDeath","die","aboutToDie","finalizeDeath","nextNodeId","snapshotReactionOptions","ObjectNode","complexType","nodeId","isProtectionEnabled","_autoUnbox","_isRunningAction","_hasSnapshotReaction","_observableInstanceState","_cachedInitialSnapshotCreated","unbox","_initialSnapshot","identifierAttribute","identifierCache","IdentifierCache","_childNodes","initializeChildNodes","identifier","unnormalizedIdentifier","id","childNode","normalizeIdentifier","addNodeToCache","patches","createObservableInstanceIfNeeded","_applyPatches","_applySnapshot","createObservableInstance","parentChain","parentChain_1","parentChain_1_1","preboot","finalizeNewInstance","isRoot","_addSnapshotReaction","afterCreate","clearParent","beforeDetach","previousState","newEnv","newIdCache","splitCache","removeChild","mergeCache","_getActualSnapshot","_getCachedInitialSnapshot","_snapshotUponDeath","childNodes","_cachedInitialSnapshot","processInitialSnapshot","isRunningAction","assertAlive","_getAssertAliveError","warnError","escapedPath","actionContext","getCurrentActionContext","parentActionEvent","actionFullPath","getChildNode","getChildren","convertChildNodesToArray","getChildType","assertWritable","isProtected","subpathUponDeath","afterCreationFinalization","detach","createActionInvoker","parts","splitJsonPath","resolveNodeByPathParts","applyPatchLocally","addHiddenFinalProp","_internalEventsEmit","_internalEventsClear","notifyDied","_internalEventsClearAll","onSnapshot","onChange","_internalEventsRegister","emitSnapshot","onPatch","emitPatch","basePatch","source","_internalEventsHasSubscribers","localizedPatch","current","extend","substr","stripPatch","invertPatch","splitPatch","reversePatch","hasDisposer","disposer","_internalEventsHas","addDisposer","removeDisposer","_internalEventsUnregister","removeMiddleware","middleware","middlewares","addMiddleWare","includeHooks","snapshotDisposer","event","_internalEvents","hasSubscribers","eventHandler","atTheBeginning","unregister","cannotDetermineSubtype","BaseType","isType","typecheckInternal","instantiate","isAssignableFrom","validate","getStateTreeNodeSafe","valueType","typeCheckSuccess","typeCheckFailure","isValidSnapshot","ComplexType","getDefaultSnapshot","tryToReconcileNode","isDetaching","isStateTreeNode","isMutable","reconcile","newNode","getSubTypes","SimpleType","assertIsType","argNumber","RunningAction","hooks","flowsPending","running","onStart","finish","onFinish","incFlowsPending","decFlowsPending","currentActionContext","getNextActionId","runWithActionContext","baseIsRunningAction","previousContext","baseCall","originalFn","CollectedMiddlewares","isEmpty","runNextMiddleware","getNextMiddleware","call2","abort","runMiddleWares","getParentActionContext","parentContext","parentActionContext","argsToArray","rootId","parentId","allParentIds","parentEvent","_isMSTAction","arrayIndex","inArrayIndex","$mst_middleware","prettyPrintValue","JSON","stringify","safeStringify","toErrorString","fullPath","filter","pathPrefix","currentTypename","isPrimitive","isSnapshotCompatible","flags","Number","Integer","Boolean","Date","isPrimitiveType","describe","getContextForPath","flattenTypeErrors","errors","reduce","ENABLE_TYPE_CHECK","valueInString","substring","validationErrorsToString","typecheck","identifierCacheId","cacheId","lastCacheModificationPerId","updateLastCacheModificationPerId","lcm","getLastCacheModificationPerId","modificationId","lastCacheUpdate","mobxShallow","nodes","basePath","modified","some","candidate","resolve","matches","createObjectNode","existingNode","createScalarNode","$treenode","pathParts","failIfResolveFails","part","joinJsonPath","isInteger","isFinite","floor","RegExp","includeDate","EventHandler","handlers","eventHandlers","stringStartsWith","str","beginning","deprecated","msg","typeName","assertIsFunction","assertIsString","canBeEmpty","op","unescapeJsonPath","getPathStr","split","ids","SnapshotProcessor","_subtype","_processors","preProcessSnapshot","sn","preProcessor","postProcessSnapshot","postProcessor","_fixNode","nodeType","snapshotProcessorType","methods","methods_1","methods_1_1","method","proxyNodeTypeMethods","oldGetSnapshot","processedInitialValue","processedSn","MapIdentifierMode","needsIdentifierError","tryCollectModelTypes","modelTypes","subtypes","subtypesArray","subtypesArray_1","subtypesArray_1_1","ModelType","MSTMap","put","mapNode","mapType","identifierMode","YES","mapIdentifierAttribute","isValidIdentifier","MapType","_subType","hookInitializers","UNKNOWN","_determineIdentifierMode","identifierAttribute_1","NO","objNode","subType","actionInvoker","willChange","didChange","processIdentifier","expected","processed","oldSnapshot","currentKeys","ArrayType","updatedNodes","reconcileArrayChildren","index_1","addedNodes","childType","oldNodes","newValues","newPaths","nothingChanged","hasNewNode","oldNode","newPath","areSame","valueAsNode","oldMatch","j","getNewNode","PRE_PROCESS_SNAPSHOT","POST_PROCESS_SNAPSHOT","objectTypeToString","defaultObjectOptions","initializers","toPropertiesObject","declaredProps","optional","string","number","boolean","DatePrimitive","getPrimitiveFactoryFromValue","named","cloneAndEnhance","currentPreprocessor","currentPostprocessor","propertyNames","_getIdentifierAttribute","forAllProps","propType","Identifier","actions","instantiateActions","action2","baseAction","specializedAction_1","boundAction","volatile","instantiateVolatileState","views","rest","propertyIsEnumerable","__rest","instantiateViews","computedValue","applySnapshotPreProcessor","chg","oldChildValue","applySnapshotPostProcessor","preProcessedSnapshot","processor","isModelType","CoreType","checker","integer","nullType","Null","undefinedType","Undefined","_DatePrimitive","getTime","Literal","literal","Refinement","_predicate","_message","subtypeErrors","Union","_types","_eager","eager","dispatcher","_dispatcher","factory","determineType","reconcileCurrentType","find","allErrors","applicableTypes","union","optionsOrType","otherTypes","types","OptionalValue","_defaultValue","optionalValues","Optional","defaultInstanceOrSnapshot","getDefaultInstanceOrSnapshot","defaultValueOrFunction","checkOptionalPreconditions","undefinedAsOptionalValues","optionalUndefinedType","optionalNullType","maybe","Late","_definition","getSubType","mustSucceed","ReferenceError","subtype","Frozen","isSerializable","untypedFrozenInstance","StoredReference","targetType","targetNode","updateResolvedReference","normalizedId","lastCacheModification","resolvedReference","InvalidReferenceError","BaseReferenceType","onInvalidated","Reference","fireInvalidated","storedRefNode","referenceId","refTargetNode","storedRefParentNode","storedRefParentValue","invalidTarget","invalidId","replaceRef","newRef","removeRef","addTargetNodeWatcher","refTargetValue","refTargetNodeHook","getInvalidationCause","refTargetDetachHookDisposer","refTargetDestroyHookDisposer","watchTargetNodeForInvalidations","customGetSet","onRefTargetDestroyedHookDisposer","startWatching","sync","IdentifierReferenceType","resolvedValue","storedRef","compareByValue","CustomReferenceType","newIdentifier","reference","getSetOptions","BaseIdentifierType","validType","IdentifierType","IdentifierNumberType","identifierNumber","CustomType","Custom","isTargetType","typeError","getValidationMessage","toSnapshot","fromSnapshot","isSnapshot","valueToStore","enumeration","realOptions","option","model","compose","hasTypename","cur","custom","safeReference","refType","ev","acceptsUndefined","maybeNull","refinement","predicate","frozen","arg","late","nameOrType","maybeType","null","snapshotProcessor","processors","g","S","w","E","displayName","N","styledComponentId","A","REACT_APP_SC_ATTR","SC_ATTR","C","I","P","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","O","T","groupSizes","Uint32Array","tag","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","V","B","z","M","G","L","F","registerName","Y","textContent","trim","match","u","getTag","q","H","document","head","createElement","hasAttribute","nextSibling","setAttribute","insertBefore","$","appendChild","createTextNode","sheet","styleSheets","ownerNode","cssRules","cssText","W","U","rules","J","X","isServer","useCSSOMInjection","Z","gs","names","server","querySelectorAll","getAttribute","parentNode","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","K","Q","fromCharCode","ee","abs","te","charCodeAt","ne","re","oe","se","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","hash","Ne","h","y","ie","ae","ce","plugins","use","lastIndexOf","ue","createContext","le","Consumer","de","he","pe","fe","me","ye","stylisPlugins","disableCSSOMInjection","prefix","disableVendorPrefixes","Provider","children","ve","inject","getName","ge","Se","we","Ee","toLowerCase","be","test","isReactComponent","isCss","Ae","Ce","Re","theme","De","je","Te","xe","ke","Ve","Be","ze","Me","Ge","Le","Fe","Ye","qe","attrs","parentComponentId","shouldForwardProp","componentStyle","defaultProps","foldedComponentIds","$as","as","style","forwardRef","withComponent","_foldedDefaultProps","He","withConfig","$e","createStyles","removeStyles","renderStyles","We","memo","Ue","Je","_emitSheetCSS","getStyleTags","sealed","getStyleElement","dangerouslySetInnerHTML","__html","nonce","seal","collectStyles","interleaveWithNodeStream","Xe","Ze","Ke","StyleSheet","masterSheet","symbolId","createdSymbols","newSymbol","symbol","createSymbol","shallowEqual","objA","objB","keysA","keysB","setHiddenProp","mobxMixins","mobxPatchedDefinition","wrapper","realMethod","mixins","_len","_key","locks","retVal","mx","wrapFunction","_len2","_key2","mixinMethod","methodMixins","getMixins","oldDefinition","originalMethod","newDefinition","createDefinition","_ref","wrappedFunc","mobxAdminProperty","mobxObserverProperty","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","makeClassComponentObserver","componentClass","getDisplayName","componentWillReact","shouldComponentUpdate","observerSCU","makeObservableProp","baseRender","render","makeComponentReactive","_this$render$mobxAdmi","_displayName","comp","initialName","isRenderingPending","hasError","forceUpdate","reactiveRender","exception","rendering","nextProps","nextState","valueHolderKey","atomHolderKey","prevReadState","hasSymbol","for","ReactForwardRefSymbol","ReactMemoSymbol","observer","component","isPrototypeOf","graph","graphql","headers","querySelector","localStorage","getItem","BaseField","styled","input","Spacing","div","Field","record","claim","label","useState","editing","changeEditing","originalValue","changeOriginalValue","focus","placeholder","href","onClick","observerBatchingConfiguredSymbol","defaultNoopBatch","globalIsUsingStaticRendering","isUsingStaticRendering","printDebugValue","reactionCleanupHandle","CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS","uncommittedReactionRefs","ensureCleanupTimerRunning","cleanUncommittedReactions","now","tracking","cleanAt","insideRender","forceUpdateQueue","observerComponentNameFor","baseComponentName","useObserver","queuedForceUpdate","useQueuedForceUpdate","useForceUpdate","reactionTrackingRef","useRef","newReaction_1","trackingData_1","mounted","createTrackingData","useDebugValue","useEffect","reactionRef","Infinity","queue_1","useLayoutEffect","useQueuedForceUpdateBlock","baseComponent","memoComponent","wrappedComponent","hoistBlackList","$$typeof","compare","ObserverComponent","ObserverPropsCheck","componentName","location","propFullName","extraKey","hasProp","hasExtraProp","propTypes","Model","schema","clock","DateTime","fromISO","isValid","toISO","local","__factorySource__","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0__common_array_helper__","BarcodeReader","config","supplements","_row","_nextUnset","line","start","_matchPattern","counter","code","maxSingleError","barWidth","count","scaled","singleError","sum","modulo","SINGLE_CODE_ERROR","MAX_VALUE","_nextSet","offset","_correctBars","correction","indices","tmp","_matchTrace","cmpCounter","epsilon","isWhite","counterPos","bestMatch","end","decodePattern","pattern","_decode","direction","DIRECTION","REVERSE","FORWARD","format","FORMAT","_matchRange","_fillCounters","counters","_toCounters","numCounters","init","writeable","Exception","StartNotFoundException","CodeNotFoundException","PatternNotFoundException","CONFIG_KEYS","arr","shuffle","random","toPointList","row","rows","threshold","_threshold","scoreFunc","queue","maxIndex","__WEBPACK_IMPORTED_MODULE_0_lodash_merge__","__WEBPACK_IMPORTED_MODULE_0_lodash_merge___default","__WEBPACK_IMPORTED_MODULE_1__barcode_reader__","_extends","EANReader","CODE_L_START","CODE_G_START","START_PATTERN","STOP_PATTERN","MIDDLE_PATTERN","EXTENSION_START_PATTERN","CODE_PATTERN","CODE_FREQUENCY","AVG_CODE_ERROR","_decodeCode","coderange","_findPattern","tryHarder","_findStart","leadingWhitespaceStart","startInfo","_verifyTrailingWhitespace","endInfo","trailingWhitespaceEnd","_findEnd","_calculateFirstDigit","codeFrequency","_decodePayload","decodedCodes","firstDigit","resultInfo","_checksum","ext","_decodeExtensions","lastCode","supplement","codeset","decode","freeGlobal","freeSelf","out","Float32Array","getRawTag","objectToString","symToStringTag","drawRect","pos","ctx","strokeStyle","color","fillStyle","lineWidth","beginPath","strokeRect","drawPath","def","moveTo","lineTo","closePath","stroke","drawImage","imageData","canvasData","getImageData","data","imageDataPos","canvasDataPos","putImageData","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","isKey","stringToPath","isKeyable","__data__","reIsUint","nativeCreate","getNative","baseIsArguments","isObjectLike","objectProto","isArguments","__WEBPACK_IMPORTED_MODULE_0__cluster__","__WEBPACK_IMPORTED_MODULE_1__array_helper__","toVec2","vec2","toVec3","vec3","round","imageWrapper","targetWrapper","bitsPerPixel","hist","bitShift","px","determineThreshold","p1","p2","p12","m12","vet","Int32Array","computeHistogram","determineOtsuThreshold","targetData","thresholdImage","points","cluster","point","clusters","addToCluster","newPoint","found","fits","createPoint","top","score","hit","minIdx","outArray","topRowIdx","bottomRowIdx","endIdx","outWidth","outImgIdx","inWidth","computeGray","inImgWrapper","outImgWrapper","inImg","outImg","hsv","rgb","patchSize","imgSize","optimalPatchSize","divisorsX","_computeDivisors","divisorsY","wideSide","common","arr1","arr2","_computeIntersection","nrOfPatchesList","nrOfPatchesMap","nrOfPatchesIdx","medium","nrOfPatches","desiredPatchSize","findPatchSizeForDivisors","divisors","inputWidth","inputHeight","area","width","height","parsedArea","parsed","parseFloat","unit","_parseCSSDimensionValues","calculated","_dimensionsConverters","sx","left","sy","sw","right","sh","bottom","singleChannel","largeDivisors","sqrt","dimension","__WEBPACK_IMPORTED_MODULE_0__subImage__","__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__","__WEBPACK_IMPORTED_MODULE_2__common_array_helper__","ImageWrapper","initialize","Uint8Array","inImageWithBorder","imgRef","border","sample","lx","ly","clearArray","subImage","subImageAsCopy","sizeY","sizeX","copyTo","srcData","dstData","getSafe","indexMapping","zeroBorder","invert","convolve","kernel","kx","ky","kSize","accu","moments","labelcount","ysq","mu11","x_","y_","labelsum","PI","PI_4","m00","m01","m10","m11","m02","m20","theta","rad","atan","vec","cos","sin","show","canvas","scale","frame","pixel","getContext","overlay","whiteRgb","blackRgb","baseIsNative","isSymbol","isFunction","isLength","baseGetTag","baseMerge","createAssigner","srcIndex","webpackPolyfill","deprecate","paths","searchDirections","labelWrapper","labelData","_trace","edgelabel","cy","dir","cx","vertex2D","contourTracing","Cv","ldir","Fv","_contourTracing","__WEBPACK_IMPORTED_MODULE_0__barcode_reader__","__WEBPACK_IMPORTED_MODULE_1__common_array_helper__","Code39Reader","ALPHABETH_STRING","ALPHABET","CHARACTER_ENCODINGS","ASTERISK","decodedChar","lastStart","nextStart","_toPattern","_patternToChar","patternSize","_findNextWidth","minWidth","maxNarrowWidth","numWideBars","wideBarWidth","whiteSpaceMustStart","patternStart","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","baseAssignValue","objValue","getPrototype","overArg","Ctor","nativeMax","transform","otherArgs","baseSetToString","setToString","shortOut","stubFalse","freeExports","freeModule","Buffer","isBuffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","arrayLikeKeys","baseKeysIn","isArrayLike","eval","_inputStream","_framegrabber","_stopped","_inputImageWrapper","_boxSize","_decoder","_resultCollector","__WEBPACK_IMPORTED_MODULE_1__common_typedefs__","__WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__","__WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__","__WEBPACK_IMPORTED_MODULE_4__decoder_barcode_decoder__","__WEBPACK_IMPORTED_MODULE_5__common_events__","__WEBPACK_IMPORTED_MODULE_6__input_camera_access__","__WEBPACK_IMPORTED_MODULE_7__common_image_debug__","__WEBPACK_IMPORTED_MODULE_8__analytics_result_collector__","__WEBPACK_IMPORTED_MODULE_9__config_config__","__WEBPACK_IMPORTED_MODULE_10_input_stream__","__WEBPACK_IMPORTED_MODULE_11_frame_grabber__","_canvasContainer","image","dom","_workerPool","_onUIThread","_config","initializeData","getWidth","getHeight","locator","initBuffers","decoder","initInputStream","video","inputStream","createVideoStream","createImageStream","$viewport","getViewPort","createLiveStream","request","constraints","then","trigger","catch","setInputStream","addEventListener","canRecord","nodeName","selector","checkImageConstraints","getCanvasSize","clearFix","initCanvas","adjustWorkerPool","numOfWorkers","play","ready","transformResult","topRight","getTopRight","xOffset","yOffset","barcodes","moveBox","boxes","corner","addResult","barcode","codeResult","publishResult","resultToPublish","publish","hasCodeResult","locateAndDecode","locate","decodeFromBoundingBoxes","update","availableWorker","workerThread","busy","attachData","grab","worker","postMessage","cmd","buffer","_start","frequency","timestamp","requestAnimFrame","performance","initWorker","blobURL","blob","factorySource","Blob","workerInterface","URL","createObjectURL","Worker","onmessage","revokeObjectURL","Quagga","onProcessed","setReaders","readers","capacity","increaseBy","terminate","workerInitialized","stop","release","clearEventHandlers","pause","onDetected","subscribe","offDetected","unsubscribe","offProcessed","_setReaders","registerResultCollector","resultCollector","decodeSingle","resultCallback","sequence","src","debug","halfSample","ImageDebug","ResultCollector","CameraAccess","__WEBPACK_IMPORTED_MODULE_0__common_image_debug__","results","capture","matchesConstraints","every","contains","blacklist","passesFilter","imageSize","toDataURL","getResults","dot","center","pointMap","_add","pointToAdd","updateCenter","otherPoint","getPoints","getCenter","events","getEvent","eventName","subscribers","publishSubscription","subscription","async","_subscribe","subscriber","navigator","mediaDevices","enumerateDevices","Promise","reject","getUserMedia","SubImage","originalSize","updateData","updateFrom","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","imul","al","bl","to","nextSource","nextKey","facingMode","drawBoundingBox","showFrequency","drawScanline","showPattern","showCanvas","showPatches","showFoundPatches","showSkeleton","showLabels","showPatchLabels","showRemainingPatchLabels","boxFromPatches","showTransformed","showTransformedBox","showBB","__WEBPACK_IMPORTED_MODULE_0__bresenham__","__WEBPACK_IMPORTED_MODULE_1__common_image_debug__","__WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__","__WEBPACK_IMPORTED_MODULE_3__reader_ean_reader__","__WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__","__WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__","__WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__","__WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__","__WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__","__WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__","__WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__","__WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__","__WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__","__WEBPACK_IMPORTED_MODULE_13__reader_2of5_reader__","__WEBPACK_IMPORTED_MODULE_14__reader_code_93_reader__","_typeof","READERS","code_128_reader","ean_reader","ean_5_reader","ean_2_reader","ean_8_reader","code_39_reader","code_39_vin_reader","codabar_reader","upc_reader","upc_e_reader","i2of5_reader","code_93_reader","inputImageWrapper","_canvas","_barcodeReaders","initReaders","readerConfig","reader","configuration","tryDecode","barcodeLine","getBarcodeLine","printFrequency","toBinaryLine","printPattern","_decodeFromBoundingBox","lineAngle","lineLength","getLine","pow","getLineLength","angle","extendLine","amount","extension","ceil","getExtendedLine","atan2","sideLength","xdir","ydir","tryDecodeBruteForce","$debug","vis","display","initConfig","decodeFromBoundingBox","multiple","Bresenham","Slope","UP","DOWN","deltax","deltay","ystep","x0","y0","x1","y1","steep","slope","slope2","currentDir","extrema","rThreshold","fillColor","fillRect","streamRef","__WEBPACK_IMPORTED_MODULE_0_lodash_pick__","__WEBPACK_IMPORTED_MODULE_0_lodash_pick___default","__WEBPACK_IMPORTED_MODULE_1_mediaDevices__","waitForVideo","attempts","checkVideo","videoWidth","videoHeight","initCamera","stream","srcObject","deprecatedConstraints","videoConstraints","normalized","minAspectRatio","aspectRatio","facing","getActiveTrack","tracks","getVideoTracks","normalizedConstraints","audio","deviceId","pickConstraints","enumerateVideoDevices","devices","device","kind","getActiveStreamLabel","tags","AvailableTags","objectURLToBlob","readToBuffer","findTagsInBuffer","ExifTags","fileReader","FileReader","onload","readAsArrayBuffer","url","http","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","status","response","onerror","send","file","selectedTags","dataView","DataView","byteLength","exifTags","selectedTag","exifTag","getUint8","readEXIFData","getUint16","outstr","getStringFromBuffer","tiffOffset","bigEnd","firstIFDOffset","getUint32","tiffStart","dirStart","strings","entryOffset","readTagValue","readTags","numValues","__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__","TO_RADIANS","FrameGrabber","_that","_streamConfig","getConfig","_video_size","getRealWidth","getRealHeight","_canvasSize","_size","_sx","_sy","_ctx","videoSize","canvasSize","getData","ctxData","doHalfSample","getFrame","drawable","drawAngle","targetSize","adjustCanvasSize","img","orientation","translate","rotate","getSize","__WEBPACK_IMPORTED_MODULE_0__exif_helper__","ImageLoader","addOnloadHandler","htmlImagesArray","loaded","load","directory","num","htmlImagesSrcArray","notLoaded","addImage","loadedImg","notloadedImgs","imgName","Image","__WEBPACK_IMPORTED_MODULE_0__image_loader__","InputStream","_calculatedWidth","_calculatedHeight","that","_eventNames","_eventHandlers","_topRight","setWidth","setHeight","ended","setCurrentTime","time","currentTime","bool","removeEventListener","setTopRight","setCanvasSize","calculatedWidth","calculatedHeight","frameIdx","paused","imgArray","baseUrl","publishEvent","newWidth","newHeight","imgs","_currentImageWrapper","_skelImageWrapper","_subImageWrapper","_labelImageWrapper","_patchGrid","_patchLabelGrid","_imageToPatchGrid","_binaryImageWrapper","_patchSize","_skeletonizer","__WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__","__WEBPACK_IMPORTED_MODULE_3__common_image_debug__","__WEBPACK_IMPORTED_MODULE_4__rasterizer__","__WEBPACK_IMPORTED_MODULE_5__tracer__","__WEBPACK_IMPORTED_MODULE_6__skeletonizer__","transformMat2","mat2","copy","binary","_numPatches","overAvg","transMat","minx","miny","maxx","maxy","skeletonize","describePatch","patchPos","avg","matchingMoments","eligibleMoments","patchesFound","minComponentWeight","topCluster","similarMoments","skeletonImageData","ArrayBuffer","useWorker","topLabels","rasterResult","rasterize","findPatches","maxLabel","currIdx","notYetProcessed","currentIdx","currentPatch","rasterizeAngularSimilarity","labelHist","el","findBiggestConnectedAreas","findBoxes","__WEBPACK_IMPORTED_MODULE_0__tracer__","Rasterizer","createContour2D","firstVertex","insideContours","nextpeer","prevpeer","CONTOUR_DIR","CW_DIR","CCW_DIR","UNKNOWN_DIR","DIR","OUTSIDE_EDGE","INSIDE_EDGE","tracer","depthlabel","bc","lc","labelindex","vertex","cc","sc","colorMap","connectedCount","drawContour","firstContour","iq","pq","stdlib","foreign","images","erode","inImagePtr","outImagePtr","yStart1","yStart2","xStart1","xStart2","subtract","aImagePtr","bImagePtr","bitwiseOr","countNonZero","imagePtr","dilate","memcpy","srcImagePtr","dstImagePtr","subImagePtr","erodedImagePtr","tempImagePtr","skelImagePtr","TwoOfFiveReader","barSpaceRatio","startPatternLength","narrowBarWidth","counterLength","_verifyCounterLength","CodabarReader","_counters","START_END","MIN_ENCODED_CHARS","MAX_ACCEPTABLE","PADDING","startCounter","_isStartEnd","_verifyWhitespace","_validateResult","_sumCounters","endCounter","_calculatePatternLength","_thresholdResultPattern","cat","categorization","space","narrow","counts","wide","bar","_charToPattern","newkind","char","charCode","thresholds","_computeAlternatingThreshold","barThreshold","spaceThreshold","bitmask","Code128Reader","calculateCorrection","sumNormalized","sumExpected","CODE_SHIFT","CODE_C","CODE_B","CODE_A","START_CODE_A","START_CODE_B","START_CODE_C","STOP_CODE","MODULE_INDICES","_correct","multiplier","checksum","rawResult","shiftNext","removeLastCharacter","__WEBPACK_IMPORTED_MODULE_0__code_39_reader__","Code39VINReader","patterns","_checkChecksum","Code93Reader","_verifyEnd","_verifyChecksums","_decodeExtended","charArray","nextChar","nextCharCode","_matchCheckChar","maxWeight","arrayToCheck","weightedSums","__WEBPACK_IMPORTED_MODULE_0__ean_reader__","EAN2Reader","EAN5Reader","CHECK_DIGIT_ENCODINGS","extensionChecksum","determineCheckDigit","EAN8Reader","I2of5Reader","normalizeBarSpaceWidth","MAX_CORRECTION_FACTOR","counterSum","codeSum","correctionRatio","correctionRatioInverse","_decodePair","counterPair","codes","UPCEReader","_determineParity","nrSystem","_convertToUPCA","upca","lastDigit","UPCReader","charAt","a0","a1","a2","a3","det","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","baseTimes","isIndex","inherited","isArr","isArg","isBuff","skipIndexes","iteratee","objectCreate","baseCreate","arrayPush","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","castPath","toKey","isMasked","toSource","reIsHostCtor","funcProto","funcToString","reIsNative","typedArrayTags","isPrototype","nativeKeysIn","isProto","assignMergeValue","baseMergeDeep","keysIn","customizer","stack","srcValue","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArrayLikeObject","toPlainObject","mergeFunc","stacked","isCommon","isTyped","basePickBy","hasIn","baseGet","baseSet","overRest","assignValue","lastIndex","nested","constant","arrayMap","symbolProto","symbolToString","baseToString","arrayBuffer","allocUnsafe","isDeep","cloneArrayBuffer","typedArray","byteOffset","isNew","coreJsData","baseRest","isIterateeCall","assigner","sources","guard","fromRight","keysFunc","iterable","flatten","nativeObjectToString","isOwn","unmasked","hasFunc","spreadableSymbol","isConcatSpreadable","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","exec","IE_PROTO","assocIndexOf","getMapData","memoize","freeProcess","binding","nativeNow","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","memoizeCapped","reLeadingDot","rePropName","reEscapeChar","quote","baseHasIn","hasPath","objectCtorString","resolver","memoized","Cache","basePick","pick","flatRest","copyObject","setTick","tick","getSymbol","Record","genre","byline","summary","imageAddress","language","member","Member","search_responses","changeRecord","memory","acquire_records","run_book_search","fetch","author","json","book","volumeInfo","title","authors","imageLinks","thumbnail","description","hash_address","replaceAll","summarize","num_symbols","loadDisplays","Modal","BaseModal","isOpen","allowScroll","display_cache","NoDisplay","Red","_display","displays","require","loadable","displayable","screens","in_cache","React","inicial","email","surname","address","shippingCharges","ShippingCharge","cashHandle","changeMe","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","marker","runClearTimeout","Item","nextTick","browser","argv","versions","on","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","Hold","recordId","beginsOn","Clock","expiresOn","declinedOn","cancelledOn","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","inheritedComponent","targetStatics","sourceStatics","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","resetWarningCache","isRequired","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","backgroundComponent","modalNode","BackgroundComponent","WrapperComponent","onBackgroundClick","onEscapeKeydown","beforeOpen","afterOpen","beforeClose","afterClose","backgroundProps","body","overflow","createPortal","Border","ERROR","WINDOW","JS_MD5_NO_WINDOW","WEB_WORKER","NODE_JS","JS_MD5_NO_NODE_JS","COMMON_JS","JS_MD5_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_MD5_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","BASE64_ENCODE_CHAR","blocks","buffer8","JS_MD5_NO_ARRAY_BUFFER_IS_VIEW","isView","createOutputMethod","outputType","Md5","createMethod","nodeWrap","crypto","nodeMethod","createHash","digest","sharedMemory","h0","h1","h2","h3","bytes","hBytes","finalized","hashed","first","notString","lastByteIndex","finalize","da","hex","base64","v1","v2","v3","base64Str","md5","_defineProperties","_createClass","Constructor","protoProps","staticProps","_inheritsLoose","subClass","superClass","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","construct","sham","_construct","Parent","Class","_wrapNativeSuper","_cache","Wrapper","_arrayLikeToArray","_createForOfIteratorHelperLoose","minLen","_unsupportedIterableToArray","LuxonError","_Error","InvalidDateTimeError","_LuxonError","reason","toMessage","InvalidIntervalError","_LuxonError2","InvalidDurationError","_LuxonError3","ConflictingSpecificationError","_LuxonError4","InvalidUnitError","_LuxonError5","InvalidArgumentError","_LuxonError6","ZoneIsAbstractError","_LuxonError7","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","isNumber","hasIntl","Intl","DateTimeFormat","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","bestBy","by","best","pair","integerBetween","padStart","minus","repeat","parseInteger","parseMillis","fraction","roundTo","digits","towardZero","factor","trunc","isLeapYear","daysInYear","daysInMonth","modMonth","floorMod","objToLocalTS","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","last","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","intl","without","signedOffset","offHourStr","offMinuteStr","offHour","offMin","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","formatOffset","hours","minutes","sign","RangeError","timeObject","ianaRegex","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","stringifyTokens","splits","tokenToString","_step","_iterator","token","_macroTokenToFormatOpts","D","DD","DDD","DDDD","tt","ttt","tttt","TT","TTT","TTTT","ff","fff","ffff","FF","FFF","FFFF","Formatter","formatOpts","loc","systemLoc","parseFormat","fmt","currentFull","bracketed","macroTokenToFormatOpts","_proto","formatWithSystemDefault","dt","redefaultToSystem","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","zone","meridiem","meridiemForDateTime","standalone","monthForDateTime","weekdayForDateTime","era","eraForDateTime","offsetName","zoneName","weekNumber","ordinal","quarter","maybeMacro","formatDurationFromString","dur","lildur","_this2","tokenToField","tokens","realTokens","collapsed","shiftTo","mapped","Invalid","explanation","Zone","otherZone","singleton","LocalZone","_Zone","getTimezoneOffset","matchingRegex","dtfCache","typeToPos","ianaZoneCache","IANAZone","valid","isValidZone","resetCache","isValidSpecifier","parseGMTOffset","specifier","NaN","dtf","_ref2","formatted","filled","_formatted$i","partsOffset","fMonth","fDay","hackyOffset","asTS","over","singleton$1","FixedOffsetZone","fixed","utcInstance","parseSpecifier","InvalidZone","normalizeZone","defaultZone","lowered","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","intlRelCache","getCachedRTF","_opts","cacheKeyOpts","excluded","sourceKeys","_objectWithoutPropertiesLoose","inf","sysLocaleCache","listStuff","defaultOK","englishFn","intlFn","PolyNumberFormatter","useGrouping","minimumIntegerDigits","NumberFormat","getCachedINF","PolyDateFormatter","universal","gmtOffset","offsetZ","isOffsetZoneSupported","fromMillis","_proto2","toJSDate","tokenFormat","knownFormat","dateTimeHuge","formatString","PolyRelFormatter","isEnglish","rtf","_proto3","numeric","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatRelativeTime","numbering","specifiedLocale","_parseLocaleString","localeStr","uIndex","smaller","_options","calendar","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","intlConfigString","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fromOpts","defaultToEN","computedSys","systemLocale","fromObject","_temp","_proto4","hasFTP","isActuallyEn","hasNoWeirdness","alts","redefaultToEN","formatStr","ms","utc","mapMonths","mapWeekdays","_this3","_this4","field","matching","fastNumbers","relFormatter","startsWith","combineRegexes","regexes","full","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","_ex","parse","_len3","_key3","_patterns","_patterns$_i","regex","extractor","simpleParse","_len4","_key4","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","extractISOTime","milliseconds","extractISOOffset","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","force","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","rfc2822","extractRFC2822","obsOffset","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","extractISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","conf","conversionAccuracy","Duration","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","antiTrunc","accurate","invalid","isLuxonDuration","normalizeUnit","text","_parseISODuration","parseISODuration","fromISOTime","_parseISOTimeOnly","parseISOTimeOnly","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISOTime","millis","toMillis","suppressMilliseconds","suppressSeconds","includePrefix","plus","duration","friendlyDuration","negate","mapUnits","_Object$keys","reconfigure","normalize","vals","previous","normalizeValues","lastUnit","_step2","built","accumulated","_iterator2","own","ak","down","negated","_i2","_Object$keys2","_step3","_iterator3","durationish","INVALID$1","validateStartEnd","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","_split","startIsValid","endIsValid","_dur","isInterval","toDuration","startOf","diff","hasSame","isAfter","dateTime","isBefore","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","intervals","_intervals$sort$reduc","sofar","final","xor","_Array$prototype","currentCount","ends","difference","toISODate","dateFormat","_temp2","_ref3$separator","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","setZone","isValidIANAZone","_ref$locale","_ref$numberingSystem","_ref$locObj","locObj","_ref$outputCalendar","monthsFormat","_ref2$locale","_ref2$numberingSystem","_ref2$locObj","_ref2$outputCalendar","_temp3","_ref3","_ref3$locale","_ref3$numberingSystem","_ref3$locObj","weekdaysFormat","_temp4","_ref4","_ref4$locale","_ref4$numberingSystem","_ref4$locObj","_temp5","_ref5$locale","_temp6","_ref6$locale","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","_diff","_highOrderDiffs","lowestOrder","highWater","_differs","_differs$_i","differ","_cursor$plus","_cursor$plus2","highOrderDiffs","remainingMillis","lowerOrderUnits","_cursor$plus3","_Duration$fromMillis","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","append","intUnit","post","deser","search","_numberingSystemsUTF","parseDigits","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","startIndex","findIndex","groups","simple","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","dummyDateTimeCache","maybeExpandMacroToken","tokenForPart","includes","explainFromTokens","expandMacroTokens","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","_ref5","unitate","disqualifyingUnit","_buildRegex","buildRegex","regexString","_match","all","matchIndex","rawMatches","_ref6","toField","dateTimeFromMatches","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","_uncomputeOrdinal","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","_uncomputeOrdinal2","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","INVALID$2","MAX_DATE","unsupportedZone","possiblyCachedWeekData","clone$1","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","_fixOffset","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","_ref$suppressSeconds","_ref$suppressMillisec","includeOffset","_ref$includePrefix","_ref$includeZone","includeZone","_ref$spaceZone","spaceZone","_ref$format","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits$1","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","_objToTS","diffRelative","calendary","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","defaultValues","useWeekData","objNow","foundFirst","higherOrderInvalid","validWeek","validWeekday","hasInvalidWeekData","validOrdinal","hasInvalidOrdinalData","_objToTS2","_parseISODate","parseISODate","fromRFC2822","_parseRFC2822Date","preprocessRFC2822","parseRFC2822Date","fromHTTP","_parseHTTPDate","parseHTTPDate","fromFormat","_opts$locale","_opts$numberingSystem","_parseFromTokens","_explainFromTokens","parseFromTokens","fromString","fromSQL","_parseSQL","parseSQL","isDateTime","resolvedLocaleOpts","_Formatter$create$res","toLocal","_ref3$keepLocalTime","_ref3$keepCalendarTim","keepCalendarTime","newTS","offsetGuess","setLocale","mixed","settingWeekStuff","_objToTS4","normalizedUnit","endOf","_this$plus","toLocaleString","toLocaleParts","_ref5$format","toISOWeekDate","_ref6$suppressMillise","_ref6$suppressSeconds","_ref6$includeOffset","_ref6$includePrefix","_ref6$format","toRFC2822","toHTTP","toSQLDate","toSQLTime","_ref7","_ref7$includeOffset","_ref7$includeZone","toSQL","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffed","diffNow","until","inputMs","otherZoneDateTime","toRelative","padding","toRelativeCalendar","fromFormatExplain","_options$locale","_options$numberingSys","fromStringExplain","dateTimeish","VERSION","Subscripcion","channel","createdOn","disabledOn","acquire_session","delays","records","members","holds","subscripcions","hold_dura","displaying_holds","displaying_subscripcions","focused_record","photoString","cameraIsOpen","addingName","session_pending","claimMoneyModal","adding","scanning","Barcode","money","price","change_me","changes","change_record","claim_record","drop_record","focus_record","dropRecord","unclaim_record","place_hold","cancel_hold","hold","holdId","run_search","sign_in","signIn","Background","Heading","overhang","Header","reactPropsRegex","isPropValid","_assertThisInitialized","condition","framesToPop","Context","LOADABLE_SHARED","initialChunks","STATUS_PENDING","STATUS_REJECTED","createLoadable","_ref$defaultResolveCo","defaultResolveComponent","_render","onLoad","loadableConstructor","ctor","requireAsync","chunkName","resolveConstructor","_getCacheKey","cacheKey","Loadable","Component","resolveComponent","preload","LoadableWithChunkExtractor","cachedLoad","promise","fileName","InnerLoadable","_React$Component","loading","__chunkExtractor","requireSync","ssr","loadSync","addChunk","isReady","componentDidMount","cachedPromise","getCache","setCache","loadAsync","componentDidUpdate","prevProps","prevState","componentWillUnmount","safeSetState","setState","getCacheKey","triggerOnLoad","resolveAsync","loadedModule","_this$props","forwardedRef","_this$props2","propFallback","_this$state","suspense","EnhancedInnerLoadable","lazy","_createLoadable","_createLoadable$1","loadable$1","lazy$1","loadable$2","lib","PoolCharge","donorHandle","pool","paidOn","Pool","pool_charges","acquire_charges","poolCharges","add_bank_card","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","setImmediate","clearImmediate","unique","breakModal","Scan","books","lookups","unloadScanner","loadScanner","refs","drawingCtx","drawingCanvas","clearRect","look_up_code","Responses","Book","Code","Byline","Summary","Display","works","work","covers","Label","span","BaseBorder","Headline","Span","Profile","Screen","held","alt","SideBySide","Line","primary","background","button","chosen","Selection","Layout","Links","FocusedRecord","GenreMenu","header","Choices","Choice","Response","AddRecord","heading","choice","machine","meal","media","compareContext","bHasOwnProperty","valueA","valueB","ca","fa","ha","ia","ja","ka","aa","ba","la","ma","R","na","oa","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","__extend","extended","__request","asJson","onRequestError","query","variables","encodeURIComponent","groupCollapsed","toUpperCase","groupEnd","contentType","accept","_onRequestError","xhr","setRequestHeader","responseText","__doRequest","__isTagCall","GraphQLClient","client","_lazy","_sender","declare","fragments","_fragments","buildFragments","createSenderFunction","createHelpers","_transaction","FRAGMENT_SEPERATOR","AUTODECLARE_PATTERN","FRAGMENT_PATTERN","setUrl","getUrl","fragmentPath","collectFragments","fragmentRegexp","collectedFragments","fragment","$m","pathRegexp","alreadyCollected","processQuery","autoDeclare","typeMap","keyAndType","mapping","mappedType","cleanAutoDeclareAnnotations","newVariables","fragmentObject","buildQuery","parseType","originalQuery","ql","requestOptions","fragmentedQuery","asJSON","mergeName","mutation","commit","resolveMap","mergedVariables","mergedQueries","subQuery","reqId","matchingKey","variable","alias","responses","newResponses","mergeKey","parsedKey","fieldName","newResponse","sender","helper","__prefix","__suffix","suffix","alwaysAutodeclare","getOptions","newHeaders","_fragment","acc","seg","define","PARAM_REGEXP","TEXT_REGEXP","TOKEN_REGEXP","QESC_REGEXP","QUOTE_REGEXP","TYPE_REGEXP","qstring","ContentType","parameters","param","params","getHeader","getcontenttype","__spreadArray","pack","cloneSvg","sourceSvg","cloneNode","isLocal","protocol","httpRequestWithCredentials","httpRequest","getResponseHeader","responseXML","statusText","withCredentials","overrideMimeType","requestQueue","queueRequest","loadSvgCached","cacheValue","SVGSVGElement","Document","documentElement","_loop_1","processRequestQueue","loadSvgUncached","idCounter","injectedElements","ranScripts","xlinkNamespace","evalScripts","renumerateIRIElements","cacheRequests","beforeEach","elUrl","svg","elId","elTitle","elWidth","elHeight","mergedClasses","elStyle","elData","attributes","at","dataAttr","element_1","elements_1","properties_1","currentId_1","newId_1","iriElementsAndProperties_1","clipPath","linearGradient","mask","radialGradient","elementsLen","referencingElements","referencingElementLen","attrValue","allLinks","links","allLinksLen","getAttributeNS","linksLen","setAttributeNS","removeAttribute","script","scriptType","scripts","scriptsToEval","scriptsLen","innerText","scriptsToEvalLen","styleTags","styleTag","replaceChild","_excluded","ReactSVG","initialState","isLoading","_isMounted","reactWrapper","nonReactWrapper","refCallback","renderSVG","Node","nonReactTarget","beforeInjection","useRequestCache","afterInjection","createElementNS","dataset","elements","afterAll","afterEach","_j","elementsLoaded_1","SVGInjector","removeSVG","_this$nonReactWrapper","shallowDiffers","Fallback","Loading","xmlns","xmlnsXlink","Blurb","here","Column","SizedImage","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","isPureReactComponent","__self","__source","_owner","escape","_status","_result","transition","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","Children","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_currentValue","_currentValue2","_threadCount","_globalName","_context","createFactory","createRef","isValidElement","_payload","_init","startTransition","unstable_act","useCallback","useContext","useDeferredValue","useId","useImperativeHandle","useInsertionEffect","useMemo","useReducer","useSyncExternalStore","useTransition","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","xlinkHref","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","Ra","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","controlled","ab","bb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","pb","gridArea","lineClamp","qb","rb","sb","setProperty","tb","menuitem","br","col","embed","hr","keygen","link","meta","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","unstable_cancelCallback","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","documentMode","datetime","password","range","tel","oninput","detachEvent","attachEvent","Ie","compareDocumentPosition","HTMLIFrameElement","contentWindow","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","Pe","Qe","animationend","animationiteration","animationstart","transitionend","animation","af","bf","cf","df","ef","gf","hf","lf","mf","nf","Ub","of","pf","qf","rf","sf","passive","tf","uf","parentWindow","vf","wf","xa","$a","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","childLanes","Tg","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","dh","eh","fh","gh","hh","ih","jh","kh","nh","_reactInternals","lh","mh","oh","ph","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","li","mi","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ki","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","qj","rj","tj","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","onclick","autoFocus","Hj","Ij","Jj","Kj","Lj","WeakSet","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","Yj","Zj","onCommitFiberUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","pendingChildren","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","dl","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","wl","isDisabled","supportsFiber","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","sortIndex","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","registerImmediate","html","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","task","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","webpackContext","req","webpackContextResolve","__webpack_amd_options__","webpackAsyncContext","CardLay","card","GridLay","grid","LineLay","horizontal","vertical","spin","inStack","viewBox","role","fill","transformOrigin","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","shim","secret","getShim","ReactPropTypes","bigint","SearchField","Search","onKeyDown","SessionField","Session","removeItem","matchName","iconDefaults","vFlip","hFlip","fullIcon","stringToIcon","allowSimpleName","provider","colonSeparated","name2","validateIcon","dashSeparated","icon","mergeIconData","getIconData$1","getIcon","iteration","icons","aliases","result2","chars","parseIconSet","not_found","iconData","parseAliases","isVariation","optionalProperties","quicklyValidateIconSet","storage$1","_iconifyStorage","storage","getStorage","providerStorage","missing","newStorage","addIconSet","storage2","getIconFromStorage","simpleNames","allowSimpleNames","allow","getIconData","addIcon","addIconToStorage","defaults","inline","hAlign","vAlign","mergeCustomisations","defaults2","attr","unitsSplit","unitsTest","calculateSize","ratio","precision","oldParts","newParts","preserveAspectRatio","iconToSVG","customisations","transformations","tempValue","rotation","randomPrefix","replaceIDs","newID","escapedID","setAPIModule","getAPIModule","createAPIConfig","resources","maxURL","dataAfterTimeout","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","getAPIConfig","mergeParams","hasParams","paramToString","maxLengthCache","pathCache","fetchModule","detectFetch","fetchAPIModule","prepare","maxLength","maxHostLength","host","calculateMaxLength","getPath","iconsList","uri","defaultError","shouldAbort","callbacks","pendingUpdates","removeCallback","providerCallbacks","defaultConfig","sendQuery","resourcesCount","lastError","queriesSent","timer","doneCallbacks","resetTimer","overwrite","failQuery","clearQueue","execNext","resource","status2","isError","queued","moduleResponse","queriesPending","initRedundancy","cfg","newConfig","setConfig","queries","cleanup","queryCallback","doneCallback","query2","setIndex","getIndex","emptyCallback$1","redundancyCache","sendAPIQuery","redundancy","api","cached","cachedReundancy","getRedundancyCache","emptyCallback","pendingIcons","iconsToLoad","loaderFlags","queueFlags","loadedNewIcons","providerLoaderFlags","providerPendingUpdates","hasPending","updateCallbacks","errorsCache","loadNewIcons","providerIconsToLoad","providerQueueFlags","providerPendingIcons","icons2","store","err2","loadIcons","cleanedIcons","listToIcons","sortedIcons","localeCompare","lastIcon","sortIcons","callCallback","newIcons","lastProvider","lastPrefix","providerNewIcons","pendingQueue","pendingSources","storeCallback","cacheVersion","cachePrefix","countKey","versionKey","session","emptyList","_window","setCount","setItem","getCount","count2","total","loadCache","minTime","destroyCache","initCache","storeCache","flipFromString","flip","alignmentFromString","align","rotateFromString","value2","svgDefaults","inlineDefaults","IconifyPreload","addCollection","IconifyProviders","providers","super","_abortLoading","_loading","_setData","_checkIcon","_icon","iconName","classes","oldProps","newProps","componentProps","localCounter","verticalAlign","_inline","Holds","Subscribed","Subscripcions","subscripcion","Accions","scan","array_cache","NoArray","arrays","loadArray","loadArrays","Home","Middle","choose_hashed_record","scroll","scrollY","Page","Bar","Base","focused"],"mappings":"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AG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EA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","file":"js/index-6782df2f314388f078df.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://library.calliope.social/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 75);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","/** MobX - (c) Michel Weststrate 2015 - 2020 - MIT Licensed */\nvar OBFUSCATED_ERROR = \"An invariant failed, however the error is obfuscated because this is a production build.\";\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\nfunction fail(message) {\n invariant(false, message);\n throw \"X\"; // unreachable\n}\n\nfunction invariant(check, message) {\n if (!check) throw new Error(\"[mobx] \" + (message || OBFUSCATED_ERROR));\n}\n/**\n * Prints a deprecation message, but only one time.\n * Returns false if the deprecated message was already printed before\n */\nvar deprecatedMessages = [];\nfunction deprecated(msg, thing) {\n if (process.env.NODE_ENV === \"production\") return false;\n if (thing) {\n return deprecated(\"'\" + msg + \"', use '\" + thing + \"' instead.\");\n }\n if (deprecatedMessages.indexOf(msg) !== -1) return false;\n deprecatedMessages.push(msg);\n console.error(\"[mobx] Deprecated: \" + msg);\n return true;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) return;\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function () {};\nfunction unique(list) {\n var res = [];\n list.forEach(function (item) {\n if (res.indexOf(item) === -1) res.push(item);\n });\n return res;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (value === null || typeof value !== \"object\") return false;\n var proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return fail(\"Cannot convert to map from '\" + dataStructure + \"'\");\n }\n}\nfunction addHiddenProp(object, propName, value) {\n Object.defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n Object.defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction isPropertyConfigurable(object, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(object, prop);\n return !descriptor || descriptor.configurable !== false && descriptor.writable !== false;\n}\nfunction assertPropertyConfigurable(object, prop) {\n if (process.env.NODE_ENV !== \"production\" && !isPropertyConfigurable(object, prop)) fail(\"Cannot make property '\" + prop.toString() + \"' observable, it is not configurable and writable in the target object\");\n}\nfunction createInstanceofPredicate(name, clazz) {\n var propName = \"isMobX\" + name;\n clazz.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\n/**\n * Returns whether the argument is an array, disregarding observability.\n */\nfunction isArrayLike(x) {\n return Array.isArray(x) || isObservableArray(x);\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\n/**\n * Returns the following: own keys, prototype keys & own symbol keys, if they are enumerable.\n */\nfunction getPlainObjectKeys(object) {\n var enumerables = new Set();\n for (var key in object) enumerables.add(key); // *all* enumerables\n Object.getOwnPropertySymbols(object).forEach(function (k) {\n if (Object.getOwnPropertyDescriptor(object, k).enumerable) enumerables.add(k);\n }); // *own* symbols\n // Note: this implementation is missing enumerable, inherited, symbolic property names! That would however pretty expensive to add,\n // as there is no efficient iterator that returns *all* properties\n return Array.from(enumerables);\n}\nfunction stringifyKey(key) {\n if (key && key.toString) return key.toString();else return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : Object.getOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nvar $mobx = Symbol(\"mobx administration\");\nvar Atom = /** @class */function () {\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name) {\n if (name === void 0) {\n name = \"Atom@\" + getNextId();\n }\n this.name = name;\n this.isPendingUnobservation = false; // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n this.isBeingObserved = false;\n this.observers = new Set();\n this.diffValue = 0;\n this.lastAccessedBy = 0;\n this.lowestObserverState = IDerivationState.NOT_TRACKING;\n }\n Atom.prototype.onBecomeObserved = function () {\n if (this.onBecomeObservedListeners) {\n this.onBecomeObservedListeners.forEach(function (listener) {\n return listener();\n });\n }\n };\n Atom.prototype.onBecomeUnobserved = function () {\n if (this.onBecomeUnobservedListeners) {\n this.onBecomeUnobservedListeners.forEach(function (listener) {\n return listener();\n });\n }\n };\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */\n Atom.prototype.reportObserved = function () {\n return reportObserved(this);\n };\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */\n Atom.prototype.reportChanged = function () {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n Atom.prototype.toString = function () {\n return this.name;\n };\n return Atom;\n}();\nvar isAtom = createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n return Object.is(a, b);\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n default: defaultComparer,\n shallow: shallowComparer\n};\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n};\nfunction __extends(d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n}\nvar mobxDidRunLazyInitializersSymbol = Symbol(\"mobx did run lazy initializers\");\nvar mobxPendingDecorators = Symbol(\"mobx pending decorators\");\nvar enumerableDescriptorCache = {};\nvar nonEnumerableDescriptorCache = {};\nfunction createPropertyInitializerDescriptor(prop, enumerable) {\n var cache = enumerable ? enumerableDescriptorCache : nonEnumerableDescriptorCache;\n return cache[prop] || (cache[prop] = {\n configurable: true,\n enumerable: enumerable,\n get: function () {\n initializeInstance(this);\n return this[prop];\n },\n set: function (value) {\n initializeInstance(this);\n this[prop] = value;\n }\n });\n}\nfunction initializeInstance(target) {\n var e_1, _a;\n if (target[mobxDidRunLazyInitializersSymbol] === true) return;\n var decorators = target[mobxPendingDecorators];\n if (decorators) {\n addHiddenProp(target, mobxDidRunLazyInitializersSymbol, true);\n // Build property key array from both strings and symbols\n var keys = __spread(Object.getOwnPropertySymbols(decorators), Object.keys(decorators));\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n var d = decorators[key];\n d.propertyCreator(target, d.prop, d.descriptor, d.decoratorTarget, d.decoratorArguments);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n}\nfunction createPropDecorator(propertyInitiallyEnumerable, propertyCreator) {\n return function decoratorFactory() {\n var decoratorArguments;\n var decorator = function decorate(target, prop, descriptor, applyImmediately\n // This is a special parameter to signal the direct application of a decorator, allow extendObservable to skip the entire type decoration part,\n // as the instance to apply the decorator to equals the target\n ) {\n if (applyImmediately === true) {\n propertyCreator(target, prop, descriptor, target, decoratorArguments);\n return null;\n }\n if (process.env.NODE_ENV !== \"production\" && !quacksLikeADecorator(arguments)) fail(\"This function is a decorator, but it wasn't invoked like a decorator\");\n if (!Object.prototype.hasOwnProperty.call(target, mobxPendingDecorators)) {\n var inheritedDecorators = target[mobxPendingDecorators];\n addHiddenProp(target, mobxPendingDecorators, __assign({}, inheritedDecorators));\n }\n target[mobxPendingDecorators][prop] = {\n prop: prop,\n propertyCreator: propertyCreator,\n descriptor: descriptor,\n decoratorTarget: target,\n decoratorArguments: decoratorArguments\n };\n return createPropertyInitializerDescriptor(prop, propertyInitiallyEnumerable);\n };\n if (quacksLikeADecorator(arguments)) {\n // @decorator\n decoratorArguments = EMPTY_ARRAY;\n return decorator.apply(null, arguments);\n } else {\n // @decorator(args)\n decoratorArguments = Array.prototype.slice.call(arguments);\n return decorator;\n }\n };\n}\nfunction quacksLikeADecorator(args) {\n return (args.length === 2 || args.length === 3) && (typeof args[1] === \"string\" || typeof args[1] === \"symbol\") || args.length === 4 && args[3] === true;\n}\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) return v;\n // something that can be converted and mutated?\n if (Array.isArray(v)) return observable.array(v, {\n name: name\n });\n if (isPlainObject(v)) return observable.object(v, undefined, {\n name: name\n });\n if (isES6Map(v)) return observable.map(v, {\n name: name\n });\n if (isES6Set(v)) return observable.set(v, {\n name: name\n });\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) return v;\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) return v;\n if (Array.isArray(v)) return observable.array(v, {\n name: name,\n deep: false\n });\n if (isPlainObject(v)) return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n if (isES6Map(v)) return observable.map(v, {\n name: name,\n deep: false\n });\n if (isES6Set(v)) return observable.set(v, {\n name: name,\n deep: false\n });\n return fail(process.env.NODE_ENV !== \"production\" && \"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue, name) {\n if (process.env.NODE_ENV !== \"production\" && isObservable(v)) throw \"observable.struct should not be used with observable values\";\n if (deepEqual(v, oldValue)) return oldValue;\n return v;\n}\nfunction createDecoratorForEnhancer(enhancer) {\n invariant(enhancer);\n var decorator = createPropDecorator(true, function (target, propertyName, descriptor, _decoratorTarget, decoratorArgs) {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(!descriptor || !descriptor.get, \"@observable cannot be used on getter (property \\\"\" + stringifyKey(propertyName) + \"\\\"), use @computed instead.\");\n }\n var initialValue = descriptor ? descriptor.initializer ? descriptor.initializer.call(target) : descriptor.value : undefined;\n asObservableObject(target).addObservableProp(propertyName, initialValue, enhancer);\n });\n var res =\n // Extra process checks, as this happens during module initialization\n typeof process !== \"undefined\" && process.env && process.env.NODE_ENV !== \"production\" ? function observableDecorator() {\n // This wrapper function is just to detect illegal decorator invocations, deprecate in a next version\n // and simply return the created prop decorator\n if (arguments.length < 2) return fail(\"Incorrect decorator invocation. @observable decorator doesn't expect any arguments\");\n return decorator.apply(null, arguments);\n } : decorator;\n res.enhancer = enhancer;\n return res;\n}\n\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction assertValidOption(key) {\n if (!/^(deep|name|equals|defaultDecorator|proxy)$/.test(key)) fail(\"invalid option for (extend)observable: \" + key);\n}\nfunction asCreateObservableOptions(thing) {\n if (thing === null || thing === undefined) return defaultCreateObservableOptions;\n if (typeof thing === \"string\") return {\n name: thing,\n deep: true,\n proxy: true\n };\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof thing !== \"object\") return fail(\"expected options object\");\n Object.keys(thing).forEach(assertValidOption);\n }\n return thing;\n}\nvar deepDecorator = createDecoratorForEnhancer(deepEnhancer);\nvar shallowDecorator = createDecoratorForEnhancer(shallowEnhancer);\nvar refDecorator = createDecoratorForEnhancer(referenceEnhancer);\nvar refStructDecorator = createDecoratorForEnhancer(refStructEnhancer);\nfunction getEnhancerFromOptions(options) {\n return options.defaultDecorator ? options.defaultDecorator.enhancer : options.deep === false ? referenceEnhancer : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (typeof arguments[1] === \"string\" || typeof arguments[1] === \"symbol\") {\n return deepDecorator.apply(null, arguments);\n }\n // it is an observable already, done\n if (isObservable(v)) return v;\n // something that can be converted and mutated?\n var res = isPlainObject(v) ? observable.object(v, arg2, arg3) : Array.isArray(v) ? observable.array(v, arg2) : isES6Map(v) ? observable.map(v, arg2) : isES6Set(v) ? observable.set(v, arg2) : v;\n // this value could be converted to a new observable data structure, return it\n if (res !== v) return res;\n // otherwise, just box it\n fail(process.env.NODE_ENV !== \"production\" && \"The provided value could not be converted into an observable. If you want just create an observable reference to the object use 'observable.box(value)'\");\n}\nvar observableFactories = {\n box: function (value, options) {\n if (arguments.length > 2) incorrectlyUsedAsDecorator(\"box\");\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function (initialValues, options) {\n if (arguments.length > 2) incorrectlyUsedAsDecorator(\"array\");\n var o = asCreateObservableOptions(options);\n return createObservableArray(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function (initialValues, options) {\n if (arguments.length > 2) incorrectlyUsedAsDecorator(\"map\");\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function (initialValues, options) {\n if (arguments.length > 2) incorrectlyUsedAsDecorator(\"set\");\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function (props, decorators, options) {\n if (typeof arguments[1] === \"string\") incorrectlyUsedAsDecorator(\"object\");\n var o = asCreateObservableOptions(options);\n if (o.proxy === false) {\n return extendObservable({}, props, decorators, o);\n } else {\n var defaultDecorator = getDefaultDecoratorFromObjectOptions(o);\n var base = extendObservable({}, undefined, undefined, o);\n var proxy = createDynamicObservableObject(base);\n extendObservableObjectWithProperties(proxy, props, decorators, defaultDecorator);\n return proxy;\n }\n },\n ref: refDecorator,\n shallow: shallowDecorator,\n deep: deepDecorator,\n struct: refStructDecorator\n};\nvar observable = createObservable;\n// weird trick to keep our typings nicely with our funcs, and still extend the observable function\nObject.keys(observableFactories).forEach(function (name) {\n return observable[name] = observableFactories[name];\n});\nfunction incorrectlyUsedAsDecorator(methodName) {\n fail(\n // process.env.NODE_ENV !== \"production\" &&\n \"Expected one or two arguments to observable.\" + methodName + \". Did you accidentally try to use observable.\" + methodName + \" as decorator?\");\n}\nvar computedDecorator = createPropDecorator(false, function (instance, propertyName, descriptor, decoratorTarget, decoratorArgs) {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(descriptor && descriptor.get, \"Trying to declare a computed value for unspecified getter '\" + stringifyKey(propertyName) + \"'\");\n }\n var get = descriptor.get,\n set = descriptor.set; // initialValue is the descriptor for get / set props\n // Optimization: faster on decorator target or instance? Assuming target\n // Optimization: find out if declaring on instance isn't just faster. (also makes the property descriptor simpler). But, more memory usage..\n // Forcing instance now, fixes hot reloadig issues on React Native:\n var options = decoratorArgs[0] || {};\n asObservableObject(instance).addComputedProp(instance, propertyName, __assign({\n get: get,\n set: set,\n context: instance\n }, options));\n});\nvar computedStructDecorator = computedDecorator({\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2, arg3) {\n if (typeof arg2 === \"string\") {\n // @computed\n return computedDecorator.apply(null, arguments);\n }\n if (arg1 !== null && typeof arg1 === \"object\" && arguments.length === 1) {\n // @computed({ options })\n return computedDecorator.apply(null, arguments);\n }\n // computed(expr, options?)\n if (process.env.NODE_ENV !== \"production\") {\n invariant(typeof arg1 === \"function\", \"First argument to `computed` should be an expression.\");\n invariant(arguments.length < 3, \"Computed takes one or two arguments if used as function\");\n }\n var opts = typeof arg2 === \"object\" ? arg2 : {};\n opts.get = arg1;\n opts.set = typeof arg2 === \"function\" ? arg2 : opts.set;\n opts.name = opts.name || arg1.name || \"\"; /* for generated name */\n return new ComputedValue(opts);\n};\ncomputed.struct = computedStructDecorator;\nvar IDerivationState;\n(function (IDerivationState) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState[IDerivationState[\"NOT_TRACKING\"] = -1] = \"NOT_TRACKING\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState[IDerivationState[\"UP_TO_DATE\"] = 0] = \"UP_TO_DATE\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState[IDerivationState[\"POSSIBLY_STALE\"] = 1] = \"POSSIBLY_STALE\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState[IDerivationState[\"STALE\"] = 2] = \"STALE\";\n})(IDerivationState || (IDerivationState = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = /** @class */function () {\n function CaughtException(cause) {\n this.cause = cause;\n // Empty\n }\n\n return CaughtException;\n}();\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState) {\n case IDerivationState.UP_TO_DATE:\n return false;\n case IDerivationState.NOT_TRACKING:\n case IDerivationState.STALE:\n return true;\n case IDerivationState.POSSIBLY_STALE:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState === IDerivationState.STALE) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\n// function invariantShouldCompute(derivation: IDerivation) {\n// const newDepState = (derivation as any).dependenciesState\n// if (\n// process.env.NODE_ENV === \"production\" &&\n// (newDepState === IDerivationState.POSSIBLY_STALE ||\n// newDepState === IDerivationState.NOT_TRACKING)\n// )\n// fail(\"Illegal dependency state\")\n// }\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\n\nfunction checkIfStateModificationsAreAllowed(atom) {\n var hasObservers = atom.observers.size > 0;\n // Should never be possible to change an observed observable from inside computed, see #798\n if (globalState.computationDepth > 0 && hasObservers) fail(process.env.NODE_ENV !== \"production\" && \"Computed values are not allowed to cause side effects by changing observables that are already being observed. Tried to modify: \" + atom.name);\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"strict\")) fail(process.env.NODE_ENV !== \"production\" && (globalState.enforceActions ? \"Since strict-mode is enabled, changing observed observable values outside actions is not allowed. Please wrap the code in an `action` if this change is intended. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, the render function of a React component? Tried to modify: \") + atom.name);\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if (process.env.NODE_ENV !== \"production\" && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable \" + observable.name + \" being read outside a reactive context\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n changeDependenciesStateTo0(derivation);\n derivation.newObserving = new Array(derivation.observing.length + 100);\n derivation.unboundDepsCount = 0;\n derivation.runId = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (process.env.NODE_ENV === \"production\") return;\n if (derivation.observing.length !== 0) return;\n if (globalState.reactionRequiresObservable || derivation.requiresObservable) {\n console.warn(\"[mobx] Derivation \" + derivation.name + \" is created/updated without reading any observable value\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing;\n var observing = derivation.observing = derivation.newObserving;\n var lowestNewObservingDerivationState = IDerivationState.UP_TO_DATE;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue === 0) {\n dep.diffValue = 1;\n if (i0 !== i) observing[i0] = dep;\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState;\n }\n }\n observing.length = i0;\n derivation.newObserving = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var dep = prevObserving[l];\n if (dep.diffValue === 0) {\n removeObserver(dep, derivation);\n }\n dep.diffValue = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var dep = observing[i0];\n if (dep.diffValue === 1) {\n dep.diffValue = 0;\n addObserver(dep, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState.UP_TO_DATE) {\n derivation.dependenciesState = lowestNewObservingDerivationState;\n derivation.onBecomeStale();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing;\n derivation.observing = [];\n var i = obs.length;\n while (i--) removeObserver(obs[i], derivation);\n derivation.dependenciesState = IDerivationState.NOT_TRACKING;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState === IDerivationState.UP_TO_DATE) return;\n derivation.dependenciesState = IDerivationState.UP_TO_DATE;\n var obs = derivation.observing;\n var i = obs.length;\n while (i--) obs[i].lowestObserverState = IDerivationState.UP_TO_DATE;\n}\n\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar functionNameDescriptor = Object.getOwnPropertyDescriptor(function () {}, \"name\");\nvar isFunctionNameConfigurable = functionNameDescriptor && functionNameDescriptor.configurable;\nfunction createAction(actionName, fn, ref) {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(typeof fn === \"function\", \"`action` can only be invoked on functions\");\n if (typeof actionName !== \"string\" || !actionName) fail(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n var res = function () {\n return executeAction(actionName, fn, ref || this, arguments);\n };\n res.isMobxAction = true;\n if (process.env.NODE_ENV !== \"production\") {\n if (isFunctionNameConfigurable) {\n Object.defineProperty(res, \"name\", {\n value: actionName\n });\n }\n }\n return res;\n}\nfunction executeAction(actionName, fn, scope, args) {\n var runInfo = _startAction(actionName, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, scope, args) {\n var notifySpy = isSpyEnabled() && !!actionName;\n var startTime = 0;\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n startTime = Date.now();\n var l = args && args.length || 0;\n var flattendArgs = new Array(l);\n if (l > 0) for (var i = 0; i < l; i++) flattendArgs[i] = args[i];\n spyReportStart({\n type: \"action\",\n name: actionName,\n object: scope,\n arguments: flattendArgs\n });\n }\n var prevDerivation = untrackedStart();\n startBatch();\n var prevAllowStateChanges = allowStateChangesStart(true);\n var prevAllowStateReads = allowStateReadsStart(true);\n var runInfo = {\n prevDerivation: prevDerivation,\n prevAllowStateChanges: prevAllowStateChanges,\n prevAllowStateReads: prevAllowStateReads,\n notifySpy: notifySpy,\n startTime: startTime,\n actionId: nextActionId++,\n parentActionId: currentActionId\n };\n currentActionId = runInfo.actionId;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId) {\n fail(\"invalid action stack. did you forget to finish an action?\");\n }\n currentActionId = runInfo.parentActionId;\n if (runInfo.error !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges);\n allowStateReadsEnd(runInfo.prevAllowStateReads);\n endBatch();\n untrackedEnd(runInfo.prevDerivation);\n if (runInfo.notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd({\n time: Date.now() - runInfo.startTime\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n var res;\n try {\n res = func();\n } finally {\n allowStateChangesEnd(prev);\n }\n return res;\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\nfunction allowStateChangesInsideComputed(func) {\n var prev = globalState.computationDepth;\n globalState.computationDepth = 0;\n var res;\n try {\n res = func();\n } finally {\n globalState.computationDepth = prev;\n }\n return res;\n}\nvar ObservableValue = /** @class */function (_super) {\n __extends(ObservableValue, _super);\n function ObservableValue(value, enhancer, name, notifySpy, equals) {\n if (name === void 0) {\n name = \"ObservableValue@\" + getNextId();\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer.default;\n }\n var _this = _super.call(this, name) || this;\n _this.enhancer = enhancer;\n _this.name = name;\n _this.equals = equals;\n _this.hasUnreportedChange = false;\n _this.value = enhancer(value, undefined, name);\n if (notifySpy && isSpyEnabled() && process.env.NODE_ENV !== \"production\") {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: \"create\",\n name: _this.name,\n newValue: \"\" + _this.value\n });\n }\n return _this;\n }\n ObservableValue.prototype.dehanceValue = function (value) {\n if (this.dehancer !== undefined) return this.dehancer(value);\n return value;\n };\n ObservableValue.prototype.set = function (newValue) {\n var oldValue = this.value;\n newValue = this.prepareNewValue(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart({\n type: \"update\",\n name: this.name,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue(newValue);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n }\n };\n ObservableValue.prototype.prepareNewValue = function (newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: \"update\",\n newValue: newValue\n });\n if (!change) return globalState.UNCHANGED;\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value, this.name);\n return this.equals(this.value, newValue) ? globalState.UNCHANGED : newValue;\n };\n ObservableValue.prototype.setNewValue = function (newValue) {\n var oldValue = this.value;\n this.value = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: \"update\",\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n ObservableValue.prototype.get = function () {\n this.reportObserved();\n return this.dehanceValue(this.value);\n };\n ObservableValue.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n ObservableValue.prototype.observe = function (listener, fireImmediately) {\n if (fireImmediately) listener({\n object: this,\n type: \"update\",\n newValue: this.value,\n oldValue: undefined\n });\n return registerListener(this, listener);\n };\n ObservableValue.prototype.toJSON = function () {\n return this.get();\n };\n ObservableValue.prototype.toString = function () {\n return this.name + \"[\" + this.value + \"]\";\n };\n ObservableValue.prototype.valueOf = function () {\n return toPrimitive(this.get());\n };\n ObservableValue.prototype[Symbol.toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\nvar ComputedValue = /** @class */function () {\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structualComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState = IDerivationState.NOT_TRACKING;\n this.observing = []; // nodes we are looking at. Our value depends on these nodes\n this.newObserving = null; // during tracking it's an array with new observed observers\n this.isBeingObserved = false;\n this.isPendingUnobservation = false;\n this.observers = new Set();\n this.diffValue = 0;\n this.runId = 0;\n this.lastAccessedBy = 0;\n this.lowestObserverState = IDerivationState.UP_TO_DATE;\n this.unboundDepsCount = 0;\n this.__mapid = \"#\" + getNextId();\n this.value = new CaughtException(null);\n this.isComputing = false; // to check for cycles\n this.isRunningSetter = false;\n this.isTracing = TraceMode.NONE;\n invariant(options.get, \"missing option for computed: get\");\n this.derivation = options.get;\n this.name = options.name || \"ComputedValue@\" + getNextId();\n if (options.set) this.setter = createAction(this.name + \"-setter\", options.set);\n this.equals = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer.default);\n this.scope = options.context;\n this.requiresReaction = !!options.requiresReaction;\n this.keepAlive = !!options.keepAlive;\n }\n ComputedValue.prototype.onBecomeStale = function () {\n propagateMaybeChanged(this);\n };\n ComputedValue.prototype.onBecomeObserved = function () {\n if (this.onBecomeObservedListeners) {\n this.onBecomeObservedListeners.forEach(function (listener) {\n return listener();\n });\n }\n };\n ComputedValue.prototype.onBecomeUnobserved = function () {\n if (this.onBecomeUnobservedListeners) {\n this.onBecomeUnobservedListeners.forEach(function (listener) {\n return listener();\n });\n }\n };\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */\n ComputedValue.prototype.get = function () {\n if (this.isComputing) fail(\"Cycle detected in computation \" + this.name + \": \" + this.derivation);\n if (globalState.inBatch === 0 && this.observers.size === 0 && !this.keepAlive) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead();\n startBatch(); // See perf test 'computed memoization'\n this.value = this.computeValue(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) if (this.trackAndCompute()) propagateChangeConfirmed(this);\n }\n var result = this.value;\n if (isCaughtException(result)) throw result.cause;\n return result;\n };\n ComputedValue.prototype.peek = function () {\n var res = this.computeValue(false);\n if (isCaughtException(res)) throw res.cause;\n return res;\n };\n ComputedValue.prototype.set = function (value) {\n if (this.setter) {\n invariant(!this.isRunningSetter, \"The setter of computed value '\" + this.name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\");\n this.isRunningSetter = true;\n try {\n this.setter.call(this.scope, value);\n } finally {\n this.isRunningSetter = false;\n }\n } else invariant(false, process.env.NODE_ENV !== \"production\" && \"[ComputedValue '\" + this.name + \"'] It is not possible to assign a new value to a computed value.\");\n };\n ComputedValue.prototype.trackAndCompute = function () {\n if (isSpyEnabled() && process.env.NODE_ENV !== \"production\") {\n spyReport({\n object: this.scope,\n type: \"compute\",\n name: this.name\n });\n }\n var oldValue = this.value;\n var wasSuspended = /* see #1208 */this.dependenciesState === IDerivationState.NOT_TRACKING;\n var newValue = this.computeValue(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals(oldValue, newValue);\n if (changed) {\n this.value = newValue;\n }\n return changed;\n };\n ComputedValue.prototype.computeValue = function (track) {\n this.isComputing = true;\n globalState.computationDepth++;\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope);\n } else {\n try {\n res = this.derivation.call(this.scope);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n globalState.computationDepth--;\n this.isComputing = false;\n return res;\n };\n ComputedValue.prototype.suspend = function () {\n if (!this.keepAlive) {\n clearObserving(this);\n this.value = undefined; // don't hold on to computed value!\n }\n };\n\n ComputedValue.prototype.observe = function (listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n type: \"update\",\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n ComputedValue.prototype.warnAboutUntrackedRead = function () {\n if (process.env.NODE_ENV === \"production\") return;\n if (this.requiresReaction === true) {\n fail(\"[mobx] Computed value \" + this.name + \" is read outside a reactive context\");\n }\n if (this.isTracing !== TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + this.name + \"' is being read outside a reactive context. Doing a full recompute\");\n }\n if (globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value \" + this.name + \" is being read outside a reactive context. Doing a full recompute\");\n }\n };\n ComputedValue.prototype.toJSON = function () {\n return this.get();\n };\n ComputedValue.prototype.toString = function () {\n return this.name + \"[\" + this.derivation.toString() + \"]\";\n };\n ComputedValue.prototype.valueOf = function () {\n return toPrimitive(this.get());\n };\n ComputedValue.prototype[Symbol.toPrimitive] = function () {\n return this.valueOf();\n };\n return ComputedValue;\n}();\nvar isComputedValue = createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\"];\nvar MobXGlobals = /** @class */function () {\n function MobXGlobals() {\n /**\n * MobXGlobals version.\n * MobX compatiblity with other versions loaded in memory as long as this version matches.\n * It indicates that the global state still stores similar information\n *\n * N.B: this version is unrelated to the package version of MobX, and is only the version of the\n * internal state storage of MobX, and can be the same across many different package versions\n */\n this.version = 5;\n /**\n * globally unique token to signal unchanged\n */\n this.UNCHANGED = {};\n /**\n * Currently running derivation\n */\n this.trackingDerivation = null;\n /**\n * Are we running a computation currently? (not a reaction)\n */\n this.computationDepth = 0;\n /**\n * Each time a derivation is tracked, it is assigned a unique run-id\n */\n this.runId = 0;\n /**\n * 'guid' for general purpose. Will be persisted amongst resets.\n */\n this.mobxGuid = 0;\n /**\n * Are we in a batch block? (and how many of them)\n */\n this.inBatch = 0;\n /**\n * Observables that don't have observers anymore, and are about to be\n * suspended, unless somebody else accesses it in the same batch\n *\n * @type {IObservable[]}\n */\n this.pendingUnobservations = [];\n /**\n * List of scheduled, not yet executed, reactions.\n */\n this.pendingReactions = [];\n /**\n * Are we currently processing reactions?\n */\n this.isRunningReactions = false;\n /**\n * Is it allowed to change observables at this point?\n * In general, MobX doesn't allow that when running computations and React.render.\n * To ensure that those functions stay pure.\n */\n this.allowStateChanges = true;\n /**\n * Is it allowed to read observables at this point?\n * Used to hold the state needed for `observableRequiresReaction`\n */\n this.allowStateReads = true;\n /**\n * If strict mode is enabled, state changes are by default not allowed\n */\n this.enforceActions = false;\n /**\n * Spy callbacks\n */\n this.spyListeners = [];\n /**\n * Globally attached error handlers that react specifically to errors in reactions\n */\n this.globalReactionErrorHandlers = [];\n /**\n * Warn if computed values are accessed outside a reactive context\n */\n this.computedRequiresReaction = false;\n /**\n * (Experimental)\n * Warn if you try to create to derivation / reactive context without accessing any observable.\n */\n this.reactionRequiresObservable = false;\n /**\n * (Experimental)\n * Warn if observables are accessed outside a reactive context\n */\n this.observableRequiresReaction = false;\n /**\n * Allows overwriting of computed properties, useful in tests but not prod as it can cause\n * memory leaks. See https://github.com/mobxjs/mobx/issues/1867\n */\n this.computedConfigurable = false;\n /*\n * Don't catch and rethrow exceptions. This is useful for inspecting the state of\n * the stack when an exception occurs while debugging.\n */\n this.disableErrorBoundaries = false;\n /*\n * If true, we are already handling an exception in an action. Any errors in reactions should be suppressed, as\n * they are not the cause, see: https://github.com/mobxjs/mobx/issues/1836\n */\n this.suppressReactionErrors = false;\n }\n return MobXGlobals;\n}();\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = function () {\n var global = getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) canMergeGlobalState = false;\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) canMergeGlobalState = false;\n if (!canMergeGlobalState) {\n setTimeout(function () {\n if (!isolateCalled) {\n fail(\"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\");\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) global.__mobxGlobals.UNCHANGED = {}; // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) fail(\"isolateGlobalState should be called before MobX is running any reactions\");\n isolateCalled = true;\n if (canMergeGlobalState) {\n if (--getGlobal().__mobxInstanceCount === 0) getGlobal().__mobxGlobals = undefined;\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) if (persistentKeys.indexOf(key) === -1) globalState[key] = defaultGlobals[key];\n globalState.allowStateChanges = !globalState.enforceActions;\n}\nfunction hasObservers(observable) {\n return observable.observers && observable.observers.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers.add(node);\n if (observable.lowestObserverState > node.dependenciesState) observable.lowestObserverState = node.dependenciesState;\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\n\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers.delete(node);\n if (observable.observers.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\n\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation = false;\n if (observable.observers.size === 0) {\n if (observable.isBeingObserved) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved = false;\n observable.onBecomeUnobserved();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observable of another, etc..\n observable.suspend();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId !== observable.lastAccessedBy) {\n observable.lastAccessedBy = derivation.runId;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving[derivation.unboundDepsCount++] = observable;\n if (!observable.isBeingObserved) {\n observable.isBeingObserved = true;\n observable.onBecomeObserved();\n }\n }\n return true;\n } else if (observable.observers.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState === IDerivationState.STALE) return;\n observable.lowestObserverState = IDerivationState.STALE;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers.forEach(function (d) {\n if (d.dependenciesState === IDerivationState.UP_TO_DATE) {\n if (d.isTracing !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale();\n }\n d.dependenciesState = IDerivationState.STALE;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState === IDerivationState.STALE) return;\n observable.lowestObserverState = IDerivationState.STALE;\n observable.observers.forEach(function (d) {\n if (d.dependenciesState === IDerivationState.POSSIBLY_STALE) d.dependenciesState = IDerivationState.STALE;else if (d.dependenciesState === IDerivationState.UP_TO_DATE // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) observable.lowestObserverState = IDerivationState.UP_TO_DATE;\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState !== IDerivationState.UP_TO_DATE) return;\n observable.lowestObserverState = IDerivationState.POSSIBLY_STALE;\n observable.observers.forEach(function (d) {\n if (d.dependenciesState === IDerivationState.UP_TO_DATE) {\n d.dependenciesState = IDerivationState.POSSIBLY_STALE;\n if (d.isTracing !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name + \"' is invalidated due to a change in: '\" + observable.name + \"'\");\n if (derivation.isTracing === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name + \"' is being traced and '\" + observable.name + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + new Array(depth).join(\"\\t\") + tree.name); // MWE: not the fastest, but the easiest way :)\n if (tree.dependencies) tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n}\nvar Reaction = /** @class */function () {\n function Reaction(name, onInvalidate, errorHandler, requiresObservable) {\n if (name === void 0) {\n name = \"Reaction@\" + getNextId();\n }\n if (requiresObservable === void 0) {\n requiresObservable = false;\n }\n this.name = name;\n this.onInvalidate = onInvalidate;\n this.errorHandler = errorHandler;\n this.requiresObservable = requiresObservable;\n this.observing = []; // nodes we are looking at. Our value depends on these nodes\n this.newObserving = [];\n this.dependenciesState = IDerivationState.NOT_TRACKING;\n this.diffValue = 0;\n this.runId = 0;\n this.unboundDepsCount = 0;\n this.__mapid = \"#\" + getNextId();\n this.isDisposed = false;\n this._isScheduled = false;\n this._isTrackPending = false;\n this._isRunning = false;\n this.isTracing = TraceMode.NONE;\n }\n Reaction.prototype.onBecomeStale = function () {\n this.schedule();\n };\n Reaction.prototype.schedule = function () {\n if (!this._isScheduled) {\n this._isScheduled = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n Reaction.prototype.isScheduled = function () {\n return this._isScheduled;\n };\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */\n Reaction.prototype.runReaction = function () {\n if (!this.isDisposed) {\n startBatch();\n this._isScheduled = false;\n if (shouldCompute(this)) {\n this._isTrackPending = true;\n try {\n this.onInvalidate();\n if (this._isTrackPending && isSpyEnabled() && process.env.NODE_ENV !== \"production\") {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation(e);\n }\n }\n endBatch();\n }\n };\n Reaction.prototype.track = function (fn) {\n if (this.isDisposed) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if (notify && process.env.NODE_ENV !== \"production\") {\n startTime = Date.now();\n spyReportStart({\n name: this.name,\n type: \"reaction\"\n });\n }\n this._isRunning = true;\n var result = trackDerivedFunction(this, fn, undefined);\n this._isRunning = false;\n this._isTrackPending = false;\n if (this.isDisposed) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) this.reportExceptionInDerivation(result.cause);\n if (notify && process.env.NODE_ENV !== \"production\") {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n Reaction.prototype.reportExceptionInDerivation = function (error) {\n var _this = this;\n if (this.errorHandler) {\n this.errorHandler(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) throw error;\n var message = \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\";\n if (globalState.suppressReactionErrors) {\n console.warn(\"[mobx] (error in reaction '\" + this.name + \"' suppressed, fix error of causing action below)\"); // prettier-ignore\n } else {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n }\n\n if (isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n Reaction.prototype.dispose = function () {\n if (!this.isDisposed) {\n this.isDisposed = true;\n if (!this._isRunning) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n Reaction.prototype.getDisposer = function () {\n var r = this.dispose.bind(this);\n r[$mobx] = this;\n return r;\n };\n Reaction.prototype.toString = function () {\n return \"Reaction[\" + this.name + \"]\";\n };\n Reaction.prototype.trace = function (enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) globalState.globalReactionErrorHandlers.splice(idx, 1);\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function (f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) return;\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(\"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]));\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) remainingReactions[i].runReaction();\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function (f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\nfunction isSpyEnabled() {\n return process.env.NODE_ENV !== \"production\" && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (process.env.NODE_ENV === \"production\") return; // dead code elimination can do the rest\n if (!globalState.spyListeners.length) return;\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) listeners[i](event);\n}\nfunction spyReportStart(event) {\n if (process.env.NODE_ENV === \"production\") return;\n var change = __assign(__assign({}, event), {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (process.env.NODE_ENV === \"production\") return;\n if (change) spyReport(__assign(__assign({}, change), {\n spyReportEnd: true\n }));else spyReport(END_EVENT);\n}\nfunction spy(listener) {\n if (process.env.NODE_ENV === \"production\") {\n console.warn(\"[mobx.spy] Is a no-op in production builds\");\n return function () {};\n } else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\nfunction dontReassignFields() {\n fail(process.env.NODE_ENV !== \"production\" && \"@action fields are not reassignable\");\n}\nfunction namedActionDecorator(name) {\n return function (target, prop, descriptor) {\n if (descriptor) {\n if (process.env.NODE_ENV !== \"production\" && descriptor.get !== undefined) {\n return fail(\"@action cannot be used with getters\");\n }\n // babel / typescript\n // @action method() { }\n if (descriptor.value) {\n // typescript\n return {\n value: createAction(name, descriptor.value),\n enumerable: false,\n configurable: true,\n writable: true // for typescript, this must be writable, otherwise it cannot inherit :/ (see inheritable actions test)\n };\n }\n // babel only: @action method = () => {}\n var initializer_1 = descriptor.initializer;\n return {\n enumerable: false,\n configurable: true,\n writable: true,\n initializer: function () {\n // N.B: we can't immediately invoke initializer; this would be wrong\n return createAction(name, initializer_1.call(this));\n }\n };\n }\n // bound instance methods\n return actionFieldDecorator(name).apply(this, arguments);\n };\n}\nfunction actionFieldDecorator(name) {\n // Simple property that writes on first invocation to the current instance\n return function (target, prop, descriptor) {\n Object.defineProperty(target, prop, {\n configurable: true,\n enumerable: false,\n get: function () {\n return undefined;\n },\n set: function (value) {\n addHiddenProp(this, prop, action(name, value));\n }\n });\n };\n}\nfunction boundActionDecorator(target, propertyName, descriptor, applyToInstance) {\n if (applyToInstance === true) {\n defineBoundAction(target, propertyName, descriptor.value);\n return null;\n }\n if (descriptor) {\n // if (descriptor.value)\n // Typescript / Babel: @action.bound method() { }\n // also: babel @action.bound method = () => {}\n return {\n configurable: true,\n enumerable: false,\n get: function () {\n defineBoundAction(this, propertyName, descriptor.value || descriptor.initializer.call(this));\n return this[propertyName];\n },\n set: dontReassignFields\n };\n }\n // field decorator Typescript @action.bound method = () => {}\n return {\n enumerable: false,\n configurable: true,\n set: function (v) {\n defineBoundAction(this, propertyName, v);\n },\n get: function () {\n return undefined;\n }\n };\n}\nvar action = function action(arg1, arg2, arg3, arg4) {\n // action(fn() {})\n if (arguments.length === 1 && typeof arg1 === \"function\") return createAction(arg1.name || \"\", arg1);\n // action(\"name\", fn() {})\n if (arguments.length === 2 && typeof arg2 === \"function\") return createAction(arg1, arg2);\n // @action(\"name\") fn() {}\n if (arguments.length === 1 && typeof arg1 === \"string\") return namedActionDecorator(arg1);\n // @action fn() {}\n if (arg4 === true) {\n // apply to instance immediately\n addHiddenProp(arg1, arg2, createAction(arg1.name || arg2, arg3.value, this));\n } else {\n return namedActionDecorator(arg2).apply(null, arguments);\n }\n};\naction.bound = boundActionDecorator;\nfunction runInAction(arg1, arg2) {\n var actionName = typeof arg1 === \"string\" ? arg1 : arg1.name || \"\";\n var fn = typeof arg1 === \"function\" ? arg1 : arg2;\n if (process.env.NODE_ENV !== \"production\") {\n invariant(typeof fn === \"function\" && fn.length === 0, \"`runInAction` expects a function without arguments\");\n if (typeof actionName !== \"string\" || !actionName) fail(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n return executeAction(actionName, fn, this, undefined);\n}\nfunction isAction(thing) {\n return typeof thing === \"function\" && thing.isMobxAction === true;\n}\nfunction defineBoundAction(target, propertyName, fn) {\n addHiddenProp(target, propertyName, createAction(propertyName, fn.bind(target)));\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (process.env.NODE_ENV !== \"production\") {\n invariant(typeof view === \"function\", \"Autorun expects a function as first argument\");\n invariant(isAction(view) === false, \"Autorun does not accept actions since actions are untrackable\");\n }\n var name = opts && opts.name || view.name || \"Autorun@\" + getNextId();\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler_1 = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled_1 = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled_1) {\n isScheduled_1 = true;\n scheduler_1(function () {\n isScheduled_1 = false;\n if (!reaction.isDisposed) reaction.track(reactionRunner);\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n reaction.schedule();\n return reaction.getDisposer();\n}\nvar run = function (f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (process.env.NODE_ENV !== \"production\") {\n invariant(typeof expression === \"function\", \"First argument to reaction should be a function\");\n invariant(typeof opts === \"object\", \"Third argument of reactions should be an object\");\n }\n var name = opts.name || \"Reaction@\" + getNextId();\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer.default;\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false; // Q: move into reaction runner?\n if (r.isDisposed) return;\n var changed = false;\n r.track(function () {\n var nextValue = expression(r);\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) effectAction(value, r);\n if (!firstTime && changed === true) effectAction(value, r);\n if (firstTime) firstTime = false;\n }\n r.schedule();\n return r.getDisposer();\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(\"onBecomeObserved\", thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(\"onBecomeUnobserved\", thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = typeof arg3 === \"function\" ? arg3 : arg2;\n var listenersKey = hook + \"Listeners\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n var orig = atom[hook];\n if (typeof orig !== \"function\") return fail(process.env.NODE_ENV !== \"production\" && \"Not an atom that can be (un)observed\");\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners.delete(cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\nfunction configure(options) {\n var enforceActions = options.enforceActions,\n computedRequiresReaction = options.computedRequiresReaction,\n computedConfigurable = options.computedConfigurable,\n disableErrorBoundaries = options.disableErrorBoundaries,\n reactionScheduler = options.reactionScheduler,\n reactionRequiresObservable = options.reactionRequiresObservable,\n observableRequiresReaction = options.observableRequiresReaction;\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n if (enforceActions !== undefined) {\n if (typeof enforceActions === \"boolean\" || enforceActions === \"strict\") deprecated(\"Deprecated value for 'enforceActions', use 'false' => '\\\"never\\\"', 'true' => '\\\"observed\\\"', '\\\"strict\\\"' => \\\"'always'\\\" instead\");\n var ea = void 0;\n switch (enforceActions) {\n case true:\n case \"observed\":\n ea = true;\n break;\n case false:\n case \"never\":\n ea = false;\n break;\n case \"strict\":\n case \"always\":\n ea = \"strict\";\n break;\n default:\n fail(\"Invalid value for 'enforceActions': '\" + enforceActions + \"', expected 'never', 'always' or 'observed'\");\n }\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === \"strict\" ? false : true;\n }\n if (computedRequiresReaction !== undefined) {\n globalState.computedRequiresReaction = !!computedRequiresReaction;\n }\n if (reactionRequiresObservable !== undefined) {\n globalState.reactionRequiresObservable = !!reactionRequiresObservable;\n }\n if (observableRequiresReaction !== undefined) {\n globalState.observableRequiresReaction = !!observableRequiresReaction;\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n }\n if (computedConfigurable !== undefined) {\n globalState.computedConfigurable = !!computedConfigurable;\n }\n if (disableErrorBoundaries !== undefined) {\n if (disableErrorBoundaries === true) console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n globalState.disableErrorBoundaries = !!disableErrorBoundaries;\n }\n if (reactionScheduler) {\n setReactionScheduler(reactionScheduler);\n }\n}\nfunction decorate(thing, decorators) {\n process.env.NODE_ENV !== \"production\" && invariant(isPlainObject(decorators), \"Decorators should be a key value map\");\n var target = typeof thing === \"function\" ? thing.prototype : thing;\n var _loop_1 = function (prop) {\n var propertyDecorators = decorators[prop];\n if (!Array.isArray(propertyDecorators)) {\n propertyDecorators = [propertyDecorators];\n }\n process.env.NODE_ENV !== \"production\" && invariant(propertyDecorators.every(function (decorator) {\n return typeof decorator === \"function\";\n }), \"Decorate: expected a decorator function or array of decorator functions for '\" + prop + \"'\");\n var descriptor = Object.getOwnPropertyDescriptor(target, prop);\n var newDescriptor = propertyDecorators.reduce(function (accDescriptor, decorator) {\n return decorator(target, prop, accDescriptor);\n }, descriptor);\n if (newDescriptor) Object.defineProperty(target, prop, newDescriptor);\n };\n for (var prop in decorators) {\n _loop_1(prop);\n }\n return thing;\n}\nfunction extendObservable(target, properties, decorators, options) {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(arguments.length >= 2 && arguments.length <= 4, \"'extendObservable' expected 2-4 arguments\");\n invariant(typeof target === \"object\", \"'extendObservable' expects an object as first argument\");\n invariant(!isObservableMap(target), \"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n options = asCreateObservableOptions(options);\n var defaultDecorator = getDefaultDecoratorFromObjectOptions(options);\n initializeInstance(target); // Fixes #1740\n asObservableObject(target, options.name, defaultDecorator.enhancer); // make sure object is observable, even without initial props\n if (properties) extendObservableObjectWithProperties(target, properties, decorators, defaultDecorator);\n return target;\n}\nfunction getDefaultDecoratorFromObjectOptions(options) {\n return options.defaultDecorator || (options.deep === false ? refDecorator : deepDecorator);\n}\nfunction extendObservableObjectWithProperties(target, properties, decorators, defaultDecorator) {\n var e_1, _a, e_2, _b;\n if (process.env.NODE_ENV !== \"production\") {\n invariant(!isObservable(properties), \"Extending an object with another observable (object) is not supported. Please construct an explicit propertymap, using `toJS` if need. See issue #540\");\n if (decorators) {\n var keys = getPlainObjectKeys(decorators);\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n if (!(key in properties)) fail(\"Trying to declare a decorator for unspecified property '\" + stringifyKey(key) + \"'\");\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n }\n startBatch();\n try {\n var keys = ownKeys(properties);\n try {\n for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {\n var key = keys_2_1.value;\n var descriptor = Object.getOwnPropertyDescriptor(properties, key);\n if (process.env.NODE_ENV !== \"production\") {\n if (!isPlainObject(properties)) fail(\"'extendObservable' only accepts plain objects as second argument\");\n if (isComputed(descriptor.value)) fail(\"Passing a 'computed' as initial property value is no longer supported by extendObservable. Use a getter or decorator instead\");\n }\n var decorator = decorators && key in decorators ? decorators[key] : descriptor.get ? computedDecorator : defaultDecorator;\n if (process.env.NODE_ENV !== \"production\" && typeof decorator !== \"function\") fail(\"Not a valid decorator for '\" + stringifyKey(key) + \"', got: \" + decorator);\n var resultDescriptor = decorator(target, key, descriptor, true);\n if (resultDescriptor // otherwise, assume already applied, due to `applyToInstance`\n ) Object.defineProperty(target, key, resultDescriptor);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (keys_2_1 && !keys_2_1.done && (_b = keys_2.return)) _b.call(keys_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n } finally {\n endBatch();\n }\n}\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name\n };\n if (node.observing && node.observing.length > 0) result.dependencies = unique(node.observing).map(nodeToDependencyTree);\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name\n };\n if (hasObservers(node)) result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n return result;\n}\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nfunction flow(generator) {\n if (arguments.length !== 1) fail(!!process.env.NODE_ENV && \"Flow expects 1 argument and cannot be used as decorator\");\n var name = generator.name || \"\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n return function () {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.throw).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (ret && typeof ret.then === \"function\") {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) return resolve(ret.value);\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) cancelPromise(pendingPromise);\n // Finally block can return (or yield) stuff..\n var res = gen.return(undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n\n return promise;\n };\n}\nfunction cancelPromise(promise) {\n if (typeof promise.cancel === \"function\") promise.cancel();\n}\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if (typeof propOrHandler !== \"string\") return fail(process.env.NODE_ENV !== \"production\" && \"InterceptReads can only be used with a specific property, not with an object in general\");\n target = getAdministration(thing, propOrHandler);\n } else {\n return fail(process.env.NODE_ENV !== \"production\" && \"Expected observable map, object or array as first array\");\n }\n if (target.dehancer !== undefined) return fail(process.env.NODE_ENV !== \"production\" && \"An intercept reader was already established\");\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\nfunction intercept(thing, propOrHandler, handler) {\n if (typeof handler === \"function\") return interceptProperty(thing, propOrHandler, handler);else return interceptInterceptable(thing, propOrHandler);\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept(handler);\n}\nfunction _isComputed(value, property) {\n if (value === null || value === undefined) return false;\n if (property !== undefined) {\n if (isObservableObject(value) === false) return false;\n if (!value[$mobx].values.has(property)) return false;\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n }\n return isComputedValue(value);\n}\nfunction isComputed(value) {\n if (arguments.length > 1) return fail(process.env.NODE_ENV !== \"production\" && \"isComputed expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if (typeof propName !== \"string\") return fail(process.env.NODE_ENV !== \"production\" && \"isComputed expected a property name as second argument\");\n return _isComputed(value, propName);\n}\nfunction _isObservable(value, property) {\n if (value === null || value === undefined) return false;\n if (property !== undefined) {\n if (process.env.NODE_ENV !== \"production\" && (isObservableMap(value) || isObservableArray(value))) return fail(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n if (isObservableObject(value)) {\n return value[$mobx].values.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if (arguments.length !== 1) fail(process.env.NODE_ENV !== \"production\" && \"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if (typeof propName !== \"string\") return fail(process.env.NODE_ENV !== \"production\" && \"expected a property name as second argument\");\n return _isObservable(value, propName);\n}\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].getKeys();\n }\n if (isObservableMap(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n return fail(process.env.NODE_ENV !== \"production\" && \"'keys()' can only be used on observable objects, arrays, sets and maps\");\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n return fail(process.env.NODE_ENV !== \"production\" && \"'values()' can only be used on observable objects, arrays, sets and maps\");\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n return fail(process.env.NODE_ENV !== \"production\" && \"'entries()' can only be used on observable objects, arrays and maps\");\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var values_1 = key;\n try {\n for (var key_1 in values_1) set(obj, key_1, values_1[key_1]);\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n var adm = obj[$mobx];\n var existingObservable = adm.values.get(key);\n if (existingObservable) {\n adm.write(key, value);\n } else {\n adm.addObservableProp(key, value, adm.defaultEnhancer);\n }\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") key = parseInt(key, 10);\n invariant(key >= 0, \"Not a valid index: '\" + key + \"'\");\n startBatch();\n if (key >= obj.length) obj.length = key + 1;\n obj[key] = value;\n endBatch();\n } else {\n return fail(process.env.NODE_ENV !== \"production\" && \"'set()' can only be used on observable objects, arrays and maps\");\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].remove(key);\n } else if (isObservableMap(obj)) {\n obj.delete(key);\n } else if (isObservableSet(obj)) {\n obj.delete(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") key = parseInt(key, 10);\n invariant(key >= 0, \"Not a valid index: '\" + key + \"'\");\n obj.splice(key, 1);\n } else {\n return fail(process.env.NODE_ENV !== \"production\" && \"'remove()' can only be used on observable objects, arrays and maps\");\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n // return keys(obj).indexOf(key) >= 0\n var adm = getAdministration(obj);\n return adm.has(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n } else {\n return fail(process.env.NODE_ENV !== \"production\" && \"'has()' can only be used on observable objects, arrays and maps\");\n }\n}\nfunction get(obj, key) {\n if (!has(obj, key)) return undefined;\n if (isObservableObject(obj)) {\n return obj[key];\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n } else {\n return fail(process.env.NODE_ENV !== \"production\" && \"'get()' can only be used on observable objects, arrays and maps\");\n }\n}\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (typeof cbOrFire === \"function\") return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);else return observeObservable(thing, propOrCb, cbOrFire);\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe(listener, fireImmediately);\n}\nvar defaultOptions = {\n detectCycles: true,\n exportMapsAsObjects: true,\n recurseEverything: false\n};\nfunction cache(map, key, value, options) {\n if (options.detectCycles) map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, options, __alreadySeen) {\n if (!options.recurseEverything && !isObservable(source)) return source;\n if (typeof source !== \"object\") return source;\n // Directly return null if source is null\n if (source === null) return null;\n // Directly return the Date object itself if contained in the observable\n if (source instanceof Date) return source;\n if (isObservableValue(source)) return toJSHelper(source.get(), options, __alreadySeen);\n // make sure we track the keys of the object\n if (isObservable(source)) keys(source);\n var detectCycles = options.detectCycles === true;\n if (detectCycles && source !== null && __alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source) || Array.isArray(source)) {\n var res_1 = cache(__alreadySeen, source, [], options);\n var toAdd = source.map(function (value) {\n return toJSHelper(value, options, __alreadySeen);\n });\n res_1.length = toAdd.length;\n for (var i = 0, l = toAdd.length; i < l; i++) res_1[i] = toAdd[i];\n return res_1;\n }\n if (isObservableSet(source) || Object.getPrototypeOf(source) === Set.prototype) {\n if (options.exportMapsAsObjects === false) {\n var res_2 = cache(__alreadySeen, source, new Set(), options);\n source.forEach(function (value) {\n res_2.add(toJSHelper(value, options, __alreadySeen));\n });\n return res_2;\n } else {\n var res_3 = cache(__alreadySeen, source, [], options);\n source.forEach(function (value) {\n res_3.push(toJSHelper(value, options, __alreadySeen));\n });\n return res_3;\n }\n }\n if (isObservableMap(source) || Object.getPrototypeOf(source) === Map.prototype) {\n if (options.exportMapsAsObjects === false) {\n var res_4 = cache(__alreadySeen, source, new Map(), options);\n source.forEach(function (value, key) {\n res_4.set(key, toJSHelper(value, options, __alreadySeen));\n });\n return res_4;\n } else {\n var res_5 = cache(__alreadySeen, source, {}, options);\n source.forEach(function (value, key) {\n res_5[key] = toJSHelper(value, options, __alreadySeen);\n });\n return res_5;\n }\n }\n // Fallback to the situation that source is an ObservableObject or a plain object\n var res = cache(__alreadySeen, source, {}, options);\n getPlainObjectKeys(source).forEach(function (key) {\n res[key] = toJSHelper(source[key], options, __alreadySeen);\n });\n return res;\n}\nfunction toJS(source, options) {\n // backward compatibility\n if (typeof options === \"boolean\") options = {\n detectCycles: options\n };\n if (!options) options = defaultOptions;\n options.detectCycles = options.detectCycles === undefined ? options.recurseEverything === true : options.detectCycles === true;\n var __alreadySeen;\n if (options.detectCycles) __alreadySeen = new Map();\n return toJSHelper(source, options, __alreadySeen);\n}\nfunction trace() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var enterBreakPoint = false;\n if (typeof args[args.length - 1] === \"boolean\") enterBreakPoint = args.pop();\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return fail(process.env.NODE_ENV !== \"production\" && \"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name + \"' tracing enabled\");\n }\n derivation.isTracing = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") return whenPromise(predicate, arg1);\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed) {\n disposer();\n var error = new Error(\"WHEN_TIMEOUT\");\n if (opts.onError) opts.onError(error);else throw error;\n }\n }, opts.timeout);\n }\n opts.name = opts.name || \"When@\" + getNextId();\n var effectAction = createAction(opts.name + \"-effect\", effect);\n var disposer = autorun(function (r) {\n if (predicate()) {\n r.dispose();\n if (timeoutHandle) clearTimeout(timeoutHandle);\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n if (process.env.NODE_ENV !== \"production\" && opts && opts.onError) return fail(\"the options 'onError' and 'promise' cannot be combined\");\n var cancel;\n var res = new Promise(function (resolve, reject) {\n var disposer = _when(predicate, resolve, __assign(__assign({}, opts), {\n onError: reject\n }));\n cancel = function () {\n disposer();\n reject(\"WHEN_CANCELLED\");\n };\n });\n res.cancel = cancel;\n return res;\n}\nfunction getAdm(target) {\n return target[$mobx];\n}\nfunction isPropertyKey(val) {\n return typeof val === \"string\" || typeof val === \"number\" || typeof val === \"symbol\";\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function (target, name) {\n if (name === $mobx || name === \"constructor\" || name === mobxDidRunLazyInitializersSymbol) return true;\n var adm = getAdm(target);\n // MWE: should `in` operator be reactive? If not, below code path will be faster / more memory efficient\n // TODO: check performance stats!\n // if (adm.values.get(name as string)) return true\n if (isPropertyKey(name)) return adm.has(name);\n return name in target;\n },\n get: function (target, name) {\n if (name === $mobx || name === \"constructor\" || name === mobxDidRunLazyInitializersSymbol) return target[name];\n var adm = getAdm(target);\n var observable = adm.values.get(name);\n if (observable instanceof Atom) {\n var result = observable.get();\n if (result === undefined) {\n // This fixes #1796, because deleting a prop that has an\n // undefined value won't retrigger a observer (no visible effect),\n // the autorun wouldn't subscribe to future key changes (see also next comment)\n adm.has(name);\n }\n return result;\n }\n // make sure we start listening to future keys\n // note that we only do this here for optimization\n if (isPropertyKey(name)) adm.has(name);\n return target[name];\n },\n set: function (target, name, value) {\n if (!isPropertyKey(name)) return false;\n set(target, name, value);\n return true;\n },\n deleteProperty: function (target, name) {\n if (!isPropertyKey(name)) return false;\n var adm = getAdm(target);\n adm.remove(name);\n return true;\n },\n ownKeys: function (target) {\n var adm = getAdm(target);\n adm.keysAtom.reportObserved();\n return Reflect.ownKeys(target);\n },\n preventExtensions: function (target) {\n fail(\"Dynamic observable objects cannot be frozen\");\n return false;\n }\n};\nfunction createDynamicObservableObject(base) {\n var proxy = new Proxy(base, objectProxyTraps);\n base[$mobx].proxy = proxy;\n return proxy;\n}\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors !== undefined && interceptable.interceptors.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors || (interceptable.interceptors = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) interceptors.splice(idx, 1);\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = __spread(interceptable.interceptors || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n invariant(!change || change.type, \"Intercept handlers should return nothing or a change object\");\n if (!change) break;\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\nfunction hasListeners(listenable) {\n return listenable.changeListeners !== undefined && listenable.changeListeners.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners || (listenable.changeListeners = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) listeners.splice(idx, 1);\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners;\n if (!listeners) return;\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function (target, name) {\n if (name === $mobx) return target[$mobx];\n if (name === \"length\") return target[$mobx].getArrayLength();\n if (typeof name === \"number\") {\n return arrayExtensions.get.call(target, name);\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return arrayExtensions.get.call(target, parseInt(name));\n }\n if (arrayExtensions.hasOwnProperty(name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function (target, name, value) {\n if (name === \"length\") {\n target[$mobx].setArrayLength(value);\n }\n if (typeof name === \"number\") {\n arrayExtensions.set.call(target, name, value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n arrayExtensions.set.call(target, parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function (target) {\n fail(\"Observable arrays cannot be frozen\");\n return false;\n }\n};\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = \"ObservableArray@\" + getNextId();\n }\n if (owned === void 0) {\n owned = false;\n }\n var adm = new ObservableArrayAdministration(name, enhancer, owned);\n addHiddenFinalProp(adm.values, $mobx, adm);\n var proxy = new Proxy(adm.values, arrayTraps);\n adm.proxy = proxy;\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true);\n adm.spliceWithArray(0, 0, initialValues);\n allowStateChangesEnd(prev);\n }\n return proxy;\n}\nvar ObservableArrayAdministration = /** @class */function () {\n function ObservableArrayAdministration(name, enhancer, owned) {\n this.owned = owned;\n this.values = [];\n this.proxy = undefined;\n this.lastKnownLength = 0;\n this.atom = new Atom(name || \"ObservableArray@\" + getNextId());\n this.enhancer = function (newV, oldV) {\n return enhancer(newV, oldV, name + \"[..]\");\n };\n }\n ObservableArrayAdministration.prototype.dehanceValue = function (value) {\n if (this.dehancer !== undefined) return this.dehancer(value);\n return value;\n };\n ObservableArrayAdministration.prototype.dehanceValues = function (values) {\n if (this.dehancer !== undefined && values.length > 0) return values.map(this.dehancer);\n return values;\n };\n ObservableArrayAdministration.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n ObservableArrayAdministration.prototype.observe = function (listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n object: this.proxy,\n type: \"splice\",\n index: 0,\n added: this.values.slice(),\n addedCount: this.values.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n ObservableArrayAdministration.prototype.getArrayLength = function () {\n this.atom.reportObserved();\n return this.values.length;\n };\n ObservableArrayAdministration.prototype.setArrayLength = function (newLength) {\n if (typeof newLength !== \"number\" || newLength < 0) throw new Error(\"[mobx.array] Out of range: \" + newLength);\n var currentLength = this.values.length;\n if (newLength === currentLength) return;else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) newItems[i] = undefined; // No Array.fill everywhere...\n this.spliceWithArray(currentLength, 0, newItems);\n } else this.spliceWithArray(newLength, currentLength - newLength);\n };\n ObservableArrayAdministration.prototype.updateArrayLength = function (oldLength, delta) {\n if (oldLength !== this.lastKnownLength) throw new Error(\"[mobx] Modification exception: the internal structure of an observable array was changed.\");\n this.lastKnownLength += delta;\n };\n ObservableArrayAdministration.prototype.spliceWithArray = function (index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom);\n var length = this.values.length;\n if (index === undefined) index = 0;else if (index > length) index = length;else if (index < 0) index = Math.max(0, length + index);\n if (arguments.length === 1) deleteCount = length - index;else if (deleteCount === undefined || deleteCount === null) deleteCount = 0;else deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n if (newItems === undefined) newItems = EMPTY_ARRAY;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy,\n type: \"splice\",\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) return EMPTY_ARRAY;\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer(v, undefined);\n });\n if (process.env.NODE_ENV !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) this.notifyArraySplice(index, newItems, res);\n return this.dehanceValues(res);\n };\n ObservableArrayAdministration.prototype.spliceItemsIntoValues = function (index, deleteCount, newItems) {\n var _a;\n if (newItems.length < MAX_SPLICE_SIZE) {\n return (_a = this.values).splice.apply(_a, __spread([index, deleteCount], newItems));\n } else {\n var res = this.values.slice(index, index + deleteCount);\n this.values = this.values.slice(0, index).concat(newItems, this.values.slice(index + deleteCount));\n return res;\n }\n };\n ObservableArrayAdministration.prototype.notifyArrayChildUpdate = function (index, newValue, oldValue) {\n var notifySpy = !this.owned && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n object: this.proxy,\n type: \"update\",\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.atom.name\n }));\n this.atom.reportChanged();\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n };\n ObservableArrayAdministration.prototype.notifyArraySplice = function (index, added, removed) {\n var notifySpy = !this.owned && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n object: this.proxy,\n type: \"splice\",\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.atom.name\n }));\n this.atom.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n };\n return ObservableArrayAdministration;\n}();\nvar arrayExtensions = {\n intercept: function (handler) {\n return this[$mobx].intercept(handler);\n },\n observe: function (listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n var adm = this[$mobx];\n return adm.observe(listener, fireImmediately);\n },\n clear: function () {\n return this.splice(0);\n },\n replace: function (newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray(0, adm.values.length, newItems);\n },\n /**\n * Converts this array back to a (shallow) javascript structure.\n * For a deep clone use mobx.toJS\n */\n toJS: function () {\n return this.slice();\n },\n toJSON: function () {\n // Used by JSON.stringify\n return this.toJS();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function (index, deleteCount) {\n var newItems = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n newItems[_i - 2] = arguments[_i];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray(index);\n case 2:\n return adm.spliceWithArray(index, deleteCount);\n }\n return adm.spliceWithArray(index, deleteCount, newItems);\n },\n spliceWithArray: function (index, deleteCount, newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray(index, deleteCount, newItems);\n },\n push: function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var adm = this[$mobx];\n adm.spliceWithArray(adm.values.length, 0, items);\n return adm.values.length;\n },\n pop: function () {\n return this.splice(Math.max(this[$mobx].values.length - 1, 0), 1)[0];\n },\n shift: function () {\n return this.splice(0, 1)[0];\n },\n unshift: function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var adm = this[$mobx];\n adm.spliceWithArray(0, 0, items);\n return adm.values.length;\n },\n reverse: function () {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n // so we deviate from the default and just make it an dervitation\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[mobx] `observableArray.reverse()` will not update the array in place. Use `observableArray.slice().reverse()` to suppress this warning and perform the operation on a copy, or `observableArray.replace(observableArray.slice().reverse())` to reverse & update in place\");\n }\n var clone = this.slice();\n return clone.reverse.apply(clone, arguments);\n },\n sort: function (compareFn) {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[mobx] `observableArray.sort()` will not update the array in place. Use `observableArray.slice().sort()` to suppress this warning and perform the operation on a copy, or `observableArray.replace(observableArray.slice().sort())` to sort & update in place\");\n }\n var clone = this.slice();\n return clone.sort.apply(clone, arguments);\n },\n remove: function (value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues(adm.values).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n },\n get: function (index) {\n var adm = this[$mobx];\n if (adm) {\n if (index < adm.values.length) {\n adm.atom.reportObserved();\n return adm.dehanceValue(adm.values[index]);\n }\n console.warn(\"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + adm.values.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\");\n }\n return undefined;\n },\n set: function (index, newValue) {\n var adm = this[$mobx];\n var values = adm.values;\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(adm.atom);\n var oldValue = values[index];\n if (hasInterceptors(adm)) {\n var change = interceptChange(adm, {\n type: \"update\",\n object: adm.proxy,\n index: index,\n newValue: newValue\n });\n if (!change) return;\n newValue = change.newValue;\n }\n newValue = adm.enhancer(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n adm.notifyArrayChildUpdate(index, newValue, oldValue);\n }\n } else if (index === values.length) {\n // add a new item\n adm.spliceWithArray(index, 0, [newValue]);\n } else {\n // out of bounds\n throw new Error(\"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + values.length);\n }\n }\n};\n[\"concat\", \"flat\", \"includes\", \"indexOf\", \"join\", \"lastIndexOf\", \"slice\", \"toString\", \"toLocaleString\"].forEach(function (funcName) {\n // Feature detection (eg flat may not be available)\n if (typeof Array.prototype[funcName] !== \"function\") {\n return;\n }\n arrayExtensions[funcName] = function () {\n var adm = this[$mobx];\n adm.atom.reportObserved();\n var dehancedValues = adm.dehanceValues(adm.values);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n});\n[\"every\", \"filter\", \"find\", \"findIndex\", \"flatMap\", \"forEach\", \"map\", \"some\"].forEach(function (funcName) {\n // Feature detection (eg flatMap may not be available)\n if (typeof Array.prototype[funcName] !== \"function\") {\n return;\n }\n arrayExtensions[funcName] = function (callback, thisArg) {\n var _this = this;\n var adm = this[$mobx];\n adm.atom.reportObserved();\n var dehancedValues = adm.dehanceValues(adm.values);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this);\n }, thisArg);\n };\n});\n[\"reduce\", \"reduceRight\"].forEach(function (funcName) {\n arrayExtensions[funcName] = function () {\n var _this = this;\n var adm = this[$mobx];\n adm.atom.reportObserved();\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n currentValue = adm.dehanceValue(currentValue);\n return callback(accumulator, currentValue, index, _this);\n };\n return adm.values[funcName].apply(adm.values, arguments);\n };\n});\nvar isObservableArrayAdministration = createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\nvar _a;\nvar ObservableMapMarker = {};\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\nvar ObservableMap = /** @class */function () {\n function ObservableMap(initialData, enhancer, name) {\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name === void 0) {\n name = \"ObservableMap@\" + getNextId();\n }\n this.enhancer = enhancer;\n this.name = name;\n this[_a] = ObservableMapMarker;\n this._keysAtom = createAtom(this.name + \".keys()\");\n this[Symbol.toStringTag] = \"Map\";\n if (typeof Map !== \"function\") {\n throw new Error(\"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\");\n }\n this._data = new Map();\n this._hasMap = new Map();\n this.merge(initialData);\n }\n ObservableMap.prototype._has = function (key) {\n return this._data.has(key);\n };\n ObservableMap.prototype.has = function (key) {\n var _this = this;\n if (!globalState.trackingDerivation) return this._has(key);\n var entry = this._hasMap.get(key);\n if (!entry) {\n // todo: replace with atom (breaking change)\n var newEntry = entry = new ObservableValue(this._has(key), referenceEnhancer, this.name + \".\" + stringifyKey(key) + \"?\", false);\n this._hasMap.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this._hasMap.delete(key);\n });\n }\n return entry.get();\n };\n ObservableMap.prototype.set = function (key, value) {\n var hasKey = this._has(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? \"update\" : \"add\",\n object: this,\n newValue: value,\n name: key\n });\n if (!change) return this;\n value = change.newValue;\n }\n if (hasKey) {\n this._updateValue(key, value);\n } else {\n this._addValue(key, value);\n }\n return this;\n };\n ObservableMap.prototype.delete = function (key) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this._keysAtom);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: \"delete\",\n object: this,\n name: key\n });\n if (!change) return false;\n }\n if (this._has(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n type: \"delete\",\n object: this,\n oldValue: this._data.get(key).value,\n name: key\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.name,\n key: key\n }));\n transaction(function () {\n _this._keysAtom.reportChanged();\n _this._updateHasMapEntry(key, false);\n var observable = _this._data.get(key);\n observable.setNewValue(undefined);\n _this._data.delete(key);\n });\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n return true;\n }\n return false;\n };\n ObservableMap.prototype._updateHasMapEntry = function (key, value) {\n var entry = this._hasMap.get(key);\n if (entry) {\n entry.setNewValue(value);\n }\n };\n ObservableMap.prototype._updateValue = function (key, newValue) {\n var observable = this._data.get(key);\n newValue = observable.prepareNewValue(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n type: \"update\",\n object: this,\n oldValue: observable.value,\n name: key,\n newValue: newValue\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.name,\n key: key\n }));\n observable.setNewValue(newValue);\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n }\n };\n ObservableMap.prototype._addValue = function (key, newValue) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this._keysAtom);\n transaction(function () {\n var observable = new ObservableValue(newValue, _this.enhancer, _this.name + \".\" + stringifyKey(key), false);\n _this._data.set(key, observable);\n newValue = observable.value; // value might have been changed\n _this._updateHasMapEntry(key, true);\n _this._keysAtom.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n type: \"add\",\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.name,\n key: key\n }));\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n };\n ObservableMap.prototype.get = function (key) {\n if (this.has(key)) return this.dehanceValue(this._data.get(key).get());\n return this.dehanceValue(undefined);\n };\n ObservableMap.prototype.dehanceValue = function (value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n ObservableMap.prototype.keys = function () {\n this._keysAtom.reportObserved();\n return this._data.keys();\n };\n ObservableMap.prototype.values = function () {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function () {\n var _b = keys.next(),\n done = _b.done,\n value = _b.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n ObservableMap.prototype.entries = function () {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function () {\n var _b = keys.next(),\n done = _b.done,\n value = _b.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n ObservableMap.prototype[(_a = $mobx, Symbol.iterator)] = function () {\n return this.entries();\n };\n ObservableMap.prototype.forEach = function (callback, thisArg) {\n var e_1, _b;\n try {\n for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = __read(_d.value, 2),\n key = _e[0],\n value = _e[1];\n callback.call(thisArg, value, key, this);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n /** Merge another object into this object, returns this. */\n ObservableMap.prototype.merge = function (other) {\n var _this = this;\n if (isObservableMap(other)) {\n other = other.toJS();\n }\n transaction(function () {\n var prev = allowStateChangesStart(true);\n try {\n if (isPlainObject(other)) getPlainObjectKeys(other).forEach(function (key) {\n return _this.set(key, other[key]);\n });else if (Array.isArray(other)) other.forEach(function (_b) {\n var _c = __read(_b, 2),\n key = _c[0],\n value = _c[1];\n return _this.set(key, value);\n });else if (isES6Map(other)) {\n if (other.constructor !== Map) fail(\"Cannot initialize from classes that inherit from Map: \" + other.constructor.name); // prettier-ignore\n other.forEach(function (value, key) {\n return _this.set(key, value);\n });\n } else if (other !== null && other !== undefined) fail(\"Cannot initialize map from \" + other);\n } finally {\n allowStateChangesEnd(prev);\n }\n });\n return this;\n };\n ObservableMap.prototype.clear = function () {\n var _this = this;\n transaction(function () {\n untracked(function () {\n var e_2, _b;\n try {\n for (var _c = __values(_this.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var key = _d.value;\n _this.delete(key);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n });\n });\n };\n ObservableMap.prototype.replace = function (values) {\n var _this = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n var e_3, _b, e_4, _c;\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n try {\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _d = __values(_this._data.keys()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this.delete(key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this._data.get(key);\n orderedData.set(key, value);\n }\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n try {\n // Merge entries\n for (var _f = __values(replacementMap.entries()), _g = _f.next(); !_g.done; _g = _f.next()) {\n var _h = __read(_g.value, 2),\n key = _h[0],\n value = _h[1];\n // We will want to know whether a new key is added\n var keyExisted = _this._data.has(key);\n // Add or update value\n _this.set(key, value);\n // The addition could have been prevent by interceptor\n if (_this._data.has(key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var value_1 = _this._data.get(key);\n orderedData.set(key, value_1);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_c = _f.return)) _c.call(_f);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this._data.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this._keysAtom.reportChanged();\n } else {\n var iter1 = _this._data.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this._keysAtom.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this._data = orderedData;\n });\n return this;\n };\n Object.defineProperty(ObservableMap.prototype, \"size\", {\n get: function () {\n this._keysAtom.reportObserved();\n return this._data.size;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns a plain object that represents this map.\n * Note that all the keys being stringified.\n * If there are duplicating keys after converting them to strings, behaviour is undetermined.\n */\n ObservableMap.prototype.toPOJO = function () {\n var e_5, _b;\n var res = {};\n try {\n for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = __read(_d.value, 2),\n key = _e[0],\n value = _e[1];\n // We lie about symbol key types due to https://github.com/Microsoft/TypeScript/issues/1863\n res[typeof key === \"symbol\" ? key : stringifyKey(key)] = value;\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n return res;\n };\n /**\n * Returns a shallow non observable object clone of this map.\n * Note that the values migth still be observable. For a deep clone use mobx.toJS.\n */\n ObservableMap.prototype.toJS = function () {\n return new Map(this);\n };\n ObservableMap.prototype.toJSON = function () {\n // Used by JSON.stringify\n return this.toPOJO();\n };\n ObservableMap.prototype.toString = function () {\n var _this = this;\n return this.name + \"[{ \" + Array.from(this.keys()).map(function (key) {\n return stringifyKey(key) + \": \" + (\"\" + _this.get(key));\n }).join(\", \") + \" }]\";\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n ObservableMap.prototype.observe = function (listener, fireImmediately) {\n process.env.NODE_ENV !== \"production\" && invariant(fireImmediately !== true, \"`observe` doesn't support fireImmediately=true in combination with maps.\");\n return registerListener(this, listener);\n };\n ObservableMap.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n return ObservableMap;\n}();\n/* 'var' fixes small-build issue */\nvar isObservableMap = createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nvar _a$1;\nvar ObservableSetMarker = {};\nvar ObservableSet = /** @class */function () {\n function ObservableSet(initialData, enhancer, name) {\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name === void 0) {\n name = \"ObservableSet@\" + getNextId();\n }\n this.name = name;\n this[_a$1] = ObservableSetMarker;\n this._data = new Set();\n this._atom = createAtom(this.name);\n this[Symbol.toStringTag] = \"Set\";\n if (typeof Set !== \"function\") {\n throw new Error(\"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\");\n }\n this.enhancer = function (newV, oldV) {\n return enhancer(newV, oldV, name);\n };\n if (initialData) {\n this.replace(initialData);\n }\n }\n ObservableSet.prototype.dehanceValue = function (value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n ObservableSet.prototype.clear = function () {\n var _this = this;\n transaction(function () {\n untracked(function () {\n var e_1, _b;\n try {\n for (var _c = __values(_this._data.values()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var value = _d.value;\n _this.delete(value);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n });\n });\n };\n ObservableSet.prototype.forEach = function (callbackFn, thisArg) {\n var e_2, _b;\n try {\n for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {\n var value = _d.value;\n callbackFn.call(thisArg, value, value, this);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n };\n Object.defineProperty(ObservableSet.prototype, \"size\", {\n get: function () {\n this._atom.reportObserved();\n return this._data.size;\n },\n enumerable: true,\n configurable: true\n });\n ObservableSet.prototype.add = function (value) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this._atom);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: \"add\",\n object: this,\n newValue: value\n });\n if (!change) return this;\n // TODO: ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this._data.add(_this.enhancer(value, undefined));\n _this._atom.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n type: \"add\",\n object: this,\n newValue: value\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(change);\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n }\n return this;\n };\n ObservableSet.prototype.delete = function (value) {\n var _this = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: \"delete\",\n object: this,\n oldValue: value\n });\n if (!change) return false;\n }\n if (this.has(value)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n type: \"delete\",\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.name\n }));\n transaction(function () {\n _this._atom.reportChanged();\n _this._data.delete(value);\n });\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n return true;\n }\n return false;\n };\n ObservableSet.prototype.has = function (value) {\n this._atom.reportObserved();\n return this._data.has(this.dehanceValue(value));\n };\n ObservableSet.prototype.entries = function () {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function () {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n ObservableSet.prototype.keys = function () {\n return this.values();\n };\n ObservableSet.prototype.values = function () {\n this._atom.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this._data.values());\n return makeIterable({\n next: function () {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n ObservableSet.prototype.replace = function (other) {\n var _this = this;\n if (isObservableSet(other)) {\n other = other.toJS();\n }\n transaction(function () {\n var prev = allowStateChangesStart(true);\n try {\n if (Array.isArray(other)) {\n _this.clear();\n other.forEach(function (value) {\n return _this.add(value);\n });\n } else if (isES6Set(other)) {\n _this.clear();\n other.forEach(function (value) {\n return _this.add(value);\n });\n } else if (other !== null && other !== undefined) {\n fail(\"Cannot initialize set from \" + other);\n }\n } finally {\n allowStateChangesEnd(prev);\n }\n });\n return this;\n };\n ObservableSet.prototype.observe = function (listener, fireImmediately) {\n // TODO 'fireImmediately' can be true?\n process.env.NODE_ENV !== \"production\" && invariant(fireImmediately !== true, \"`observe` doesn't support fireImmediately=true in combination with sets.\");\n return registerListener(this, listener);\n };\n ObservableSet.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n ObservableSet.prototype.toJS = function () {\n return new Set(this);\n };\n ObservableSet.prototype.toString = function () {\n return this.name + \"[ \" + Array.from(this).join(\", \") + \" ]\";\n };\n ObservableSet.prototype[(_a$1 = $mobx, Symbol.iterator)] = function () {\n return this.values();\n };\n return ObservableSet;\n}();\nvar isObservableSet = createInstanceofPredicate(\"ObservableSet\", ObservableSet);\nvar ObservableObjectAdministration = /** @class */function () {\n function ObservableObjectAdministration(target, values, name, defaultEnhancer) {\n if (values === void 0) {\n values = new Map();\n }\n this.target = target;\n this.values = values;\n this.name = name;\n this.defaultEnhancer = defaultEnhancer;\n this.keysAtom = new Atom(name + \".keys\");\n }\n ObservableObjectAdministration.prototype.read = function (key) {\n return this.values.get(key).get();\n };\n ObservableObjectAdministration.prototype.write = function (key, newValue) {\n var instance = this.target;\n var observable = this.values.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: \"update\",\n object: this.proxy || instance,\n name: key,\n newValue: newValue\n });\n if (!change) return;\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = isSpyEnabled();\n var change = notify || notifySpy ? {\n type: \"update\",\n object: this.proxy || instance,\n oldValue: observable.value,\n name: key,\n newValue: newValue\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.name,\n key: key\n }));\n observable.setNewValue(newValue);\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n }\n };\n ObservableObjectAdministration.prototype.has = function (key) {\n var map = this.pendingKeys || (this.pendingKeys = new Map());\n var entry = map.get(key);\n if (entry) return entry.get();else {\n var exists = !!this.values.get(key);\n // Possible optimization: Don't have a separate map for non existing keys,\n // but store them in the values map instead, using a special symbol to denote \"not existing\"\n entry = new ObservableValue(exists, referenceEnhancer, this.name + \".\" + stringifyKey(key) + \"?\", false);\n map.set(key, entry);\n return entry.get(); // read to subscribe\n }\n };\n\n ObservableObjectAdministration.prototype.addObservableProp = function (propName, newValue, enhancer) {\n if (enhancer === void 0) {\n enhancer = this.defaultEnhancer;\n }\n var target = this.target;\n assertPropertyConfigurable(target, propName);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy || target,\n name: propName,\n type: \"add\",\n newValue: newValue\n });\n if (!change) return;\n newValue = change.newValue;\n }\n var observable = new ObservableValue(newValue, enhancer, this.name + \".\" + stringifyKey(propName), false);\n this.values.set(propName, observable);\n newValue = observable.value; // observableValue might have changed it\n Object.defineProperty(target, propName, generateObservablePropConfig(propName));\n this.notifyPropertyAddition(propName, newValue);\n };\n ObservableObjectAdministration.prototype.addComputedProp = function (propertyOwner,\n // where is the property declared?\n propName, options) {\n var target = this.target;\n options.name = options.name || this.name + \".\" + stringifyKey(propName);\n this.values.set(propName, new ComputedValue(options));\n if (propertyOwner === target || isPropertyConfigurable(propertyOwner, propName)) Object.defineProperty(propertyOwner, propName, generateComputedPropConfig(propName));\n };\n ObservableObjectAdministration.prototype.remove = function (key) {\n if (!this.values.has(key)) return;\n var target = this.target;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy || target,\n name: key,\n type: \"remove\"\n });\n if (!change) return;\n }\n try {\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = isSpyEnabled();\n var oldObservable = this.values.get(key);\n var oldValue = oldObservable && oldObservable.get();\n oldObservable && oldObservable.set(undefined);\n // notify key and keyset listeners\n this.keysAtom.reportChanged();\n this.values.delete(key);\n if (this.pendingKeys) {\n var entry = this.pendingKeys.get(key);\n if (entry) entry.set(false);\n }\n // delete the prop\n delete this.target[key];\n var change = notify || notifySpy ? {\n type: \"remove\",\n object: this.proxy || target,\n oldValue: oldValue,\n name: key\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.name,\n key: key\n }));\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n } finally {\n endBatch();\n }\n };\n ObservableObjectAdministration.prototype.illegalAccess = function (owner, propName) {\n /**\n * This happens if a property is accessed through the prototype chain, but the property was\n * declared directly as own property on the prototype.\n *\n * E.g.:\n * class A {\n * }\n * extendObservable(A.prototype, { x: 1 })\n *\n * classB extens A {\n * }\n * console.log(new B().x)\n *\n * It is unclear whether the property should be considered 'static' or inherited.\n * Either use `console.log(A.x)`\n * or: decorate(A, { x: observable })\n *\n * When using decorate, the property will always be redeclared as own property on the actual instance\n */\n console.warn(\"Property '\" + propName + \"' of '\" + owner + \"' was accessed through the prototype chain. Use 'decorate' instead to declare the prop or access it statically through it's owner\");\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n ObservableObjectAdministration.prototype.observe = function (callback, fireImmediately) {\n process.env.NODE_ENV !== \"production\" && invariant(fireImmediately !== true, \"`observe` doesn't support the fire immediately property for observable objects.\");\n return registerListener(this, callback);\n };\n ObservableObjectAdministration.prototype.intercept = function (handler) {\n return registerInterceptor(this, handler);\n };\n ObservableObjectAdministration.prototype.notifyPropertyAddition = function (key, newValue) {\n var notify = hasListeners(this);\n var notifySpy = isSpyEnabled();\n var change = notify || notifySpy ? {\n type: \"add\",\n object: this.proxy || this.target,\n name: key,\n newValue: newValue\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportStart(__assign(__assign({}, change), {\n name: this.name,\n key: key\n }));\n if (notify) notifyListeners(this, change);\n if (notifySpy && process.env.NODE_ENV !== \"production\") spyReportEnd();\n if (this.pendingKeys) {\n var entry = this.pendingKeys.get(key);\n if (entry) entry.set(true);\n }\n this.keysAtom.reportChanged();\n };\n ObservableObjectAdministration.prototype.getKeys = function () {\n var e_1, _a;\n this.keysAtom.reportObserved();\n // return Reflect.ownKeys(this.values) as any\n var res = [];\n try {\n for (var _b = __values(this.values), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2),\n key = _d[0],\n value = _d[1];\n if (value instanceof ObservableValue) res.push(key);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n return res;\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, name, defaultEnhancer) {\n if (name === void 0) {\n name = \"\";\n }\n if (defaultEnhancer === void 0) {\n defaultEnhancer = deepEnhancer;\n }\n if (Object.prototype.hasOwnProperty.call(target, $mobx)) return target[$mobx];\n process.env.NODE_ENV !== \"production\" && invariant(Object.isExtensible(target), \"Cannot make the designated object observable; it is not extensible\");\n if (!isPlainObject(target)) name = (target.constructor.name || \"ObservableObject\") + \"@\" + getNextId();\n if (!name) name = \"ObservableObject@\" + getNextId();\n var adm = new ObservableObjectAdministration(target, new Map(), stringifyKey(name), defaultEnhancer);\n addHiddenProp(target, $mobx, adm);\n return adm;\n}\nvar observablePropertyConfigs = Object.create(null);\nvar computedPropertyConfigs = Object.create(null);\nfunction generateObservablePropConfig(propName) {\n return observablePropertyConfigs[propName] || (observablePropertyConfigs[propName] = {\n configurable: true,\n enumerable: true,\n get: function () {\n return this[$mobx].read(propName);\n },\n set: function (v) {\n this[$mobx].write(propName, v);\n }\n });\n}\nfunction getAdministrationForComputedPropOwner(owner) {\n var adm = owner[$mobx];\n if (!adm) {\n // because computed props are declared on proty,\n // the current instance might not have been initialized yet\n initializeInstance(owner);\n return owner[$mobx];\n }\n return adm;\n}\nfunction generateComputedPropConfig(propName) {\n return computedPropertyConfigs[propName] || (computedPropertyConfigs[propName] = {\n configurable: globalState.computedConfigurable,\n enumerable: false,\n get: function () {\n return getAdministrationForComputedPropOwner(this).read(propName);\n },\n set: function (v) {\n getAdministrationForComputedPropOwner(this).write(propName, v);\n }\n });\n}\nvar isObservableObjectAdministration = createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n // Initializers run lazily when transpiling to babel, so make sure they are run...\n initializeInstance(thing);\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) fail(process.env.NODE_ENV !== \"production\" && \"It is not possible to get index atoms from arrays\");\n return thing[$mobx].atom;\n }\n if (isObservableSet(thing)) {\n return thing[$mobx];\n }\n if (isObservableMap(thing)) {\n var anyThing = thing;\n if (property === undefined) return anyThing._keysAtom;\n var observable = anyThing._data.get(property) || anyThing._hasMap.get(property);\n if (!observable) fail(process.env.NODE_ENV !== \"production\" && \"the entry '\" + property + \"' does not exist in the observable map '\" + getDebugName(thing) + \"'\");\n return observable;\n }\n // Initializers run lazily when transpiling to babel, so make sure they are run...\n initializeInstance(thing);\n if (property && !thing[$mobx]) thing[property]; // See #1072\n if (isObservableObject(thing)) {\n if (!property) return fail(process.env.NODE_ENV !== \"production\" && \"please specify a property\");\n var observable = thing[$mobx].values.get(property);\n if (!observable) fail(process.env.NODE_ENV !== \"production\" && \"no observable property '\" + property + \"' found on the observable object '\" + getDebugName(thing) + \"'\");\n return observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (typeof thing === \"function\") {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n return fail(process.env.NODE_ENV !== \"production\" && \"Cannot obtain atom from \" + thing);\n}\nfunction getAdministration(thing, property) {\n if (!thing) fail(\"Expecting some object\");\n if (property !== undefined) return getAdministration(getAtom(thing, property));\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) return thing;\n if (isObservableMap(thing) || isObservableSet(thing)) return thing;\n // Initializers run lazily when transpiling to babel, so make sure they are run...\n initializeInstance(thing);\n if (thing[$mobx]) return thing[$mobx];\n fail(process.env.NODE_ENV !== \"production\" && \"Cannot obtain administration from \" + thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) named = getAtom(thing, property);else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) named = getAdministration(thing);else named = getAtom(thing); // valid for arrays as well\n return named.name;\n}\nvar toString = Object.prototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://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 // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans 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 typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") return false;\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(typeof aCtor === \"function\" && aCtor instanceof aCtor && typeof bCtor === \"function\" && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\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 // 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 // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\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], depth - 1, aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key = void 0;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(has$1(b, key) && eq(a[key], b[key], depth - 1, 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}\nfunction unwrap(a) {\n if (isObservableArray(a)) return a.slice();\n if (isES6Map(a) || isObservableMap(a)) return Array.from(a.entries());\n if (isES6Set(a) || isObservableSet(a)) return Array.from(a.entries());\n return a;\n}\nfunction has$1(a, key) {\n return Object.prototype.hasOwnProperty.call(a, key);\n}\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\nfunction getSelf() {\n return this;\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2018\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get an global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\nif (typeof Proxy === \"undefined\" || typeof Symbol === \"undefined\") {\n throw new Error(\"[mobx] MobX 5+ requires Proxy and Symbol objects. If your environment doesn't support Symbol or Proxy objects, please downgrade to MobX 4. For React Native Android, consider upgrading JSCore.\");\n}\ntry {\n // define process.env if needed\n // if this is not a production build in the first place\n // (in which case the expression below would be substituted with 'production')\n process.env.NODE_ENV;\n} catch (e) {\n var g = getGlobal();\n if (typeof process === \"undefined\") g.process = {};\n g.process.env = {};\n}\n(function () {\n function testCodeMinification() {}\n if (testCodeMinification.name !== \"testCodeMinification\" && process.env.NODE_ENV !== \"production\" && typeof process !== 'undefined' && process.env.IGNORE_MOBX_MINIFY_WARNING !== \"true\") {\n // trick so it doesn't get replaced\n var varName = [\"process\", \"env\", \"NODE_ENV\"].join(\".\");\n console.warn(\"[mobx] you are running a minified build, but '\" + varName + \"' was not set to 'production' in your bundler. This results in an unnecessarily large and slow bundle\");\n }\n})();\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\nexport { $mobx, FlowCancellationError, IDerivationState, ObservableMap, ObservableSet, Reaction, allowStateChanges as _allowStateChanges, allowStateChangesInsideComputed as _allowStateChangesInsideComputed, allowStateReadsEnd as _allowStateReadsEnd, allowStateReadsStart as _allowStateReadsStart, _endAction, getAdministration as _getAdministration, getGlobalState as _getGlobalState, interceptReads as _interceptReads, isComputingDerivation as _isComputingDerivation, resetGlobalState as _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, decorate, entries, extendObservable, flow, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isArrayLike, isObservableValue as isBoxedObservable, isComputed, isComputedProp, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when };","import { isComputedProp, isObservableProp, createAtom, action, _allowStateChangesInsideComputed, reaction, computed, runInAction, observable, values, entries, isObservableArray, $mobx, getAtom, ObservableMap, _interceptReads, intercept, observe, _getAdministration, set } from 'mobx';\nvar livelinessChecking = \"warn\";\n/**\n * Defines what MST should do when running into reads / writes to objects that have died.\n * By default it will print a warning.\n * Use the `\"error\"` option to easy debugging to see where the error was thrown and when the offending read / write took place\n *\n * @param mode `\"warn\"`, `\"error\"` or `\"ignore\"`\n */\nfunction setLivelinessChecking(mode) {\n livelinessChecking = mode;\n}\n/**\n * Returns the current liveliness checking mode.\n *\n * @returns `\"warn\"`, `\"error\"` or `\"ignore\"`\n */\nfunction getLivelinessChecking() {\n return livelinessChecking;\n}\n/**\n * @deprecated use setLivelinessChecking instead\n * @hidden\n *\n * Defines what MST should do when running into reads / writes to objects that have died.\n * By default it will print a warning.\n * Use the `\"error\"` option to easy debugging to see where the error was thrown and when the offending read / write took place\n *\n * @param mode `\"warn\"`, `\"error\"` or `\"ignore\"`\n */\nfunction setLivelynessChecking(mode) {\n setLivelinessChecking(mode);\n}\n\n/**\n * @hidden\n */\nvar Hook;\n(function (Hook) {\n Hook[\"afterCreate\"] = \"afterCreate\";\n Hook[\"afterAttach\"] = \"afterAttach\";\n Hook[\"afterCreationFinalization\"] = \"afterCreationFinalization\";\n Hook[\"beforeDetach\"] = \"beforeDetach\";\n Hook[\"beforeDestroy\"] = \"beforeDestroy\";\n})(Hook || (Hook = {}));\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n};\nfunction __extends(d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nfunction __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nfunction __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/**\n * Returns the _actual_ type of the given tree node. (Or throws)\n *\n * @param object\n * @returns\n */\nfunction getType(object) {\n assertIsStateTreeNode(object, 1);\n return getStateTreeNode(object).type;\n}\n/**\n * Returns the _declared_ type of the given sub property of an object, array or map.\n * In the case of arrays and maps the property name is optional and will be ignored.\n *\n * Example:\n * ```ts\n * const Box = types.model({ x: 0, y: 0 })\n * const box = Box.create()\n *\n * console.log(getChildType(box, \"x\").name) // 'number'\n * ```\n *\n * @param object\n * @param propertyName\n * @returns\n */\nfunction getChildType(object, propertyName) {\n assertIsStateTreeNode(object, 1);\n return getStateTreeNode(object).getChildType(propertyName);\n}\n/**\n * Registers a function that will be invoked for each mutation that is applied to the provided model instance, or to any of its children.\n * See [patches](https://github.com/mobxjs/mobx-state-tree#patches) for more details. onPatch events are emitted immediately and will not await the end of a transaction.\n * Patches can be used to deep observe a model tree.\n *\n * @param target the model instance from which to receive patches\n * @param callback the callback that is invoked for each patch. The reversePatch is a patch that would actually undo the emitted patch\n * @returns function to remove the listener\n */\nfunction onPatch(target, callback) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsFunction(callback, 2);\n return getStateTreeNode(target).onPatch(callback);\n}\n/**\n * Registers a function that is invoked whenever a new snapshot for the given model instance is available.\n * The listener will only be fire at the end of the current MobX (trans)action.\n * See [snapshots](https://github.com/mobxjs/mobx-state-tree#snapshots) for more details.\n *\n * @param target\n * @param callback\n * @returns\n */\nfunction onSnapshot(target, callback) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsFunction(callback, 2);\n return getStateTreeNode(target).onSnapshot(callback);\n}\n/**\n * Applies a JSON-patch to the given model instance or bails out if the patch couldn't be applied\n * See [patches](https://github.com/mobxjs/mobx-state-tree#patches) for more details.\n *\n * Can apply a single past, or an array of patches.\n *\n * @param target\n * @param patch\n * @returns\n */\nfunction applyPatch(target, patch) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertArg(patch, function (p) {\n return typeof p === \"object\";\n }, \"object or array\", 2);\n getStateTreeNode(target).applyPatches(asArray(patch));\n}\n/**\n * Small abstraction around `onPatch` and `applyPatch`, attaches a patch listener to a tree and records all the patches.\n * Returns an recorder object with the following signature:\n *\n * Example:\n * ```ts\n * export interface IPatchRecorder {\n * // the recorded patches\n * patches: IJsonPatch[]\n * // the inverse of the recorded patches\n * inversePatches: IJsonPatch[]\n * // true if currently recording\n * recording: boolean\n * // stop recording patches\n * stop(): void\n * // resume recording patches\n * resume(): void\n * // apply all the recorded patches on the given target (the original subject if omitted)\n * replay(target?: IAnyStateTreeNode): void\n * // reverse apply the recorded patches on the given target (the original subject if omitted)\n * // stops the recorder if not already stopped\n * undo(): void\n * }\n * ```\n *\n * The optional filter function allows to skip recording certain patches.\n *\n * @param subject\n * @param filter\n * @returns\n */\nfunction recordPatches(subject, filter) {\n // check all arguments\n assertIsStateTreeNode(subject, 1);\n var data = {\n patches: [],\n reversedInversePatches: []\n };\n // we will generate the immutable copy of patches on demand for public consumption\n var publicData = {};\n var disposer;\n var recorder = {\n get recording() {\n return !!disposer;\n },\n get patches() {\n if (!publicData.patches) {\n publicData.patches = data.patches.slice();\n }\n return publicData.patches;\n },\n get reversedInversePatches() {\n if (!publicData.reversedInversePatches) {\n publicData.reversedInversePatches = data.reversedInversePatches.slice();\n }\n return publicData.reversedInversePatches;\n },\n get inversePatches() {\n if (!publicData.inversePatches) {\n publicData.inversePatches = data.reversedInversePatches.slice().reverse();\n }\n return publicData.inversePatches;\n },\n stop: function () {\n if (disposer) {\n disposer();\n disposer = undefined;\n }\n },\n resume: function () {\n if (disposer) return;\n disposer = onPatch(subject, function (patch, inversePatch) {\n // skip patches that are asked to be filtered if there's a filter in place\n if (filter && !filter(patch, inversePatch, getRunningActionContext())) {\n return;\n }\n data.patches.push(patch);\n data.reversedInversePatches.unshift(inversePatch);\n // mark immutable public patches as dirty\n publicData.patches = undefined;\n publicData.inversePatches = undefined;\n publicData.reversedInversePatches = undefined;\n });\n },\n replay: function (target) {\n applyPatch(target || subject, data.patches);\n },\n undo: function (target) {\n applyPatch(target || subject, data.reversedInversePatches);\n }\n };\n recorder.resume();\n return recorder;\n}\n/**\n * The inverse of `unprotect`.\n *\n * @param target\n */\nfunction protect(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n var node = getStateTreeNode(target);\n if (!node.isRoot) throw fail$1(\"`protect` can only be invoked on root nodes\");\n node.isProtectionEnabled = true;\n}\n/**\n * By default it is not allowed to directly modify a model. Models can only be modified through actions.\n * However, in some cases you don't care about the advantages (like replayability, traceability, etc) this yields.\n * For example because you are building a PoC or don't have any middleware attached to your tree.\n *\n * In that case you can disable this protection by calling `unprotect` on the root of your tree.\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * done: false\n * }).actions(self => ({\n * toggle() {\n * self.done = !self.done\n * }\n * }))\n *\n * const todo = Todo.create()\n * todo.done = true // throws!\n * todo.toggle() // OK\n * unprotect(todo)\n * todo.done = false // OK\n * ```\n */\nfunction unprotect(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n var node = getStateTreeNode(target);\n if (!node.isRoot) throw fail$1(\"`unprotect` can only be invoked on root nodes\");\n node.isProtectionEnabled = false;\n}\n/**\n * Returns true if the object is in protected mode, @see protect\n */\nfunction isProtected(target) {\n return getStateTreeNode(target).isProtected;\n}\n/**\n * Applies a snapshot to a given model instances. Patch and snapshot listeners will be invoked as usual.\n *\n * @param target\n * @param snapshot\n * @returns\n */\nfunction applySnapshot(target, snapshot) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n return getStateTreeNode(target).applySnapshot(snapshot);\n}\n/**\n * Calculates a snapshot from the given model instance. The snapshot will always reflect the latest state but use\n * structural sharing where possible. Doesn't require MobX transactions to be completed.\n *\n * @param target\n * @param applyPostProcess If true (the default) then postProcessSnapshot gets applied.\n * @returns\n */\nfunction getSnapshot(target, applyPostProcess) {\n if (applyPostProcess === void 0) {\n applyPostProcess = true;\n }\n // check all arguments\n assertIsStateTreeNode(target, 1);\n var node = getStateTreeNode(target);\n if (applyPostProcess) return node.snapshot;\n return freeze(node.type.getSnapshot(node, false));\n}\n/**\n * Given a model instance, returns `true` if the object has a parent, that is, is part of another object, map or array.\n *\n * @param target\n * @param depth How far should we look upward? 1 by default.\n * @returns\n */\nfunction hasParent(target, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsNumber(depth, 2, 0);\n var parent = getStateTreeNode(target).parent;\n while (parent) {\n if (--depth === 0) return true;\n parent = parent.parent;\n }\n return false;\n}\n/**\n * Returns the immediate parent of this object, or throws.\n *\n * Note that the immediate parent can be either an object, map or array, and\n * doesn't necessarily refer to the parent model.\n *\n * Please note that in child nodes access to the root is only possible\n * once the `afterAttach` hook has fired.\n *\n * @param target\n * @param depth How far should we look upward? 1 by default.\n * @returns\n */\nfunction getParent(target, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsNumber(depth, 2, 0);\n var d = depth;\n var parent = getStateTreeNode(target).parent;\n while (parent) {\n if (--d === 0) return parent.storedValue;\n parent = parent.parent;\n }\n throw fail$1(\"Failed to find the parent of \" + getStateTreeNode(target) + \" at depth \" + depth);\n}\n/**\n * Given a model instance, returns `true` if the object has a parent of given type, that is, is part of another object, map or array\n *\n * @param target\n * @param type\n * @returns\n */\nfunction hasParentOfType(target, type) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsType(type, 2);\n var parent = getStateTreeNode(target).parent;\n while (parent) {\n if (type.is(parent.storedValue)) return true;\n parent = parent.parent;\n }\n return false;\n}\n/**\n * Returns the target's parent of a given type, or throws.\n *\n * @param target\n * @param type\n * @returns\n */\nfunction getParentOfType(target, type) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsType(type, 2);\n var parent = getStateTreeNode(target).parent;\n while (parent) {\n if (type.is(parent.storedValue)) return parent.storedValue;\n parent = parent.parent;\n }\n throw fail$1(\"Failed to find the parent of \" + getStateTreeNode(target) + \" of a given type\");\n}\n/**\n * Given an object in a model tree, returns the root object of that tree.\n *\n * Please note that in child nodes access to the root is only possible\n * once the `afterAttach` hook has fired.\n *\n * @param target\n * @returns\n */\nfunction getRoot(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n return getStateTreeNode(target).root.storedValue;\n}\n/**\n * Returns the path of the given object in the model tree\n *\n * @param target\n * @returns\n */\nfunction getPath(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n return getStateTreeNode(target).path;\n}\n/**\n * Returns the path of the given object as unescaped string array.\n *\n * @param target\n * @returns\n */\nfunction getPathParts(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n return splitJsonPath(getStateTreeNode(target).path);\n}\n/**\n * Returns true if the given object is the root of a model tree.\n *\n * @param target\n * @returns\n */\nfunction isRoot(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n return getStateTreeNode(target).isRoot;\n}\n/**\n * Resolves a path relatively to a given object.\n * Returns undefined if no value can be found.\n *\n * @param target\n * @param path escaped json path\n * @returns\n */\nfunction resolvePath(target, path) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsString(path, 2);\n var node = resolveNodeByPath(getStateTreeNode(target), path);\n return node ? node.value : undefined;\n}\n/**\n * Resolves a model instance given a root target, the type and the identifier you are searching for.\n * Returns undefined if no value can be found.\n *\n * @param type\n * @param target\n * @param identifier\n * @returns\n */\nfunction resolveIdentifier(type, target, identifier) {\n // check all arguments\n assertIsType(type, 1);\n assertIsStateTreeNode(target, 2);\n assertIsValidIdentifier(identifier, 3);\n var node = getStateTreeNode(target).root.identifierCache.resolve(type, normalizeIdentifier(identifier));\n return node ? node.value : undefined;\n}\n/**\n * Returns the identifier of the target node.\n * This is the *string normalized* identifier, which might not match the type of the identifier attribute\n *\n * @param target\n * @returns\n */\nfunction getIdentifier(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n return getStateTreeNode(target).identifier;\n}\n/**\n * Tests if a reference is valid (pointing to an existing node and optionally if alive) and returns such reference if it the check passes,\n * else it returns undefined.\n *\n * @param getter Function to access the reference.\n * @param checkIfAlive true to also make sure the referenced node is alive (default), false to skip this check.\n * @returns\n */\nfunction tryReference(getter, checkIfAlive) {\n if (checkIfAlive === void 0) {\n checkIfAlive = true;\n }\n try {\n var node = getter();\n if (node === undefined || node === null) {\n return undefined;\n } else if (isStateTreeNode(node)) {\n if (!checkIfAlive) {\n return node;\n } else {\n return isAlive(node) ? node : undefined;\n }\n } else {\n throw fail$1(\"The reference to be checked is not one of node, null or undefined\");\n }\n } catch (e) {\n if (e instanceof InvalidReferenceError) {\n return undefined;\n }\n throw e;\n }\n}\n/**\n * Tests if a reference is valid (pointing to an existing node and optionally if alive) and returns if the check passes or not.\n *\n * @param getter Function to access the reference.\n * @param checkIfAlive true to also make sure the referenced node is alive (default), false to skip this check.\n * @returns\n */\nfunction isValidReference(getter, checkIfAlive) {\n if (checkIfAlive === void 0) {\n checkIfAlive = true;\n }\n try {\n var node = getter();\n if (node === undefined || node === null) {\n return false;\n } else if (isStateTreeNode(node)) {\n return checkIfAlive ? isAlive(node) : true;\n } else {\n throw fail$1(\"The reference to be checked is not one of node, null or undefined\");\n }\n } catch (e) {\n if (e instanceof InvalidReferenceError) {\n return false;\n }\n throw e;\n }\n}\n/**\n * Try to resolve a given path relative to a given node.\n *\n * @param target\n * @param path\n * @returns\n */\nfunction tryResolve(target, path) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsString(path, 2);\n var node = resolveNodeByPath(getStateTreeNode(target), path, false);\n if (node === undefined) return undefined;\n try {\n return node.value;\n } catch (e) {\n // For what ever reason not resolvable (e.g. totally not existing path, or value that cannot be fetched)\n // see test / issue: 'try resolve doesn't work #686'\n return undefined;\n }\n}\n/**\n * Given two state tree nodes that are part of the same tree,\n * returns the shortest jsonpath needed to navigate from the one to the other\n *\n * @param base\n * @param target\n * @returns\n */\nfunction getRelativePath(base, target) {\n // check all arguments\n assertIsStateTreeNode(base, 1);\n assertIsStateTreeNode(target, 2);\n return getRelativePathBetweenNodes(getStateTreeNode(base), getStateTreeNode(target));\n}\n/**\n * Returns a deep copy of the given state tree node as new tree.\n * Short hand for `snapshot(x) = getType(x).create(getSnapshot(x))`\n *\n * _Tip: clone will create a literal copy, including the same identifiers. To modify identifiers etc during cloning, don't use clone but take a snapshot of the tree, modify it, and create new instance_\n *\n * @param source\n * @param keepEnvironment indicates whether the clone should inherit the same environment (`true`, the default), or not have an environment (`false`). If an object is passed in as second argument, that will act as the environment for the cloned tree.\n * @returns\n */\nfunction clone(source, keepEnvironment) {\n if (keepEnvironment === void 0) {\n keepEnvironment = true;\n }\n // check all arguments\n assertIsStateTreeNode(source, 1);\n var node = getStateTreeNode(source);\n return node.type.create(node.snapshot, keepEnvironment === true ? node.root.environment : keepEnvironment === false ? undefined : keepEnvironment); // it's an object or something else\n}\n/**\n * Removes a model element from the state tree, and let it live on as a new state tree\n */\nfunction detach(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n getStateTreeNode(target).detach();\n return target;\n}\n/**\n * Removes a model element from the state tree, and mark it as end-of-life; the element should not be used anymore\n */\nfunction destroy(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n var node = getStateTreeNode(target);\n if (node.isRoot) node.die();else node.parent.removeChild(node.subpath);\n}\n/**\n * Returns true if the given state tree node is not killed yet.\n * This means that the node is still a part of a tree, and that `destroy`\n * has not been called. If a node is not alive anymore, the only thing one can do with it\n * is requesting it's last path and snapshot\n *\n * @param target\n * @returns\n */\nfunction isAlive(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n return getStateTreeNode(target).observableIsAlive;\n}\n/**\n * Use this utility to register a function that should be called whenever the\n * targeted state tree node is destroyed. This is a useful alternative to managing\n * cleanup methods yourself using the `beforeDestroy` hook.\n *\n * This methods returns the same disposer that was passed as argument.\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * title: types.string\n * }).actions(self => ({\n * afterCreate() {\n * const autoSaveDisposer = reaction(\n * () => getSnapshot(self),\n * snapshot => sendSnapshotToServerSomehow(snapshot)\n * )\n * // stop sending updates to server if this\n * // instance is destroyed\n * addDisposer(self, autoSaveDisposer)\n * }\n * }))\n * ```\n *\n * @param target\n * @param disposer\n * @returns The same disposer that was passed as argument\n */\nfunction addDisposer(target, disposer) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsFunction(disposer, 2);\n var node = getStateTreeNode(target);\n node.addDisposer(disposer);\n return disposer;\n}\n/**\n * Returns the environment of the current state tree. For more info on environments,\n * see [Dependency injection](https://github.com/mobxjs/mobx-state-tree#dependency-injection)\n *\n * Please note that in child nodes access to the root is only possible\n * once the `afterAttach` hook has fired\n *\n * Returns an empty environment if the tree wasn't initialized with an environment\n *\n * @param target\n * @returns\n */\nfunction getEnv(target) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n var node = getStateTreeNode(target);\n var env = node.root.environment;\n if (!env) return EMPTY_OBJECT;\n return env;\n}\n/**\n * Performs a depth first walk through a tree.\n */\nfunction walk(target, processor) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertIsFunction(processor, 2);\n var node = getStateTreeNode(target);\n // tslint:disable-next-line:no_unused-variable\n node.getChildren().forEach(function (child) {\n if (isStateTreeNode(child.storedValue)) walk(child.storedValue, processor);\n });\n processor(node.storedValue);\n}\n/**\n * Returns a reflection of the model type properties and name for either a model type or model node.\n *\n * @param typeOrNode\n * @returns\n */\nfunction getPropertyMembers(typeOrNode) {\n var type;\n if (isStateTreeNode(typeOrNode)) {\n type = getType(typeOrNode);\n } else {\n type = typeOrNode;\n }\n assertArg(type, function (t) {\n return isModelType(t);\n }, \"model type or model instance\", 1);\n return {\n name: type.name,\n properties: __assign({}, type.properties)\n };\n}\n/**\n * Returns a reflection of the model node, including name, properties, views, volatile and actions.\n *\n * @param target\n * @returns\n */\nfunction getMembers(target) {\n var type = getStateTreeNode(target).type;\n var reflected = __assign(__assign({}, getPropertyMembers(type)), {\n actions: [],\n volatile: [],\n views: []\n });\n var props = Object.getOwnPropertyNames(target);\n props.forEach(function (key) {\n if (key in reflected.properties) return;\n var descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor.get) {\n if (isComputedProp(target, key)) reflected.views.push(key);else reflected.volatile.push(key);\n return;\n }\n if (descriptor.value._isMSTAction === true) reflected.actions.push(key);else if (isObservableProp(target, key)) reflected.volatile.push(key);else reflected.views.push(key);\n });\n return reflected;\n}\n/**\n * Casts a node snapshot or instance type to an instance type so it can be assigned to a type instance.\n * Note that this is just a cast for the type system, this is, it won't actually convert a snapshot to an instance,\n * but just fool typescript into thinking so.\n * Either way, casting when outside an assignation operation won't compile.\n *\n * Example:\n * ```ts\n * const ModelA = types.model({\n * n: types.number\n * }).actions(self => ({\n * setN(aNumber: number) {\n * self.n = aNumber\n * }\n * }))\n *\n * const ModelB = types.model({\n * innerModel: ModelA\n * }).actions(self => ({\n * someAction() {\n * // this will allow the compiler to assign a snapshot to the property\n * self.innerModel = cast({ a: 5 })\n * }\n * }))\n * ```\n *\n * @param snapshotOrInstance Snapshot or instance\n * @returns The same object casted as an instance\n */\nfunction cast(snapshotOrInstance) {\n return snapshotOrInstance;\n}\n/**\n * Casts a node instance type to an snapshot type so it can be assigned to a type snapshot (e.g. to be used inside a create call).\n * Note that this is just a cast for the type system, this is, it won't actually convert an instance to a snapshot,\n * but just fool typescript into thinking so.\n *\n * Example:\n * ```ts\n * const ModelA = types.model({\n * n: types.number\n * }).actions(self => ({\n * setN(aNumber: number) {\n * self.n = aNumber\n * }\n * }))\n *\n * const ModelB = types.model({\n * innerModel: ModelA\n * })\n *\n * const a = ModelA.create({ n: 5 });\n * // this will allow the compiler to use a model as if it were a snapshot\n * const b = ModelB.create({ innerModel: castToSnapshot(a)})\n * ```\n *\n * @param snapshotOrInstance Snapshot or instance\n * @returns The same object casted as an input (creation) snapshot\n */\nfunction castToSnapshot(snapshotOrInstance) {\n return snapshotOrInstance;\n}\n/**\n * Casts a node instance type to a reference snapshot type so it can be assigned to a refernence snapshot (e.g. to be used inside a create call).\n * Note that this is just a cast for the type system, this is, it won't actually convert an instance to a refererence snapshot,\n * but just fool typescript into thinking so.\n *\n * Example:\n * ```ts\n * const ModelA = types.model({\n * id: types.identifier,\n * n: types.number\n * }).actions(self => ({\n * setN(aNumber: number) {\n * self.n = aNumber\n * }\n * }))\n *\n * const ModelB = types.model({\n * refA: types.reference(ModelA)\n * })\n *\n * const a = ModelA.create({ id: 'someId', n: 5 });\n * // this will allow the compiler to use a model as if it were a reference snapshot\n * const b = ModelB.create({ refA: castToReference(a)})\n * ```\n *\n * @param instance Instance\n * @returns The same object casted as an reference snapshot (string or number)\n */\nfunction castToReferenceSnapshot(instance) {\n return instance;\n}\n/**\n * Returns the unique node id (not to be confused with the instance identifier) for a\n * given instance.\n * This id is a number that is unique for each instance.\n *\n * @export\n * @param target\n * @returns\n */\nfunction getNodeId(target) {\n assertIsStateTreeNode(target, 1);\n return getStateTreeNode(target).nodeId;\n}\n\n/**\n * @internal\n * @hidden\n */\nvar BaseNode = /** @class */function () {\n function BaseNode(type, parent, subpath, environment) {\n this.type = type;\n this.environment = environment;\n this._state = NodeLifeCycle.INITIALIZING;\n this.environment = environment;\n this.baseSetParent(parent, subpath);\n }\n Object.defineProperty(BaseNode.prototype, \"subpath\", {\n get: function () {\n return this._subpath;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseNode.prototype, \"subpathUponDeath\", {\n get: function () {\n return this._subpathUponDeath;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseNode.prototype, \"pathUponDeath\", {\n get: function () {\n return this._pathUponDeath;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseNode.prototype, \"value\", {\n get: function () {\n return this.type.getValue(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseNode.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n set: function (val) {\n var wasAlive = this.isAlive;\n this._state = val;\n var isAlive = this.isAlive;\n if (this.aliveAtom && wasAlive !== isAlive) {\n this.aliveAtom.reportChanged();\n }\n },\n enumerable: false,\n configurable: true\n });\n BaseNode.prototype.fireInternalHook = function (name) {\n if (this._hookSubscribers) {\n this._hookSubscribers.emit(name, this, name);\n }\n };\n BaseNode.prototype.registerHook = function (hook, hookHandler) {\n if (!this._hookSubscribers) {\n this._hookSubscribers = new EventHandlers();\n }\n return this._hookSubscribers.register(hook, hookHandler);\n };\n Object.defineProperty(BaseNode.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: false,\n configurable: true\n });\n BaseNode.prototype.baseSetParent = function (parent, subpath) {\n this._parent = parent;\n this._subpath = subpath;\n this._escapedSubpath = undefined; // regenerate when needed\n if (this.pathAtom) {\n this.pathAtom.reportChanged();\n }\n };\n Object.defineProperty(BaseNode.prototype, \"path\", {\n /*\n * Returns (escaped) path representation as string\n */\n get: function () {\n return this.getEscapedPath(true);\n },\n enumerable: false,\n configurable: true\n });\n BaseNode.prototype.getEscapedPath = function (reportObserved) {\n if (reportObserved) {\n if (!this.pathAtom) {\n this.pathAtom = createAtom(\"path\");\n }\n this.pathAtom.reportObserved();\n }\n if (!this.parent) return \"\";\n // regenerate escaped subpath if needed\n if (this._escapedSubpath === undefined) {\n this._escapedSubpath = !this._subpath ? \"\" : escapeJsonPath(this._subpath);\n }\n return this.parent.getEscapedPath(reportObserved) + \"/\" + this._escapedSubpath;\n };\n Object.defineProperty(BaseNode.prototype, \"isRoot\", {\n get: function () {\n return this.parent === null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseNode.prototype, \"isAlive\", {\n get: function () {\n return this.state !== NodeLifeCycle.DEAD;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseNode.prototype, \"isDetaching\", {\n get: function () {\n return this.state === NodeLifeCycle.DETACHING;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseNode.prototype, \"observableIsAlive\", {\n get: function () {\n if (!this.aliveAtom) {\n this.aliveAtom = createAtom(\"alive\");\n }\n this.aliveAtom.reportObserved();\n return this.isAlive;\n },\n enumerable: false,\n configurable: true\n });\n BaseNode.prototype.baseFinalizeCreation = function (whenFinalized) {\n if (devMode()) {\n if (!this.isAlive) {\n // istanbul ignore next\n throw fail(\"assertion failed: cannot finalize the creation of a node that is already dead\");\n }\n }\n // goal: afterCreate hooks runs depth-first. After attach runs parent first, so on afterAttach the parent has completed already\n if (this.state === NodeLifeCycle.CREATED) {\n if (this.parent) {\n if (this.parent.state !== NodeLifeCycle.FINALIZED) {\n // parent not ready yet, postpone\n return;\n }\n this.fireHook(Hook.afterAttach);\n }\n this.state = NodeLifeCycle.FINALIZED;\n if (whenFinalized) {\n whenFinalized();\n }\n }\n };\n BaseNode.prototype.baseFinalizeDeath = function () {\n if (this._hookSubscribers) {\n this._hookSubscribers.clearAll();\n }\n this._subpathUponDeath = this._subpath;\n this._pathUponDeath = this.getEscapedPath(false);\n this.baseSetParent(null, \"\");\n this.state = NodeLifeCycle.DEAD;\n };\n BaseNode.prototype.baseAboutToDie = function () {\n this.fireHook(Hook.beforeDestroy);\n };\n return BaseNode;\n}();\n\n/**\n * @internal\n * @hidden\n */\nvar ScalarNode = /** @class */function (_super) {\n __extends(ScalarNode, _super);\n function ScalarNode(simpleType, parent, subpath, environment, initialSnapshot) {\n var _this = _super.call(this, simpleType, parent, subpath, environment) || this;\n try {\n _this.storedValue = simpleType.createNewInstance(initialSnapshot);\n } catch (e) {\n // short-cut to die the instance, to avoid the snapshot computed starting to throw...\n _this.state = NodeLifeCycle.DEAD;\n throw e;\n }\n _this.state = NodeLifeCycle.CREATED;\n // for scalar nodes there's no point in firing this event since it would fire on the constructor, before\n // anybody can actually register for/listen to it\n // this.fireHook(Hook.AfterCreate)\n _this.finalizeCreation();\n return _this;\n }\n Object.defineProperty(ScalarNode.prototype, \"root\", {\n get: function () {\n // future optimization: store root ref in the node and maintain it\n if (!this.parent) throw fail$1(\"This scalar node is not part of a tree\");\n return this.parent.root;\n },\n enumerable: false,\n configurable: true\n });\n ScalarNode.prototype.setParent = function (newParent, subpath) {\n var parentChanged = this.parent !== newParent;\n var subpathChanged = this.subpath !== subpath;\n if (!parentChanged && !subpathChanged) {\n return;\n }\n if (devMode()) {\n if (!subpath) {\n // istanbul ignore next\n throw fail$1(\"assertion failed: subpath expected\");\n }\n if (!newParent) {\n // istanbul ignore next\n throw fail$1(\"assertion failed: parent expected\");\n }\n if (parentChanged) {\n // istanbul ignore next\n throw fail$1(\"assertion failed: scalar nodes cannot change their parent\");\n }\n }\n this.environment = undefined; // use parent's\n this.baseSetParent(this.parent, subpath);\n };\n Object.defineProperty(ScalarNode.prototype, \"snapshot\", {\n get: function () {\n return freeze(this.getSnapshot());\n },\n enumerable: false,\n configurable: true\n });\n ScalarNode.prototype.getSnapshot = function () {\n return this.type.getSnapshot(this);\n };\n ScalarNode.prototype.toString = function () {\n var path = (this.isAlive ? this.path : this.pathUponDeath) || \"\";\n return this.type.name + \"@\" + path + (this.isAlive ? \"\" : \" [dead]\");\n };\n ScalarNode.prototype.die = function () {\n if (!this.isAlive || this.state === NodeLifeCycle.DETACHING) return;\n this.aboutToDie();\n this.finalizeDeath();\n };\n ScalarNode.prototype.finalizeCreation = function () {\n this.baseFinalizeCreation();\n };\n ScalarNode.prototype.aboutToDie = function () {\n this.baseAboutToDie();\n };\n ScalarNode.prototype.finalizeDeath = function () {\n this.baseFinalizeDeath();\n };\n ScalarNode.prototype.fireHook = function (name) {\n this.fireInternalHook(name);\n };\n __decorate([action], ScalarNode.prototype, \"die\", null);\n return ScalarNode;\n}(BaseNode);\nvar nextNodeId = 1;\nvar snapshotReactionOptions = {\n onError: function (e) {\n throw e;\n }\n};\n/**\n * @internal\n * @hidden\n */\nvar ObjectNode = /** @class */function (_super) {\n __extends(ObjectNode, _super);\n function ObjectNode(complexType, parent, subpath, environment, initialValue) {\n var _this = _super.call(this, complexType, parent, subpath, environment) || this;\n _this.nodeId = ++nextNodeId;\n _this.isProtectionEnabled = true;\n _this._autoUnbox = true; // unboxing is disabled when reading child nodes\n _this._isRunningAction = false; // only relevant for root\n _this._hasSnapshotReaction = false;\n _this._observableInstanceState = 0 /* UNINITIALIZED */;\n _this._cachedInitialSnapshotCreated = false;\n _this.unbox = _this.unbox.bind(_this);\n _this._initialSnapshot = freeze(initialValue);\n _this.identifierAttribute = complexType.identifierAttribute;\n if (!parent) {\n _this.identifierCache = new IdentifierCache();\n }\n _this._childNodes = complexType.initializeChildNodes(_this, _this._initialSnapshot);\n // identifier can not be changed during lifecycle of a node\n // so we safely can read it from initial snapshot\n _this.identifier = null;\n _this.unnormalizedIdentifier = null;\n if (_this.identifierAttribute && _this._initialSnapshot) {\n var id = _this._initialSnapshot[_this.identifierAttribute];\n if (id === undefined) {\n // try with the actual node if not (for optional identifiers)\n var childNode = _this._childNodes[_this.identifierAttribute];\n if (childNode) {\n id = childNode.value;\n }\n }\n if (typeof id !== \"string\" && typeof id !== \"number\") {\n throw fail$1(\"Instance identifier '\" + _this.identifierAttribute + \"' for type '\" + _this.type.name + \"' must be a string or a number\");\n }\n // normalize internal identifier to string\n _this.identifier = normalizeIdentifier(id);\n _this.unnormalizedIdentifier = id;\n }\n if (!parent) {\n _this.identifierCache.addNodeToCache(_this);\n } else {\n parent.root.identifierCache.addNodeToCache(_this);\n }\n return _this;\n }\n ObjectNode.prototype.applyPatches = function (patches) {\n this.createObservableInstanceIfNeeded();\n this._applyPatches(patches);\n };\n ObjectNode.prototype.applySnapshot = function (snapshot) {\n this.createObservableInstanceIfNeeded();\n this._applySnapshot(snapshot);\n };\n ObjectNode.prototype.createObservableInstanceIfNeeded = function () {\n if (this._observableInstanceState === 0 /* UNINITIALIZED */) {\n this.createObservableInstance();\n }\n };\n ObjectNode.prototype.createObservableInstance = function () {\n var e_1, _a;\n if (devMode()) {\n if (this.state !== NodeLifeCycle.INITIALIZING) {\n // istanbul ignore next\n throw fail$1(\"assertion failed: the creation of the observable instance must be done on the initializing phase\");\n }\n }\n this._observableInstanceState = 1 /* CREATING */;\n // make sure the parent chain is created as well\n // array with parent chain from parent to child\n var parentChain = [];\n var parent = this.parent;\n // for performance reasons we never go back further than the most direct\n // uninitialized parent\n // this is done to avoid traversing the whole tree to the root when using\n // the same reference again\n while (parent && parent._observableInstanceState === 0 /* UNINITIALIZED */) {\n parentChain.unshift(parent);\n parent = parent.parent;\n }\n try {\n // initialize the uninitialized parent chain from parent to child\n for (var parentChain_1 = __values(parentChain), parentChain_1_1 = parentChain_1.next(); !parentChain_1_1.done; parentChain_1_1 = parentChain_1.next()) {\n var p = parentChain_1_1.value;\n p.createObservableInstanceIfNeeded();\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (parentChain_1_1 && !parentChain_1_1.done && (_a = parentChain_1.return)) _a.call(parentChain_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n var type = this.type;\n try {\n this.storedValue = type.createNewInstance(this._childNodes);\n this.preboot();\n this._isRunningAction = true;\n type.finalizeNewInstance(this, this.storedValue);\n } catch (e) {\n // short-cut to die the instance, to avoid the snapshot computed starting to throw...\n this.state = NodeLifeCycle.DEAD;\n throw e;\n } finally {\n this._isRunningAction = false;\n }\n this._observableInstanceState = 2 /* CREATED */;\n // NOTE: we need to touch snapshot, because non-observable\n // \"_observableInstanceState\" field was touched\n invalidateComputed(this, \"snapshot\");\n if (this.isRoot) this._addSnapshotReaction();\n this._childNodes = EMPTY_OBJECT;\n this.state = NodeLifeCycle.CREATED;\n this.fireHook(Hook.afterCreate);\n this.finalizeCreation();\n };\n Object.defineProperty(ObjectNode.prototype, \"root\", {\n get: function () {\n var parent = this.parent;\n return parent ? parent.root : this;\n },\n enumerable: false,\n configurable: true\n });\n ObjectNode.prototype.clearParent = function () {\n if (!this.parent) return;\n // detach if attached\n this.fireHook(Hook.beforeDetach);\n var previousState = this.state;\n this.state = NodeLifeCycle.DETACHING;\n var root = this.root;\n var newEnv = root.environment;\n var newIdCache = root.identifierCache.splitCache(this);\n try {\n this.parent.removeChild(this.subpath);\n this.baseSetParent(null, \"\");\n this.environment = newEnv;\n this.identifierCache = newIdCache;\n } finally {\n this.state = previousState;\n }\n };\n ObjectNode.prototype.setParent = function (newParent, subpath) {\n var parentChanged = newParent !== this.parent;\n var subpathChanged = subpath !== this.subpath;\n if (!parentChanged && !subpathChanged) {\n return;\n }\n if (devMode()) {\n if (!subpath) {\n // istanbul ignore next\n throw fail$1(\"assertion failed: subpath expected\");\n }\n if (!newParent) {\n // istanbul ignore next\n throw fail$1(\"assertion failed: new parent expected\");\n }\n if (this.parent && parentChanged) {\n throw fail$1(\"A node cannot exists twice in the state tree. Failed to add \" + this + \" to path '\" + newParent.path + \"/\" + subpath + \"'.\");\n }\n if (!this.parent && newParent.root === this) {\n throw fail$1(\"A state tree is not allowed to contain itself. Cannot assign \" + this + \" to path '\" + newParent.path + \"/\" + subpath + \"'\");\n }\n if (!this.parent && !!this.environment && this.environment !== newParent.root.environment) {\n throw fail$1(\"A state tree cannot be made part of another state tree as long as their environments are different.\");\n }\n }\n if (parentChanged) {\n // attach to new parent\n this.environment = undefined; // will use root's\n newParent.root.identifierCache.mergeCache(this);\n this.baseSetParent(newParent, subpath);\n this.fireHook(Hook.afterAttach);\n } else if (subpathChanged) {\n // moving to a new subpath on the same parent\n this.baseSetParent(this.parent, subpath);\n }\n };\n ObjectNode.prototype.fireHook = function (name) {\n var _this = this;\n this.fireInternalHook(name);\n var fn = this.storedValue && typeof this.storedValue === \"object\" && this.storedValue[name];\n if (typeof fn === \"function\") {\n // we check for it to allow old mobx peer dependencies that don't have the method to work (even when still bugged)\n if (_allowStateChangesInsideComputed) {\n _allowStateChangesInsideComputed(function () {\n fn.apply(_this.storedValue);\n });\n } else {\n fn.apply(this.storedValue);\n }\n }\n };\n Object.defineProperty(ObjectNode.prototype, \"snapshot\", {\n // advantage of using computed for a snapshot is that nicely respects transactions etc.\n get: function () {\n return freeze(this.getSnapshot());\n },\n enumerable: false,\n configurable: true\n });\n // NOTE: we use this method to get snapshot without creating @computed overhead\n ObjectNode.prototype.getSnapshot = function () {\n if (!this.isAlive) return this._snapshotUponDeath;\n return this._observableInstanceState === 2 /* CREATED */ ? this._getActualSnapshot() : this._getCachedInitialSnapshot();\n };\n ObjectNode.prototype._getActualSnapshot = function () {\n return this.type.getSnapshot(this);\n };\n ObjectNode.prototype._getCachedInitialSnapshot = function () {\n if (!this._cachedInitialSnapshotCreated) {\n var type = this.type;\n var childNodes = this._childNodes;\n var snapshot = this._initialSnapshot;\n this._cachedInitialSnapshot = type.processInitialSnapshot(childNodes, snapshot);\n this._cachedInitialSnapshotCreated = true;\n }\n return this._cachedInitialSnapshot;\n };\n ObjectNode.prototype.isRunningAction = function () {\n if (this._isRunningAction) return true;\n if (this.isRoot) return false;\n return this.parent.isRunningAction();\n };\n ObjectNode.prototype.assertAlive = function (context) {\n var livelinessChecking = getLivelinessChecking();\n if (!this.isAlive && livelinessChecking !== \"ignore\") {\n var error = this._getAssertAliveError(context);\n switch (livelinessChecking) {\n case \"error\":\n throw fail$1(error);\n case \"warn\":\n warnError(error);\n }\n }\n };\n ObjectNode.prototype._getAssertAliveError = function (context) {\n var escapedPath = this.getEscapedPath(false) || this.pathUponDeath || \"\";\n var subpath = context.subpath && escapeJsonPath(context.subpath) || \"\";\n var actionContext = context.actionContext || getCurrentActionContext();\n // try to use a real action context if possible since it includes the action name\n if (actionContext && actionContext.type !== \"action\" && actionContext.parentActionEvent) {\n actionContext = actionContext.parentActionEvent;\n }\n var actionFullPath = \"\";\n if (actionContext && actionContext.name != null) {\n // try to use the context, and if it not available use the node one\n var actionPath = actionContext && actionContext.context && getPath(actionContext.context) || escapedPath;\n actionFullPath = actionPath + \".\" + actionContext.name + \"()\";\n }\n return \"You are trying to read or write to an object that is no longer part of a state tree. (Object type: '\" + this.type.name + \"', Path upon death: '\" + escapedPath + \"', Subpath: '\" + subpath + \"', Action: '\" + actionFullPath + \"'). Either detach nodes first, or don't use objects after removing / replacing them in the tree.\";\n };\n ObjectNode.prototype.getChildNode = function (subpath) {\n this.assertAlive({\n subpath: subpath\n });\n this._autoUnbox = false;\n try {\n return this._observableInstanceState === 2 /* CREATED */ ? this.type.getChildNode(this, subpath) : this._childNodes[subpath];\n } finally {\n this._autoUnbox = true;\n }\n };\n ObjectNode.prototype.getChildren = function () {\n this.assertAlive(EMPTY_OBJECT);\n this._autoUnbox = false;\n try {\n return this._observableInstanceState === 2 /* CREATED */ ? this.type.getChildren(this) : convertChildNodesToArray(this._childNodes);\n } finally {\n this._autoUnbox = true;\n }\n };\n ObjectNode.prototype.getChildType = function (propertyName) {\n return this.type.getChildType(propertyName);\n };\n Object.defineProperty(ObjectNode.prototype, \"isProtected\", {\n get: function () {\n return this.root.isProtectionEnabled;\n },\n enumerable: false,\n configurable: true\n });\n ObjectNode.prototype.assertWritable = function (context) {\n this.assertAlive(context);\n if (!this.isRunningAction() && this.isProtected) {\n throw fail$1(\"Cannot modify '\" + this + \"', the object is protected and can only be modified by using an action.\");\n }\n };\n ObjectNode.prototype.removeChild = function (subpath) {\n this.type.removeChild(this, subpath);\n };\n // bound on the constructor\n ObjectNode.prototype.unbox = function (childNode) {\n if (!childNode) return childNode;\n this.assertAlive({\n subpath: childNode.subpath || childNode.subpathUponDeath\n });\n return this._autoUnbox ? childNode.value : childNode;\n };\n ObjectNode.prototype.toString = function () {\n var path = (this.isAlive ? this.path : this.pathUponDeath) || \"\";\n var identifier = this.identifier ? \"(id: \" + this.identifier + \")\" : \"\";\n return this.type.name + \"@\" + path + identifier + (this.isAlive ? \"\" : \" [dead]\");\n };\n ObjectNode.prototype.finalizeCreation = function () {\n var _this = this;\n this.baseFinalizeCreation(function () {\n var e_2, _a;\n try {\n for (var _b = __values(_this.getChildren()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n child.finalizeCreation();\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n _this.fireInternalHook(Hook.afterCreationFinalization);\n });\n };\n ObjectNode.prototype.detach = function () {\n if (!this.isAlive) throw fail$1(\"Error while detaching, node is not alive.\");\n this.clearParent();\n };\n ObjectNode.prototype.preboot = function () {\n var self = this;\n this._applyPatches = createActionInvoker(this.storedValue, \"@APPLY_PATCHES\", function (patches) {\n patches.forEach(function (patch) {\n var parts = splitJsonPath(patch.path);\n var node = resolveNodeByPathParts(self, parts.slice(0, -1));\n node.applyPatchLocally(parts[parts.length - 1], patch);\n });\n });\n this._applySnapshot = createActionInvoker(this.storedValue, \"@APPLY_SNAPSHOT\", function (snapshot) {\n // if the snapshot is the same as the current one, avoid performing a reconcile\n if (snapshot === self.snapshot) return;\n // else, apply it by calling the type logic\n return self.type.applySnapshot(self, snapshot);\n });\n addHiddenFinalProp(this.storedValue, \"$treenode\", this);\n addHiddenFinalProp(this.storedValue, \"toJSON\", toJSON);\n };\n ObjectNode.prototype.die = function () {\n if (!this.isAlive || this.state === NodeLifeCycle.DETACHING) return;\n this.aboutToDie();\n this.finalizeDeath();\n };\n ObjectNode.prototype.aboutToDie = function () {\n if (this._observableInstanceState === 0 /* UNINITIALIZED */) {\n return;\n }\n this.getChildren().forEach(function (node) {\n node.aboutToDie();\n });\n // beforeDestroy should run before the disposers since else we could end up in a situation where\n // a disposer added with addDisposer at this stage (beforeDestroy) is actually never released\n this.baseAboutToDie();\n this._internalEventsEmit(\"dispose\" /* Dispose */);\n this._internalEventsClear(\"dispose\" /* Dispose */);\n };\n\n ObjectNode.prototype.finalizeDeath = function () {\n // invariant: not called directly but from \"die\"\n this.getChildren().forEach(function (node) {\n node.finalizeDeath();\n });\n this.root.identifierCache.notifyDied(this);\n // \"kill\" the computed prop and just store the last snapshot\n var snapshot = this.snapshot;\n this._snapshotUponDeath = snapshot;\n this._internalEventsClearAll();\n this.baseFinalizeDeath();\n };\n ObjectNode.prototype.onSnapshot = function (onChange) {\n this._addSnapshotReaction();\n return this._internalEventsRegister(\"snapshot\" /* Snapshot */, onChange);\n };\n ObjectNode.prototype.emitSnapshot = function (snapshot) {\n this._internalEventsEmit(\"snapshot\" /* Snapshot */, snapshot);\n };\n ObjectNode.prototype.onPatch = function (handler) {\n return this._internalEventsRegister(\"patch\" /* Patch */, handler);\n };\n ObjectNode.prototype.emitPatch = function (basePatch, source) {\n if (this._internalEventsHasSubscribers(\"patch\" /* Patch */)) {\n var localizedPatch = extend({}, basePatch, {\n path: source.path.substr(this.path.length) + \"/\" + basePatch.path // calculate the relative path of the patch\n });\n\n var _a = __read(splitPatch(localizedPatch), 2),\n patch = _a[0],\n reversePatch = _a[1];\n this._internalEventsEmit(\"patch\" /* Patch */, patch, reversePatch);\n }\n if (this.parent) this.parent.emitPatch(basePatch, source);\n };\n ObjectNode.prototype.hasDisposer = function (disposer) {\n return this._internalEventsHas(\"dispose\" /* Dispose */, disposer);\n };\n ObjectNode.prototype.addDisposer = function (disposer) {\n if (!this.hasDisposer(disposer)) {\n this._internalEventsRegister(\"dispose\" /* Dispose */, disposer, true);\n return;\n }\n throw fail$1(\"cannot add a disposer when it is already registered for execution\");\n };\n ObjectNode.prototype.removeDisposer = function (disposer) {\n if (!this._internalEventsHas(\"dispose\" /* Dispose */, disposer)) {\n throw fail$1(\"cannot remove a disposer which was never registered for execution\");\n }\n this._internalEventsUnregister(\"dispose\" /* Dispose */, disposer);\n };\n ObjectNode.prototype.removeMiddleware = function (middleware) {\n if (this.middlewares) {\n var index = this.middlewares.indexOf(middleware);\n if (index >= 0) {\n this.middlewares.splice(index, 1);\n }\n }\n };\n ObjectNode.prototype.addMiddleWare = function (handler, includeHooks) {\n var _this = this;\n if (includeHooks === void 0) {\n includeHooks = true;\n }\n var middleware = {\n handler: handler,\n includeHooks: includeHooks\n };\n if (!this.middlewares) this.middlewares = [middleware];else this.middlewares.push(middleware);\n return function () {\n _this.removeMiddleware(middleware);\n };\n };\n ObjectNode.prototype.applyPatchLocally = function (subpath, patch) {\n this.assertWritable({\n subpath: subpath\n });\n this.createObservableInstanceIfNeeded();\n this.type.applyPatchLocally(this, subpath, patch);\n };\n ObjectNode.prototype._addSnapshotReaction = function () {\n var _this = this;\n if (!this._hasSnapshotReaction) {\n var snapshotDisposer = reaction(function () {\n return _this.snapshot;\n }, function (snapshot) {\n return _this.emitSnapshot(snapshot);\n }, snapshotReactionOptions);\n this.addDisposer(snapshotDisposer);\n this._hasSnapshotReaction = true;\n }\n };\n // we proxy the methods to avoid creating an EventHandlers instance when it is not needed\n ObjectNode.prototype._internalEventsHasSubscribers = function (event) {\n return !!this._internalEvents && this._internalEvents.hasSubscribers(event);\n };\n ObjectNode.prototype._internalEventsRegister = function (event, eventHandler, atTheBeginning) {\n if (atTheBeginning === void 0) {\n atTheBeginning = false;\n }\n if (!this._internalEvents) {\n this._internalEvents = new EventHandlers();\n }\n return this._internalEvents.register(event, eventHandler, atTheBeginning);\n };\n ObjectNode.prototype._internalEventsHas = function (event, eventHandler) {\n return !!this._internalEvents && this._internalEvents.has(event, eventHandler);\n };\n ObjectNode.prototype._internalEventsUnregister = function (event, eventHandler) {\n if (this._internalEvents) {\n this._internalEvents.unregister(event, eventHandler);\n }\n };\n ObjectNode.prototype._internalEventsEmit = function (event) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (this._internalEvents) {\n (_a = this._internalEvents).emit.apply(_a, __spread([event], args));\n }\n };\n ObjectNode.prototype._internalEventsClear = function (event) {\n if (this._internalEvents) {\n this._internalEvents.clear(event);\n }\n };\n ObjectNode.prototype._internalEventsClearAll = function () {\n if (this._internalEvents) {\n this._internalEvents.clearAll();\n }\n };\n __decorate([action], ObjectNode.prototype, \"createObservableInstance\", null);\n __decorate([computed], ObjectNode.prototype, \"snapshot\", null);\n __decorate([action], ObjectNode.prototype, \"detach\", null);\n __decorate([action], ObjectNode.prototype, \"die\", null);\n return ObjectNode;\n}(BaseNode);\n\n/**\n * @internal\n * @hidden\n */\nvar TypeFlags;\n(function (TypeFlags) {\n TypeFlags[TypeFlags[\"String\"] = 1] = \"String\";\n TypeFlags[TypeFlags[\"Number\"] = 2] = \"Number\";\n TypeFlags[TypeFlags[\"Boolean\"] = 4] = \"Boolean\";\n TypeFlags[TypeFlags[\"Date\"] = 8] = \"Date\";\n TypeFlags[TypeFlags[\"Literal\"] = 16] = \"Literal\";\n TypeFlags[TypeFlags[\"Array\"] = 32] = \"Array\";\n TypeFlags[TypeFlags[\"Map\"] = 64] = \"Map\";\n TypeFlags[TypeFlags[\"Object\"] = 128] = \"Object\";\n TypeFlags[TypeFlags[\"Frozen\"] = 256] = \"Frozen\";\n TypeFlags[TypeFlags[\"Optional\"] = 512] = \"Optional\";\n TypeFlags[TypeFlags[\"Reference\"] = 1024] = \"Reference\";\n TypeFlags[TypeFlags[\"Identifier\"] = 2048] = \"Identifier\";\n TypeFlags[TypeFlags[\"Late\"] = 4096] = \"Late\";\n TypeFlags[TypeFlags[\"Refinement\"] = 8192] = \"Refinement\";\n TypeFlags[TypeFlags[\"Union\"] = 16384] = \"Union\";\n TypeFlags[TypeFlags[\"Null\"] = 32768] = \"Null\";\n TypeFlags[TypeFlags[\"Undefined\"] = 65536] = \"Undefined\";\n TypeFlags[TypeFlags[\"Integer\"] = 131072] = \"Integer\";\n TypeFlags[TypeFlags[\"Custom\"] = 262144] = \"Custom\";\n TypeFlags[TypeFlags[\"SnapshotProcessor\"] = 524288] = \"SnapshotProcessor\";\n})(TypeFlags || (TypeFlags = {}));\n/**\n * @internal\n * @hidden\n */\nvar cannotDetermineSubtype = \"cannotDetermine\";\n/**\n * A base type produces a MST node (Node in the state tree)\n *\n * @internal\n * @hidden\n */\nvar BaseType = /** @class */function () {\n function BaseType(name) {\n this.isType = true;\n this.name = name;\n }\n BaseType.prototype.create = function (snapshot, environment) {\n typecheckInternal(this, snapshot);\n return this.instantiate(null, \"\", environment, snapshot).value;\n };\n BaseType.prototype.getSnapshot = function (node, applyPostProcess) {\n // istanbul ignore next\n throw fail$1(\"unimplemented method\");\n };\n BaseType.prototype.isAssignableFrom = function (type) {\n return type === this;\n };\n BaseType.prototype.validate = function (value, context) {\n var node = getStateTreeNodeSafe(value);\n if (node) {\n var valueType = getType(value);\n return this.isAssignableFrom(valueType) ? typeCheckSuccess() : typeCheckFailure(context, value);\n // it is tempting to compare snapshots, but in that case we should always clone on assignments...\n }\n\n return this.isValidSnapshot(value, context);\n };\n BaseType.prototype.is = function (thing) {\n return this.validate(thing, [{\n path: \"\",\n type: this\n }]).length === 0;\n };\n Object.defineProperty(BaseType.prototype, \"Type\", {\n get: function () {\n // istanbul ignore next\n throw fail$1(\"Factory.Type should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.Type`\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseType.prototype, \"TypeWithoutSTN\", {\n get: function () {\n // istanbul ignore next\n throw fail$1(\"Factory.TypeWithoutSTN should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.TypeWithoutSTN`\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseType.prototype, \"SnapshotType\", {\n get: function () {\n // istanbul ignore next\n throw fail$1(\"Factory.SnapshotType should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.SnapshotType`\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseType.prototype, \"CreationType\", {\n get: function () {\n // istanbul ignore next\n throw fail$1(\"Factory.CreationType should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.CreationType`\");\n },\n enumerable: false,\n configurable: true\n });\n __decorate([action], BaseType.prototype, \"create\", null);\n return BaseType;\n}();\n/**\n * A complex type produces a MST node (Node in the state tree)\n *\n * @internal\n * @hidden\n */\nvar ComplexType = /** @class */function (_super) {\n __extends(ComplexType, _super);\n function ComplexType(name) {\n return _super.call(this, name) || this;\n }\n ComplexType.prototype.create = function (snapshot, environment) {\n if (snapshot === void 0) {\n snapshot = this.getDefaultSnapshot();\n }\n return _super.prototype.create.call(this, snapshot, environment);\n };\n ComplexType.prototype.getValue = function (node) {\n node.createObservableInstanceIfNeeded();\n return node.storedValue;\n };\n ComplexType.prototype.tryToReconcileNode = function (current, newValue) {\n if (current.isDetaching) return false;\n if (current.snapshot === newValue) {\n // newValue is the current snapshot of the node, noop\n return true;\n }\n if (isStateTreeNode(newValue) && getStateTreeNode(newValue) === current) {\n // the current node is the same as the new one\n return true;\n }\n if (current.type === this && isMutable(newValue) && !isStateTreeNode(newValue) && (!current.identifierAttribute || current.identifier === normalizeIdentifier(newValue[current.identifierAttribute]))) {\n // the newValue has no node, so can be treated like a snapshot\n // we can reconcile\n current.applySnapshot(newValue);\n return true;\n }\n return false;\n };\n ComplexType.prototype.reconcile = function (current, newValue, parent, subpath) {\n var nodeReconciled = this.tryToReconcileNode(current, newValue);\n if (nodeReconciled) {\n current.setParent(parent, subpath);\n return current;\n }\n // current node cannot be recycled in any way\n current.die(); // noop if detaching\n // attempt to reuse the new one\n if (isStateTreeNode(newValue) && this.isAssignableFrom(getType(newValue))) {\n // newValue is a Node as well, move it here..\n var newNode = getStateTreeNode(newValue);\n newNode.setParent(parent, subpath);\n return newNode;\n }\n // nothing to do, we have to create a new node\n return this.instantiate(parent, subpath, undefined, newValue);\n };\n ComplexType.prototype.getSubTypes = function () {\n return null;\n };\n __decorate([action], ComplexType.prototype, \"create\", null);\n return ComplexType;\n}(BaseType);\n/**\n * @internal\n * @hidden\n */\nvar SimpleType = /** @class */function (_super) {\n __extends(SimpleType, _super);\n function SimpleType() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleType.prototype.createNewInstance = function (snapshot) {\n return snapshot;\n };\n SimpleType.prototype.getValue = function (node) {\n // if we ever find a case where scalar nodes can be accessed without iterating through its parent\n // uncomment this to make sure the parent chain is created when this is accessed\n // if (node.parent) {\n // node.parent.createObservableInstanceIfNeeded()\n // }\n return node.storedValue;\n };\n SimpleType.prototype.getSnapshot = function (node) {\n return node.storedValue;\n };\n SimpleType.prototype.reconcile = function (current, newValue, parent, subpath) {\n // reconcile only if type and value are still the same, and only if the node is not detaching\n if (!current.isDetaching && current.type === this && current.storedValue === newValue) {\n return current;\n }\n var res = this.instantiate(parent, subpath, undefined, newValue);\n current.die(); // noop if detaching\n return res;\n };\n SimpleType.prototype.getSubTypes = function () {\n return null;\n };\n return SimpleType;\n}(BaseType);\n/**\n * Returns if a given value represents a type.\n *\n * @param value Value to check.\n * @returns `true` if the value is a type.\n */\nfunction isType(value) {\n return typeof value === \"object\" && value && value.isType === true;\n}\n/**\n * @internal\n * @hidden\n */\nfunction assertIsType(type, argNumber) {\n assertArg(type, isType, \"mobx-state-tree type\", argNumber);\n}\nvar runningActions = new Map();\n/**\n * Note: Consider migrating to `createActionTrackingMiddleware2`, it is easier to use.\n *\n * Convenience utility to create action based middleware that supports async processes more easily.\n * All hooks are called for both synchronous and asynchronous actions. Except that either `onSuccess` or `onFail` is called\n *\n * The create middleware tracks the process of an action (assuming it passes the `filter`).\n * `onResume` can return any value, which will be passed as second argument to any other hook. This makes it possible to keep state during a process.\n *\n * See the `atomic` middleware for an example\n *\n * @param hooks\n * @returns\n */\nfunction createActionTrackingMiddleware(hooks) {\n return function actionTrackingMiddleware(call, next, abort) {\n switch (call.type) {\n case \"action\":\n {\n if (!hooks.filter || hooks.filter(call) === true) {\n var context = hooks.onStart(call);\n hooks.onResume(call, context);\n runningActions.set(call.id, {\n call: call,\n context: context,\n async: false\n });\n try {\n var res = next(call);\n hooks.onSuspend(call, context);\n if (runningActions.get(call.id).async === false) {\n runningActions.delete(call.id);\n hooks.onSuccess(call, context, res);\n }\n return res;\n } catch (e) {\n runningActions.delete(call.id);\n hooks.onFail(call, context, e);\n throw e;\n }\n } else {\n return next(call);\n }\n }\n case \"flow_spawn\":\n {\n var root = runningActions.get(call.rootId);\n root.async = true;\n return next(call);\n }\n case \"flow_resume\":\n case \"flow_resume_error\":\n {\n var root = runningActions.get(call.rootId);\n hooks.onResume(call, root.context);\n try {\n return next(call);\n } finally {\n hooks.onSuspend(call, root.context);\n }\n }\n case \"flow_throw\":\n {\n var root = runningActions.get(call.rootId);\n runningActions.delete(call.rootId);\n hooks.onFail(call, root.context, call.args[0]);\n return next(call);\n }\n case \"flow_return\":\n {\n var root = runningActions.get(call.rootId);\n runningActions.delete(call.rootId);\n hooks.onSuccess(call, root.context, call.args[0]);\n return next(call);\n }\n }\n };\n}\nvar RunningAction = /** @class */function () {\n function RunningAction(hooks, call) {\n this.hooks = hooks;\n this.call = call;\n this.flowsPending = 0;\n this.running = true;\n if (hooks) {\n hooks.onStart(call);\n }\n }\n RunningAction.prototype.finish = function (error) {\n if (this.running) {\n this.running = false;\n if (this.hooks) {\n this.hooks.onFinish(this.call, error);\n }\n }\n };\n RunningAction.prototype.incFlowsPending = function () {\n this.flowsPending++;\n };\n RunningAction.prototype.decFlowsPending = function () {\n this.flowsPending--;\n };\n Object.defineProperty(RunningAction.prototype, \"hasFlowsPending\", {\n get: function () {\n return this.flowsPending > 0;\n },\n enumerable: false,\n configurable: true\n });\n return RunningAction;\n}();\n/**\n * Convenience utility to create action based middleware that supports async processes more easily.\n * The flow is like this:\n * - for each action: if filter passes -> `onStart` -> (inner actions recursively) -> `onFinish`\n *\n * Example: if we had an action `a` that called inside an action `b1`, then `b2` the flow would be:\n * - `filter(a)`\n * - `onStart(a)`\n * - `filter(b1)`\n * - `onStart(b1)`\n * - `onFinish(b1)`\n * - `filter(b2)`\n * - `onStart(b2)`\n * - `onFinish(b2)`\n * - `onFinish(a)`\n *\n * The flow is the same no matter if the actions are sync or async.\n *\n * See the `atomic` middleware for an example\n *\n * @param hooks\n * @returns\n */\nfunction createActionTrackingMiddleware2(middlewareHooks) {\n var runningActions = new WeakMap();\n return function actionTrackingMiddleware(call, next) {\n // find parentRunningAction\n var parentRunningAction = call.parentActionEvent ? runningActions.get(call.parentActionEvent) : undefined;\n if (call.type === \"action\") {\n var newCall = __assign(__assign({}, call), {\n // make a shallow copy of the parent action env\n env: parentRunningAction && parentRunningAction.call.env,\n parentCall: parentRunningAction && parentRunningAction.call\n });\n var passesFilter = !middlewareHooks.filter || middlewareHooks.filter(newCall);\n var hooks = passesFilter ? middlewareHooks : undefined;\n var runningAction = new RunningAction(hooks, newCall);\n runningActions.set(call, runningAction);\n var res = void 0;\n try {\n res = next(call);\n } catch (e) {\n runningAction.finish(e);\n throw e;\n }\n if (!runningAction.hasFlowsPending) {\n // sync action finished\n runningAction.finish();\n }\n return res;\n } else {\n if (!parentRunningAction) {\n return next(call);\n }\n switch (call.type) {\n case \"flow_spawn\":\n {\n parentRunningAction.incFlowsPending();\n return next(call);\n }\n case \"flow_resume\":\n case \"flow_resume_error\":\n {\n return next(call);\n }\n case \"flow_throw\":\n {\n var error = call.args[0];\n try {\n return next(call);\n } finally {\n parentRunningAction.decFlowsPending();\n if (!parentRunningAction.hasFlowsPending) {\n parentRunningAction.finish(error);\n }\n }\n }\n case \"flow_return\":\n {\n try {\n return next(call);\n } finally {\n parentRunningAction.decFlowsPending();\n if (!parentRunningAction.hasFlowsPending) {\n parentRunningAction.finish();\n }\n }\n }\n }\n }\n };\n}\nfunction serializeArgument(node, actionName, index, arg) {\n if (arg instanceof Date) return {\n $MST_DATE: arg.getTime()\n };\n if (isPrimitive(arg)) return arg;\n // We should not serialize MST nodes, even if we can, because we don't know if the receiving party can handle a raw snapshot instead of an\n // MST type instance. So if one wants to serialize a MST node that was pass in, either explitly pass: 1: an id, 2: a (relative) path, 3: a snapshot\n if (isStateTreeNode(arg)) return serializeTheUnserializable(\"[MSTNode: \" + getType(arg).name + \"]\");\n if (typeof arg === \"function\") return serializeTheUnserializable(\"[function]\");\n if (typeof arg === \"object\" && !isPlainObject(arg) && !isArray(arg)) return serializeTheUnserializable(\"[object \" + (arg && arg.constructor && arg.constructor.name || \"Complex Object\") + \"]\");\n try {\n // Check if serializable, cycle free etc...\n // MWE: there must be a better way....\n JSON.stringify(arg); // or throws\n return arg;\n } catch (e) {\n return serializeTheUnserializable(\"\" + e);\n }\n}\nfunction deserializeArgument(adm, value) {\n if (value && typeof value === \"object\" && \"$MST_DATE\" in value) return new Date(value[\"$MST_DATE\"]);\n return value;\n}\nfunction serializeTheUnserializable(baseType) {\n return {\n $MST_UNSERIALIZABLE: true,\n type: baseType\n };\n}\n/**\n * Applies an action or a series of actions in a single MobX transaction.\n * Does not return any value\n * Takes an action description as produced by the `onAction` middleware.\n *\n * @param target\n * @param actions\n */\nfunction applyAction(target, actions) {\n // check all arguments\n assertIsStateTreeNode(target, 1);\n assertArg(actions, function (a) {\n return typeof a === \"object\";\n }, \"object or array\", 2);\n runInAction(function () {\n asArray(actions).forEach(function (action) {\n return baseApplyAction(target, action);\n });\n });\n}\nfunction baseApplyAction(target, action) {\n var resolvedTarget = tryResolve(target, action.path || \"\");\n if (!resolvedTarget) throw fail$1(\"Invalid action path: \" + (action.path || \"\"));\n var node = getStateTreeNode(resolvedTarget);\n // Reserved functions\n if (action.name === \"@APPLY_PATCHES\") {\n return applyPatch.call(null, resolvedTarget, action.args[0]);\n }\n if (action.name === \"@APPLY_SNAPSHOT\") {\n return applySnapshot.call(null, resolvedTarget, action.args[0]);\n }\n if (!(typeof resolvedTarget[action.name] === \"function\")) throw fail$1(\"Action '\" + action.name + \"' does not exist in '\" + node.path + \"'\");\n return resolvedTarget[action.name].apply(resolvedTarget, action.args ? action.args.map(function (v) {\n return deserializeArgument(node, v);\n }) : []);\n}\n/**\n * Small abstraction around `onAction` and `applyAction`, attaches an action listener to a tree and records all the actions emitted.\n * Returns an recorder object with the following signature:\n *\n * Example:\n * ```ts\n * export interface IActionRecorder {\n * // the recorded actions\n * actions: ISerializedActionCall[]\n * // true if currently recording\n * recording: boolean\n * // stop recording actions\n * stop(): void\n * // resume recording actions\n * resume(): void\n * // apply all the recorded actions on the given object\n * replay(target: IAnyStateTreeNode): void\n * }\n * ```\n *\n * The optional filter function allows to skip recording certain actions.\n *\n * @param subject\n * @returns\n */\nfunction recordActions(subject, filter) {\n // check all arguments\n assertIsStateTreeNode(subject, 1);\n var actions = [];\n var listener = function (call) {\n var recordThis = filter ? filter(call, getRunningActionContext()) : true;\n if (recordThis) {\n actions.push(call);\n }\n };\n var disposer;\n var recorder = {\n actions: actions,\n get recording() {\n return !!disposer;\n },\n stop: function () {\n if (disposer) {\n disposer();\n disposer = undefined;\n }\n },\n resume: function () {\n if (disposer) return;\n disposer = onAction(subject, listener);\n },\n replay: function (target) {\n applyAction(target, actions);\n }\n };\n recorder.resume();\n return recorder;\n}\n/**\n * Registers a function that will be invoked for each action that is called on the provided model instance, or to any of its children.\n * See [actions](https://github.com/mobxjs/mobx-state-tree#actions) for more details. onAction events are emitted only for the outermost called action in the stack.\n * Action can also be intercepted by middleware using addMiddleware to change the function call before it will be run.\n *\n * Not all action arguments might be serializable. For unserializable arguments, a struct like `{ $MST_UNSERIALIZABLE: true, type: \"someType\" }` will be generated.\n * MST Nodes are considered non-serializable as well (they could be serialized as there snapshot, but it is uncertain whether an replaying party will be able to handle such a non-instantiated snapshot).\n * Rather, when using `onAction` middleware, one should consider in passing arguments which are 1: an id, 2: a (relative) path, or 3: a snapshot. Instead of a real MST node.\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * task: types.string\n * })\n *\n * const TodoStore = types.model({\n * todos: types.array(Todo)\n * }).actions(self => ({\n * add(todo) {\n * self.todos.push(todo);\n * }\n * }))\n *\n * const s = TodoStore.create({ todos: [] })\n *\n * let disposer = onAction(s, (call) => {\n * console.log(call);\n * })\n *\n * s.add({ task: \"Grab a coffee\" })\n * // Logs: { name: \"add\", path: \"\", args: [{ task: \"Grab a coffee\" }] }\n * ```\n *\n * @param target\n * @param listener\n * @param attachAfter (default false) fires the listener *after* the action has executed instead of before.\n * @returns\n */\nfunction onAction(target, listener, attachAfter) {\n if (attachAfter === void 0) {\n attachAfter = false;\n }\n // check all arguments\n assertIsStateTreeNode(target, 1);\n if (devMode()) {\n if (!isRoot(target)) warnError(\"Warning: Attaching onAction listeners to non root nodes is dangerous: No events will be emitted for actions initiated higher up in the tree.\");\n if (!isProtected(target)) warnError(\"Warning: Attaching onAction listeners to non protected nodes is dangerous: No events will be emitted for direct modifications without action.\");\n }\n return addMiddleware(target, function handler(rawCall, next) {\n if (rawCall.type === \"action\" && rawCall.id === rawCall.rootId) {\n var sourceNode_1 = getStateTreeNode(rawCall.context);\n var info = {\n name: rawCall.name,\n path: getRelativePathBetweenNodes(getStateTreeNode(target), sourceNode_1),\n args: rawCall.args.map(function (arg, index) {\n return serializeArgument(sourceNode_1, rawCall.name, index, arg);\n })\n };\n if (attachAfter) {\n var res = next(rawCall);\n listener(info);\n return res;\n } else {\n listener(info);\n return next(rawCall);\n }\n } else {\n return next(rawCall);\n }\n });\n}\nvar nextActionId = 1;\nvar currentActionContext;\n/**\n * @internal\n * @hidden\n */\nfunction getCurrentActionContext() {\n return currentActionContext;\n}\n/**\n * @internal\n * @hidden\n */\nfunction getNextActionId() {\n return nextActionId++;\n}\n// TODO: optimize away entire action context if there is no middleware in tree?\n/**\n * @internal\n * @hidden\n */\nfunction runWithActionContext(context, fn) {\n var node = getStateTreeNode(context.context);\n if (context.type === \"action\") {\n node.assertAlive({\n actionContext: context\n });\n }\n var baseIsRunningAction = node._isRunningAction;\n node._isRunningAction = true;\n var previousContext = currentActionContext;\n currentActionContext = context;\n try {\n return runMiddleWares(node, context, fn);\n } finally {\n currentActionContext = previousContext;\n node._isRunningAction = baseIsRunningAction;\n }\n}\n/**\n * @internal\n * @hidden\n */\nfunction getParentActionContext(parentContext) {\n if (!parentContext) return undefined;\n if (parentContext.type === \"action\") return parentContext;\n return parentContext.parentActionEvent;\n}\n/**\n * @internal\n * @hidden\n */\nfunction createActionInvoker(target, name, fn) {\n var res = function () {\n var id = getNextActionId();\n var parentContext = currentActionContext;\n var parentActionContext = getParentActionContext(parentContext);\n return runWithActionContext({\n type: \"action\",\n name: name,\n id: id,\n args: argsToArray(arguments),\n context: target,\n tree: getRoot(target),\n rootId: parentContext ? parentContext.rootId : id,\n parentId: parentContext ? parentContext.id : 0,\n allParentIds: parentContext ? __spread(parentContext.allParentIds, [parentContext.id]) : [],\n parentEvent: parentContext,\n parentActionEvent: parentActionContext\n }, fn);\n };\n res._isMSTAction = true;\n return res;\n}\n/**\n * Middleware can be used to intercept any action is invoked on the subtree where it is attached.\n * If a tree is protected (by default), this means that any mutation of the tree will pass through your middleware.\n *\n * For more details, see the [middleware docs](concepts/middleware.md)\n *\n * @param target Node to apply the middleware to.\n * @param middleware Middleware to apply.\n * @returns A callable function to dispose the middleware.\n */\nfunction addMiddleware(target, handler, includeHooks) {\n if (includeHooks === void 0) {\n includeHooks = true;\n }\n var node = getStateTreeNode(target);\n if (devMode()) {\n if (!node.isProtectionEnabled) {\n warnError(\"It is recommended to protect the state tree before attaching action middleware, as otherwise it cannot be guaranteed that all changes are passed through middleware. See `protect`\");\n }\n }\n return node.addMiddleWare(handler, includeHooks);\n}\n/**\n * Binds middleware to a specific action.\n *\n * Example:\n * ```ts\n * type.actions(self => {\n * function takeA____() {\n * self.toilet.donate()\n * self.wipe()\n * self.wipe()\n * self.toilet.flush()\n * }\n * return {\n * takeA____: decorate(atomic, takeA____)\n * }\n * })\n * ```\n *\n * @param handler\n * @param fn\n * @param includeHooks\n * @returns The original function\n */\nfunction decorate(handler, fn, includeHooks) {\n if (includeHooks === void 0) {\n includeHooks = true;\n }\n var middleware = {\n handler: handler,\n includeHooks: includeHooks\n };\n fn.$mst_middleware = fn.$mst_middleware || [];\n fn.$mst_middleware.push(middleware);\n return fn;\n}\nvar CollectedMiddlewares = /** @class */function () {\n function CollectedMiddlewares(node, fn) {\n this.arrayIndex = 0;\n this.inArrayIndex = 0;\n this.middlewares = [];\n // we just push middleware arrays into an array of arrays to avoid making copies\n if (fn.$mst_middleware) {\n this.middlewares.push(fn.$mst_middleware);\n }\n var n = node;\n // Find all middlewares. Optimization: cache this?\n while (n) {\n if (n.middlewares) this.middlewares.push(n.middlewares);\n n = n.parent;\n }\n }\n Object.defineProperty(CollectedMiddlewares.prototype, \"isEmpty\", {\n get: function () {\n return this.middlewares.length <= 0;\n },\n enumerable: false,\n configurable: true\n });\n CollectedMiddlewares.prototype.getNextMiddleware = function () {\n var array = this.middlewares[this.arrayIndex];\n if (!array) return undefined;\n var item = array[this.inArrayIndex++];\n if (!item) {\n this.arrayIndex++;\n this.inArrayIndex = 0;\n return this.getNextMiddleware();\n }\n return item;\n };\n return CollectedMiddlewares;\n}();\nfunction runMiddleWares(node, baseCall, originalFn) {\n var middlewares = new CollectedMiddlewares(node, originalFn);\n // Short circuit\n if (middlewares.isEmpty) return action(originalFn).apply(null, baseCall.args);\n var result = null;\n function runNextMiddleware(call) {\n var middleware = middlewares.getNextMiddleware();\n var handler = middleware && middleware.handler;\n if (!handler) {\n return action(originalFn).apply(null, call.args);\n }\n // skip hooks if asked to\n if (!middleware.includeHooks && Hook[call.name]) {\n return runNextMiddleware(call);\n }\n var nextInvoked = false;\n function next(call2, callback) {\n nextInvoked = true;\n // the result can contain\n // - the non manipulated return value from an action\n // - the non manipulated abort value\n // - one of the above but manipulated through the callback function\n result = runNextMiddleware(call2);\n if (callback) {\n result = callback(result);\n }\n }\n var abortInvoked = false;\n function abort(value) {\n abortInvoked = true;\n // overwrite the result\n // can be manipulated through middlewares earlier in the queue using the callback fn\n result = value;\n }\n handler(call, next, abort);\n if (devMode()) {\n if (!nextInvoked && !abortInvoked) {\n var node2 = getStateTreeNode(call.tree);\n throw fail$1(\"Neither the next() nor the abort() callback within the middleware \" + handler.name + \" for the action: \\\"\" + call.name + \"\\\" on the node: \" + node2.type.name + \" was invoked.\");\n } else if (nextInvoked && abortInvoked) {\n var node2 = getStateTreeNode(call.tree);\n throw fail$1(\"The next() and abort() callback within the middleware \" + handler.name + \" for the action: \\\"\" + call.name + \"\\\" on the node: \" + node2.type.name + \" were invoked.\");\n }\n }\n return result;\n }\n return runNextMiddleware(baseCall);\n}\n\n/**\n * Returns the currently executing MST action context, or undefined if none.\n */\nfunction getRunningActionContext() {\n var current = getCurrentActionContext();\n while (current && current.type !== \"action\") {\n current = current.parentActionEvent;\n }\n return current;\n}\nfunction _isActionContextThisOrChildOf(actionContext, sameOrParent, includeSame) {\n var parentId = typeof sameOrParent === \"number\" ? sameOrParent : sameOrParent.id;\n var current = includeSame ? actionContext : actionContext.parentActionEvent;\n while (current) {\n if (current.id === parentId) {\n return true;\n }\n current = current.parentActionEvent;\n }\n return false;\n}\n/**\n * Returns if the given action context is a parent of this action context.\n */\nfunction isActionContextChildOf(actionContext, parent) {\n return _isActionContextThisOrChildOf(actionContext, parent, false);\n}\n/**\n * Returns if the given action context is this or a parent of this action context.\n */\nfunction isActionContextThisOrChildOf(actionContext, parentOrThis) {\n return _isActionContextThisOrChildOf(actionContext, parentOrThis, true);\n}\nfunction safeStringify(value) {\n try {\n return JSON.stringify(value);\n } catch (e) {\n // istanbul ignore next\n return \"\";\n }\n}\n/**\n * @internal\n * @hidden\n */\nfunction prettyPrintValue(value) {\n return typeof value === \"function\" ? \"\" : isStateTreeNode(value) ? \"<\" + value + \">\" : \"`\" + safeStringify(value) + \"`\";\n}\nfunction shortenPrintValue(valueInString) {\n return valueInString.length < 280 ? valueInString : valueInString.substring(0, 272) + \"......\" + valueInString.substring(valueInString.length - 8);\n}\nfunction toErrorString(error) {\n var value = error.value;\n var type = error.context[error.context.length - 1].type;\n var fullPath = error.context.map(function (_a) {\n var path = _a.path;\n return path;\n }).filter(function (path) {\n return path.length > 0;\n }).join(\"/\");\n var pathPrefix = fullPath.length > 0 ? \"at path \\\"/\" + fullPath + \"\\\" \" : \"\";\n var currentTypename = isStateTreeNode(value) ? \"value of type \" + getStateTreeNode(value).type.name + \":\" : isPrimitive(value) ? \"value\" : \"snapshot\";\n var isSnapshotCompatible = type && isStateTreeNode(value) && type.is(getStateTreeNode(value).snapshot);\n return \"\" + pathPrefix + currentTypename + \" \" + prettyPrintValue(value) + \" is not assignable \" + (type ? \"to type: `\" + type.name + \"`\" : \"\") + (error.message ? \" (\" + error.message + \")\" : \"\") + (type ? isPrimitiveType(type) || isPrimitive(value) ? \".\" : \", expected an instance of `\" + type.name + \"` or a snapshot like `\" + type.describe() + \"` instead.\" + (isSnapshotCompatible ? \" (Note that a snapshot of the provided value is compatible with the targeted type)\" : \"\") : \".\");\n}\n/**\n * @internal\n * @hidden\n */\nfunction getContextForPath(context, path, type) {\n return context.concat([{\n path: path,\n type: type\n }]);\n}\n/**\n * @internal\n * @hidden\n */\nfunction typeCheckSuccess() {\n return EMPTY_ARRAY;\n}\n/**\n * @internal\n * @hidden\n */\nfunction typeCheckFailure(context, value, message) {\n return [{\n context: context,\n value: value,\n message: message\n }];\n}\n/**\n * @internal\n * @hidden\n */\nfunction flattenTypeErrors(errors) {\n return errors.reduce(function (a, i) {\n return a.concat(i);\n }, []);\n}\n// TODO; doublecheck: typecheck should only needed to be invoked from: type.create and array / map / value.property will change\n/**\n * @internal\n * @hidden\n */\nfunction typecheckInternal(type, value) {\n // runs typeChecking if it is in dev-mode or through a process.env.ENABLE_TYPE_CHECK flag\n if (isTypeCheckingEnabled()) {\n typecheck(type, value);\n }\n}\n/**\n * Run's the typechecker for the given type on the given value, which can be a snapshot or an instance.\n * Throws if the given value is not according the provided type specification.\n * Use this if you need typechecks even in a production build (by default all automatic runtime type checks will be skipped in production builds)\n *\n * @param type Type to check against.\n * @param value Value to be checked, either a snapshot or an instance.\n */\nfunction typecheck(type, value) {\n var errors = type.validate(value, [{\n path: \"\",\n type: type\n }]);\n if (errors.length > 0) {\n throw fail$1(validationErrorsToString(type, value, errors));\n }\n}\nfunction validationErrorsToString(type, value, errors) {\n if (errors.length === 0) {\n return undefined;\n }\n return \"Error while converting \" + shortenPrintValue(prettyPrintValue(value)) + \" to `\" + type.name + \"`:\\n\\n \" + errors.map(toErrorString).join(\"\\n \");\n}\nvar identifierCacheId = 0;\n/**\n * @internal\n * @hidden\n */\nvar IdentifierCache = /** @class */function () {\n function IdentifierCache() {\n this.cacheId = identifierCacheId++;\n // n.b. in cache all identifiers are normalized to strings\n this.cache = observable.map();\n // last time the cache (array) for a given time changed\n // n.b. it is not really the time, but just an integer that gets increased after each modification to the array\n this.lastCacheModificationPerId = observable.map();\n }\n IdentifierCache.prototype.updateLastCacheModificationPerId = function (identifier) {\n var lcm = this.lastCacheModificationPerId.get(identifier);\n // we start at 1 since 0 means no update since cache creation\n this.lastCacheModificationPerId.set(identifier, lcm === undefined ? 1 : lcm + 1);\n };\n IdentifierCache.prototype.getLastCacheModificationPerId = function (identifier) {\n var modificationId = this.lastCacheModificationPerId.get(identifier) || 0;\n return this.cacheId + \"-\" + modificationId;\n };\n IdentifierCache.prototype.addNodeToCache = function (node, lastCacheUpdate) {\n if (lastCacheUpdate === void 0) {\n lastCacheUpdate = true;\n }\n if (node.identifierAttribute) {\n var identifier = node.identifier;\n if (!this.cache.has(identifier)) {\n this.cache.set(identifier, observable.array([], mobxShallow));\n }\n var set = this.cache.get(identifier);\n if (set.indexOf(node) !== -1) throw fail$1(\"Already registered\");\n set.push(node);\n if (lastCacheUpdate) {\n this.updateLastCacheModificationPerId(identifier);\n }\n }\n };\n IdentifierCache.prototype.mergeCache = function (node) {\n var _this = this;\n values(node.identifierCache.cache).forEach(function (nodes) {\n return nodes.forEach(function (child) {\n _this.addNodeToCache(child);\n });\n });\n };\n IdentifierCache.prototype.notifyDied = function (node) {\n if (node.identifierAttribute) {\n var id = node.identifier;\n var set = this.cache.get(id);\n if (set) {\n set.remove(node);\n // remove empty sets from cache\n if (!set.length) {\n this.cache.delete(id);\n }\n this.updateLastCacheModificationPerId(node.identifier);\n }\n }\n };\n IdentifierCache.prototype.splitCache = function (node) {\n var _this = this;\n var res = new IdentifierCache();\n var basePath = node.path;\n entries(this.cache).forEach(function (_a) {\n var _b = __read(_a, 2),\n id = _b[0],\n nodes = _b[1];\n var modified = false;\n for (var i = nodes.length - 1; i >= 0; i--) {\n if (nodes[i].path.indexOf(basePath) === 0) {\n res.addNodeToCache(nodes[i], false); // no need to update lastUpdated since it is a whole new cache\n nodes.splice(i, 1);\n modified = true;\n }\n }\n if (modified) {\n _this.updateLastCacheModificationPerId(id);\n }\n });\n return res;\n };\n IdentifierCache.prototype.has = function (type, identifier) {\n var set = this.cache.get(identifier);\n if (!set) return false;\n return set.some(function (candidate) {\n return type.isAssignableFrom(candidate.type);\n });\n };\n IdentifierCache.prototype.resolve = function (type, identifier) {\n var set = this.cache.get(identifier);\n if (!set) return null;\n var matches = set.filter(function (candidate) {\n return type.isAssignableFrom(candidate.type);\n });\n switch (matches.length) {\n case 0:\n return null;\n case 1:\n return matches[0];\n default:\n throw fail$1(\"Cannot resolve a reference to type '\" + type.name + \"' with id: '\" + identifier + \"' unambigously, there are multiple candidates: \" + matches.map(function (n) {\n return n.path;\n }).join(\", \"));\n }\n };\n return IdentifierCache;\n}();\n\n/**\n * @internal\n * @hidden\n */\nfunction createObjectNode(type, parent, subpath, environment, initialValue) {\n var existingNode = getStateTreeNodeSafe(initialValue);\n if (existingNode) {\n if (existingNode.parent) {\n // istanbul ignore next\n throw fail$1(\"Cannot add an object to a state tree if it is already part of the same or another state tree. Tried to assign an object to '\" + (parent ? parent.path : \"\") + \"/\" + subpath + \"', but it lives already at '\" + existingNode.path + \"'\");\n }\n if (parent) {\n existingNode.setParent(parent, subpath);\n }\n // else it already has no parent since it is a pre-requisite\n return existingNode;\n }\n // not a node, a snapshot\n return new ObjectNode(type, parent, subpath, environment, initialValue);\n}\n/**\n * @internal\n * @hidden\n */\nfunction createScalarNode(type, parent, subpath, environment, initialValue) {\n return new ScalarNode(type, parent, subpath, environment, initialValue);\n}\n/**\n * @internal\n * @hidden\n */\nfunction isNode(value) {\n return value instanceof ScalarNode || value instanceof ObjectNode;\n}\n\n/**\n * @internal\n * @hidden\n */\nvar NodeLifeCycle;\n(function (NodeLifeCycle) {\n NodeLifeCycle[NodeLifeCycle[\"INITIALIZING\"] = 0] = \"INITIALIZING\";\n NodeLifeCycle[NodeLifeCycle[\"CREATED\"] = 1] = \"CREATED\";\n NodeLifeCycle[NodeLifeCycle[\"FINALIZED\"] = 2] = \"FINALIZED\";\n NodeLifeCycle[NodeLifeCycle[\"DETACHING\"] = 3] = \"DETACHING\";\n NodeLifeCycle[NodeLifeCycle[\"DEAD\"] = 4] = \"DEAD\"; // no coming back from this one\n})(NodeLifeCycle || (NodeLifeCycle = {}));\n/**\n * Returns true if the given value is a node in a state tree.\n * More precisely, that is, if the value is an instance of a\n * `types.model`, `types.array` or `types.map`.\n *\n * @param value\n * @returns true if the value is a state tree node.\n */\nfunction isStateTreeNode(value) {\n return !!(value && value.$treenode);\n}\n/**\n * @internal\n * @hidden\n */\nfunction assertIsStateTreeNode(value, argNumber) {\n assertArg(value, isStateTreeNode, \"mobx-state-tree node\", argNumber);\n}\n/**\n * @internal\n * @hidden\n */\nfunction getStateTreeNode(value) {\n if (!isStateTreeNode(value)) {\n // istanbul ignore next\n throw fail$1(\"Value \" + value + \" is no MST Node\");\n }\n return value.$treenode;\n}\n/**\n * @internal\n * @hidden\n */\nfunction getStateTreeNodeSafe(value) {\n return value && value.$treenode || null;\n}\n/**\n * @internal\n * @hidden\n */\nfunction toJSON() {\n return getStateTreeNode(this).snapshot;\n}\nvar doubleDot = function (_) {\n return \"..\";\n};\n/**\n * @internal\n * @hidden\n */\nfunction getRelativePathBetweenNodes(base, target) {\n // PRE condition target is (a child of) base!\n if (base.root !== target.root) {\n throw fail$1(\"Cannot calculate relative path: objects '\" + base + \"' and '\" + target + \"' are not part of the same object tree\");\n }\n var baseParts = splitJsonPath(base.path);\n var targetParts = splitJsonPath(target.path);\n var common = 0;\n for (; common < baseParts.length; common++) {\n if (baseParts[common] !== targetParts[common]) break;\n }\n // TODO: assert that no targetParts paths are \"..\", \".\" or \"\"!\n return baseParts.slice(common).map(doubleDot).join(\"/\") + joinJsonPath(targetParts.slice(common));\n}\n/**\n * @internal\n * @hidden\n */\nfunction resolveNodeByPath(base, path, failIfResolveFails) {\n if (failIfResolveFails === void 0) {\n failIfResolveFails = true;\n }\n return resolveNodeByPathParts(base, splitJsonPath(path), failIfResolveFails);\n}\n/**\n * @internal\n * @hidden\n */\nfunction resolveNodeByPathParts(base, pathParts, failIfResolveFails) {\n if (failIfResolveFails === void 0) {\n failIfResolveFails = true;\n }\n var current = base;\n for (var i = 0; i < pathParts.length; i++) {\n var part = pathParts[i];\n if (part === \"..\") {\n current = current.parent;\n if (current) continue; // not everything has a parent\n } else if (part === \".\") {\n continue;\n } else if (current) {\n if (current instanceof ScalarNode) {\n // check if the value of a scalar resolves to a state tree node (e.g. references)\n // then we can continue resolving...\n try {\n var value = current.value;\n if (isStateTreeNode(value)) {\n current = getStateTreeNode(value);\n // fall through\n }\n } catch (e) {\n if (!failIfResolveFails) {\n return undefined;\n }\n throw e;\n }\n }\n if (current instanceof ObjectNode) {\n var subType = current.getChildType(part);\n if (subType) {\n current = current.getChildNode(part);\n if (current) continue;\n }\n }\n }\n if (failIfResolveFails) throw fail$1(\"Could not resolve '\" + part + \"' in path '\" + (joinJsonPath(pathParts.slice(0, i)) || \"/\") + \"' while resolving '\" + joinJsonPath(pathParts) + \"'\");else return undefined;\n }\n return current;\n}\n/**\n * @internal\n * @hidden\n */\nfunction convertChildNodesToArray(childNodes) {\n if (!childNodes) return EMPTY_ARRAY;\n var keys = Object.keys(childNodes);\n if (!keys.length) return EMPTY_ARRAY;\n var result = new Array(keys.length);\n keys.forEach(function (key, index) {\n result[index] = childNodes[key];\n });\n return result;\n}\n\n// based on: https://github.com/mobxjs/mobx-utils/blob/master/src/async-action.ts\n/*\n All contents of this file are deprecated.\n\n The term `process` has been replaced with `flow` to avoid conflicts with the\n global `process` object.\n\n Refer to `flow.ts` for any further changes to this implementation.\n*/\nvar DEPRECATION_MESSAGE = \"See https://github.com/mobxjs/mobx-state-tree/issues/399 for more information. \" + \"Note that the middleware event types starting with `process` now start with `flow`.\";\n/**\n * @hidden\n *\n * @deprecated has been renamed to `flow()`.\n * See https://github.com/mobxjs/mobx-state-tree/issues/399 for more information.\n * Note that the middleware event types starting with `process` now start with `flow`.\n *\n * @returns {Promise}\n */\nfunction process$1(asyncAction) {\n deprecated(\"process\", \"`process()` has been renamed to `flow()`. \" + DEPRECATION_MESSAGE);\n return flow(asyncAction);\n}\n\n/**\n * @internal\n * @hidden\n */\nvar EMPTY_ARRAY = Object.freeze([]);\n/**\n * @internal\n * @hidden\n */\nvar EMPTY_OBJECT = Object.freeze({});\n/**\n * @internal\n * @hidden\n */\nvar mobxShallow = typeof $mobx === \"string\" ? {\n deep: false\n} : {\n deep: false,\n proxy: false\n};\nObject.freeze(mobxShallow);\n/**\n * @internal\n * @hidden\n */\nfunction fail$1(message) {\n if (message === void 0) {\n message = \"Illegal state\";\n }\n return new Error(\"[mobx-state-tree] \" + message);\n}\n/**\n * @internal\n * @hidden\n */\nfunction identity(_) {\n return _;\n}\n/**\n * pollyfill (for IE) suggested in MDN:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger\n * @internal\n * @hidden\n */\nvar isInteger = Number.isInteger || function (value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n/**\n * @internal\n * @hidden\n */\nfunction isArray(val) {\n return Array.isArray(val) || isObservableArray(val);\n}\n/**\n * @internal\n * @hidden\n */\nfunction asArray(val) {\n if (!val) return EMPTY_ARRAY;\n if (isArray(val)) return val;\n return [val];\n}\n/**\n * @internal\n * @hidden\n */\nfunction extend(a) {\n var b = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n b[_i - 1] = arguments[_i];\n }\n for (var i = 0; i < b.length; i++) {\n var current = b[i];\n for (var key in current) a[key] = current[key];\n }\n return a;\n}\n/**\n * @internal\n * @hidden\n */\nfunction isPlainObject(value) {\n if (value === null || typeof value !== \"object\") return false;\n var proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n/**\n * @internal\n * @hidden\n */\nfunction isMutable(value) {\n return value !== null && typeof value === \"object\" && !(value instanceof Date) && !(value instanceof RegExp);\n}\n/**\n * @internal\n * @hidden\n */\nfunction isPrimitive(value, includeDate) {\n if (includeDate === void 0) {\n includeDate = true;\n }\n if (value === null || value === undefined) return true;\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || includeDate && value instanceof Date) return true;\n return false;\n}\n/**\n * @internal\n * @hidden\n * Freeze a value and return it (if not in production)\n */\nfunction freeze(value) {\n if (!devMode()) return value;\n return isPrimitive(value) || isObservableArray(value) ? value : Object.freeze(value);\n}\n/**\n * @internal\n * @hidden\n * Recursively freeze a value (if not in production)\n */\nfunction deepFreeze(value) {\n if (!devMode()) return value;\n freeze(value);\n if (isPlainObject(value)) {\n Object.keys(value).forEach(function (propKey) {\n if (!isPrimitive(value[propKey]) && !Object.isFrozen(value[propKey])) {\n deepFreeze(value[propKey]);\n }\n });\n }\n return value;\n}\n/**\n * @internal\n * @hidden\n */\nfunction isSerializable(value) {\n return typeof value !== \"function\";\n}\n/**\n * @internal\n * @hidden\n */\nfunction addHiddenFinalProp(object, propName, value) {\n Object.defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\n/**\n * @internal\n * @hidden\n */\nfunction addHiddenWritableProp(object, propName, value) {\n Object.defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\n/**\n * @internal\n * @hidden\n */\nvar EventHandler = /** @class */function () {\n function EventHandler() {\n this.handlers = [];\n }\n Object.defineProperty(EventHandler.prototype, \"hasSubscribers\", {\n get: function () {\n return this.handlers.length > 0;\n },\n enumerable: false,\n configurable: true\n });\n EventHandler.prototype.register = function (fn, atTheBeginning) {\n var _this = this;\n if (atTheBeginning === void 0) {\n atTheBeginning = false;\n }\n if (atTheBeginning) {\n this.handlers.unshift(fn);\n } else {\n this.handlers.push(fn);\n }\n return function () {\n _this.unregister(fn);\n };\n };\n EventHandler.prototype.has = function (fn) {\n return this.handlers.indexOf(fn) >= 0;\n };\n EventHandler.prototype.unregister = function (fn) {\n var index = this.handlers.indexOf(fn);\n if (index >= 0) {\n this.handlers.splice(index, 1);\n }\n };\n EventHandler.prototype.clear = function () {\n this.handlers.length = 0;\n };\n EventHandler.prototype.emit = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // make a copy just in case it changes\n var handlers = this.handlers.slice();\n handlers.forEach(function (f) {\n return f.apply(void 0, __spread(args));\n });\n };\n return EventHandler;\n}();\n/**\n * @internal\n * @hidden\n */\nvar EventHandlers = /** @class */function () {\n function EventHandlers() {}\n EventHandlers.prototype.hasSubscribers = function (event) {\n var handler = this.eventHandlers && this.eventHandlers[event];\n return !!handler && handler.hasSubscribers;\n };\n EventHandlers.prototype.register = function (event, fn, atTheBeginning) {\n if (atTheBeginning === void 0) {\n atTheBeginning = false;\n }\n if (!this.eventHandlers) {\n this.eventHandlers = {};\n }\n var handler = this.eventHandlers[event];\n if (!handler) {\n handler = this.eventHandlers[event] = new EventHandler();\n }\n return handler.register(fn, atTheBeginning);\n };\n EventHandlers.prototype.has = function (event, fn) {\n var handler = this.eventHandlers && this.eventHandlers[event];\n return !!handler && handler.has(fn);\n };\n EventHandlers.prototype.unregister = function (event, fn) {\n var handler = this.eventHandlers && this.eventHandlers[event];\n if (handler) {\n handler.unregister(fn);\n }\n };\n EventHandlers.prototype.clear = function (event) {\n if (this.eventHandlers) {\n delete this.eventHandlers[event];\n }\n };\n EventHandlers.prototype.clearAll = function () {\n this.eventHandlers = undefined;\n };\n EventHandlers.prototype.emit = function (event) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var handler = this.eventHandlers && this.eventHandlers[event];\n if (handler) {\n (_a = handler).emit.apply(_a, __spread(args));\n }\n };\n return EventHandlers;\n}();\n/**\n * @internal\n * @hidden\n */\nfunction argsToArray(args) {\n var res = new Array(args.length);\n for (var i = 0; i < args.length; i++) res[i] = args[i];\n return res;\n}\n/**\n * @internal\n * @hidden\n */\nfunction invalidateComputed(target, propName) {\n var atom = getAtom(target, propName);\n atom.trackAndCompute();\n}\n/**\n * @internal\n * @hidden\n */\nfunction stringStartsWith(str, beginning) {\n return str.indexOf(beginning) === 0;\n}\n/**\n * @internal\n * @hidden\n */\nvar deprecated = function (id, message) {\n // skip if running production\n if (!devMode()) return;\n // warn if hasn't been warned before\n if (deprecated.ids && !deprecated.ids.hasOwnProperty(id)) {\n warnError(\"Deprecation warning: \" + message);\n }\n // mark as warned to avoid duplicate warn message\n if (deprecated.ids) deprecated.ids[id] = true;\n};\ndeprecated.ids = {};\n/**\n * @internal\n * @hidden\n */\nfunction warnError(msg) {\n console.warn(new Error(\"[mobx-state-tree] \" + msg));\n}\n/**\n * @internal\n * @hidden\n */\nfunction isTypeCheckingEnabled() {\n return devMode() || typeof process !== \"undefined\" && process.env && process.env.ENABLE_TYPE_CHECK === \"true\";\n}\n/**\n * @internal\n * @hidden\n */\nfunction devMode() {\n return process.env.NODE_ENV !== \"production\";\n}\n/**\n * @internal\n * @hidden\n */\nfunction assertArg(value, fn, typeName, argNumber) {\n if (devMode()) {\n if (!fn(value)) {\n // istanbul ignore next\n throw fail$1(\"expected \" + typeName + \" as argument \" + asArray(argNumber).join(\" or \") + \", got \" + value + \" instead\");\n }\n }\n}\n/**\n * @internal\n * @hidden\n */\nfunction assertIsFunction(value, argNumber) {\n assertArg(value, function (fn) {\n return typeof fn === \"function\";\n }, \"function\", argNumber);\n}\n/**\n * @internal\n * @hidden\n */\nfunction assertIsNumber(value, argNumber, min, max) {\n assertArg(value, function (n) {\n return typeof n === \"number\";\n }, \"number\", argNumber);\n if (min !== undefined) {\n assertArg(value, function (n) {\n return n >= min;\n }, \"number greater than \" + min, argNumber);\n }\n if (max !== undefined) {\n assertArg(value, function (n) {\n return n <= max;\n }, \"number lesser than \" + max, argNumber);\n }\n}\n/**\n * @internal\n * @hidden\n */\nfunction assertIsString(value, argNumber, canBeEmpty) {\n if (canBeEmpty === void 0) {\n canBeEmpty = true;\n }\n assertArg(value, function (s) {\n return typeof s === \"string\";\n }, \"string\", argNumber);\n if (!canBeEmpty) {\n assertArg(value, function (s) {\n return s !== \"\";\n }, \"not empty string\", argNumber);\n }\n}\n/**\n * @internal\n * @hidden\n */\nfunction setImmediateWithFallback(fn) {\n if (typeof queueMicrotask === \"function\") {\n queueMicrotask(fn);\n } else if (typeof setImmediate === \"function\") {\n setImmediate(fn);\n } else {\n setTimeout(fn, 1);\n }\n}\n\n/**\n * See [asynchronous actions](concepts/async-actions.md).\n *\n * @returns The flow as a promise.\n */\nfunction flow(generator) {\n return createFlowSpawner(generator.name, generator);\n}\n/**\n * @deprecated Not needed since TS3.6.\n * Used for TypeScript to make flows that return a promise return the actual promise result.\n *\n * @param val\n * @returns\n */\nfunction castFlowReturn(val) {\n return val;\n}\n/**\n * @experimental\n * experimental api - might change on minor/patch releases\n *\n * Convert a promise-returning function to a generator-returning one.\n * This is intended to allow for usage of `yield*` in async actions to\n * retain the promise return type.\n *\n * Example:\n * ```ts\n * function getDataAsync(input: string): Promise { ... }\n * const getDataGen = toGeneratorFunction(getDataAsync);\n *\n * const someModel.actions(self => ({\n * someAction: flow(function*() {\n * // value is typed as number\n * const value = yield* getDataGen(\"input value\");\n * ...\n * })\n * }))\n * ```\n */\nfunction toGeneratorFunction(p) {\n return function () {\n var _i;\n var args = [];\n for (_i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, p.apply(void 0, __spread(args))];\n case 1:\n return [2 /*return*/, _a.sent()];\n }\n });\n };\n}\n/**\n * @experimental\n * experimental api - might change on minor/patch releases\n *\n * Convert a promise to a generator yielding that promise\n * This is intended to allow for usage of `yield*` in async actions to\n * retain the promise return type.\n *\n * Example:\n * ```ts\n * function getDataAsync(input: string): Promise { ... }\n *\n * const someModel.actions(self => ({\n * someAction: flow(function*() {\n * // value is typed as number\n * const value = yield* toGenerator(getDataAsync(\"input value\"));\n * ...\n * })\n * }))\n * ```\n */\nfunction toGenerator(p) {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, p];\n case 1:\n return [2 /*return*/, _a.sent()];\n }\n });\n}\n/**\n * @internal\n * @hidden\n */\nfunction createFlowSpawner(name, generator) {\n var spawner = function flowSpawner() {\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var runId = getNextActionId();\n var parentContext = getCurrentActionContext();\n if (!parentContext) {\n throw fail$1(\"a mst flow must always have a parent context\");\n }\n var parentActionContext = getParentActionContext(parentContext);\n if (!parentActionContext) {\n throw fail$1(\"a mst flow must always have a parent action context\");\n }\n var contextBase = {\n name: name,\n id: runId,\n tree: parentContext.tree,\n context: parentContext.context,\n parentId: parentContext.id,\n allParentIds: __spread(parentContext.allParentIds, [parentContext.id]),\n rootId: parentContext.rootId,\n parentEvent: parentContext,\n parentActionEvent: parentActionContext\n };\n var args = arguments;\n function wrap(fn, type, arg) {\n fn.$mst_middleware = spawner.$mst_middleware; // pick up any middleware attached to the flow\n runWithActionContext(__assign(__assign({}, contextBase), {\n type: type,\n args: [arg]\n }), fn);\n }\n return new Promise(function (resolve, reject) {\n var gen;\n var init = function asyncActionInit() {\n gen = generator.apply(null, arguments);\n onFulfilled(undefined); // kick off the flow\n };\n\n init.$mst_middleware = spawner.$mst_middleware;\n runWithActionContext(__assign(__assign({}, contextBase), {\n type: \"flow_spawn\",\n args: argsToArray(args)\n }), init);\n function onFulfilled(res) {\n var ret;\n try {\n // prettier-ignore\n wrap(function (r) {\n ret = gen.next(r);\n }, \"flow_resume\", res);\n } catch (e) {\n // prettier-ignore\n setImmediateWithFallback(function () {\n wrap(function (r) {\n reject(e);\n }, \"flow_throw\", e);\n });\n return;\n }\n next(ret);\n return;\n }\n function onRejected(err) {\n var ret;\n try {\n // prettier-ignore\n wrap(function (r) {\n ret = gen.throw(r);\n }, \"flow_resume_error\", err); // or yieldError?\n } catch (e) {\n // prettier-ignore\n setImmediateWithFallback(function () {\n wrap(function (r) {\n reject(e);\n }, \"flow_throw\", e);\n });\n return;\n }\n next(ret);\n }\n function next(ret) {\n if (ret.done) {\n // prettier-ignore\n setImmediateWithFallback(function () {\n wrap(function (r) {\n resolve(r);\n }, \"flow_return\", ret.value);\n });\n return;\n }\n // TODO: support more type of values? See https://github.com/tj/co/blob/249bbdc72da24ae44076afd716349d2089b31c4c/index.js#L100\n if (!ret.value || typeof ret.value.then !== \"function\") {\n // istanbul ignore next\n throw fail$1(\"Only promises can be yielded to `async`, got: \" + ret);\n }\n return ret.value.then(onFulfilled, onRejected);\n }\n });\n };\n return spawner;\n}\n\n/**\n * @internal\n * @hidden\n */\nfunction splitPatch(patch) {\n if (!(\"oldValue\" in patch)) throw fail$1(\"Patches without `oldValue` field cannot be inversed\");\n return [stripPatch(patch), invertPatch(patch)];\n}\n/**\n * @internal\n * @hidden\n */\nfunction stripPatch(patch) {\n // strips `oldvalue` information from the patch, so that it becomes a patch conform the json-patch spec\n // this removes the ability to undo the patch\n switch (patch.op) {\n case \"add\":\n return {\n op: \"add\",\n path: patch.path,\n value: patch.value\n };\n case \"remove\":\n return {\n op: \"remove\",\n path: patch.path\n };\n case \"replace\":\n return {\n op: \"replace\",\n path: patch.path,\n value: patch.value\n };\n }\n}\nfunction invertPatch(patch) {\n switch (patch.op) {\n case \"add\":\n return {\n op: \"remove\",\n path: patch.path\n };\n case \"remove\":\n return {\n op: \"add\",\n path: patch.path,\n value: patch.oldValue\n };\n case \"replace\":\n return {\n op: \"replace\",\n path: patch.path,\n value: patch.oldValue\n };\n }\n}\n/**\n * Simple simple check to check it is a number.\n */\nfunction isNumber(x) {\n return typeof x === \"number\";\n}\n/**\n * Escape slashes and backslashes.\n *\n * http://tools.ietf.org/html/rfc6901\n */\nfunction escapeJsonPath(path) {\n if (isNumber(path) === true) {\n return \"\" + path;\n }\n if (path.indexOf(\"/\") === -1 && path.indexOf(\"~\") === -1) return path;\n return path.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\n/**\n * Unescape slashes and backslashes.\n */\nfunction unescapeJsonPath(path) {\n return path.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\n/**\n * Generates a json-path compliant json path from path parts.\n *\n * @param path\n * @returns\n */\nfunction joinJsonPath(path) {\n // `/` refers to property with an empty name, while `` refers to root itself!\n if (path.length === 0) return \"\";\n var getPathStr = function (p) {\n return p.map(escapeJsonPath).join(\"/\");\n };\n if (path[0] === \".\" || path[0] === \"..\") {\n // relative\n return getPathStr(path);\n } else {\n // absolute\n return \"/\" + getPathStr(path);\n }\n}\n/**\n * Splits and decodes a json path into several parts.\n *\n * @param path\n * @returns\n */\nfunction splitJsonPath(path) {\n // `/` refers to property with an empty name, while `` refers to root itself!\n var parts = path.split(\"/\").map(unescapeJsonPath);\n var valid = path === \"\" || path === \".\" || path === \"..\" || stringStartsWith(path, \"/\") || stringStartsWith(path, \"./\") || stringStartsWith(path, \"../\");\n if (!valid) {\n throw fail$1(\"a json path must be either rooted, empty or relative, but got '\" + path + \"'\");\n }\n // '/a/b/c' -> [\"a\", \"b\", \"c\"]\n // '../../b/c' -> [\"..\", \"..\", \"b\", \"c\"]\n // '' -> []\n // '/' -> ['']\n // './a' -> [\".\", \"a\"]\n // /./a' -> [\".\", \"a\"] equivalent to './a'\n if (parts[0] === \"\") {\n parts.shift();\n }\n return parts;\n}\nvar SnapshotProcessor = /** @class */function (_super) {\n __extends(SnapshotProcessor, _super);\n function SnapshotProcessor(_subtype, _processors, name) {\n var _this = _super.call(this, name || _subtype.name) || this;\n _this._subtype = _subtype;\n _this._processors = _processors;\n return _this;\n }\n Object.defineProperty(SnapshotProcessor.prototype, \"flags\", {\n get: function () {\n return this._subtype.flags | TypeFlags.SnapshotProcessor;\n },\n enumerable: false,\n configurable: true\n });\n SnapshotProcessor.prototype.describe = function () {\n return \"snapshotProcessor(\" + this._subtype.describe() + \")\";\n };\n SnapshotProcessor.prototype.preProcessSnapshot = function (sn) {\n if (this._processors.preProcessor) {\n return this._processors.preProcessor.call(null, sn);\n }\n return sn;\n };\n SnapshotProcessor.prototype.postProcessSnapshot = function (sn) {\n if (this._processors.postProcessor) {\n return this._processors.postProcessor.call(null, sn);\n }\n return sn;\n };\n SnapshotProcessor.prototype._fixNode = function (node) {\n var _this = this;\n // the node has to use these methods rather than the original type ones\n proxyNodeTypeMethods(node.type, this, \"isAssignableFrom\", \"create\");\n var oldGetSnapshot = node.getSnapshot;\n node.getSnapshot = function () {\n return _this.postProcessSnapshot(oldGetSnapshot.call(node));\n };\n };\n SnapshotProcessor.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n var processedInitialValue = isStateTreeNode(initialValue) ? initialValue : this.preProcessSnapshot(initialValue);\n var node = this._subtype.instantiate(parent, subpath, environment, processedInitialValue);\n this._fixNode(node);\n return node;\n };\n SnapshotProcessor.prototype.reconcile = function (current, newValue, parent, subpath) {\n var node = this._subtype.reconcile(current, isStateTreeNode(newValue) ? newValue : this.preProcessSnapshot(newValue), parent, subpath);\n if (node !== current) {\n this._fixNode(node);\n }\n return node;\n };\n SnapshotProcessor.prototype.getSnapshot = function (node, applyPostProcess) {\n if (applyPostProcess === void 0) {\n applyPostProcess = true;\n }\n var sn = this._subtype.getSnapshot(node);\n return applyPostProcess ? this.postProcessSnapshot(sn) : sn;\n };\n SnapshotProcessor.prototype.isValidSnapshot = function (value, context) {\n var processedSn = this.preProcessSnapshot(value);\n return this._subtype.validate(processedSn, context);\n };\n SnapshotProcessor.prototype.getSubTypes = function () {\n return this._subtype;\n };\n SnapshotProcessor.prototype.is = function (thing) {\n var value = isType(thing) ? this._subtype : isStateTreeNode(thing) ? getSnapshot(thing, false) : this.preProcessSnapshot(thing);\n return this._subtype.validate(value, [{\n path: \"\",\n type: this._subtype\n }]).length === 0;\n };\n return SnapshotProcessor;\n}(BaseType);\nfunction proxyNodeTypeMethods(nodeType, snapshotProcessorType) {\n var e_1, _a;\n var methods = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n methods[_i - 2] = arguments[_i];\n }\n try {\n for (var methods_1 = __values(methods), methods_1_1 = methods_1.next(); !methods_1_1.done; methods_1_1 = methods_1.next()) {\n var method = methods_1_1.value;\n nodeType[method] = snapshotProcessorType[method].bind(snapshotProcessorType);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (methods_1_1 && !methods_1_1.done && (_a = methods_1.return)) _a.call(methods_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n}\n/**\n * `types.snapshotProcessor` - Runs a pre/post snapshot processor before/after serializing a given type.\n *\n * Example:\n * ```ts\n * const Todo1 = types.model({ text: types.string })\n * // in the backend the text type must be null when empty\n * interface BackendTodo {\n * text: string | null\n * }\n * const Todo2 = types.snapshotProcessor(Todo1, {\n * // from snapshot to instance\n * preProcessor(sn: BackendTodo) {\n * return {\n * text: sn.text || \"\";\n * }\n * },\n * // from instance to snapshot\n * postProcessor(sn): BackendTodo {\n * return {\n * text: !sn.text ? null : sn.text\n * }\n * }\n * })\n * ```\n *\n * @param type Type to run the processors over.\n * @param processors Processors to run.\n * @param name Type name, or undefined to inherit the inner type one.\n * @returns\n */\nfunction snapshotProcessor(type, processors, name) {\n assertIsType(type, 1);\n if (devMode()) {\n if (processors.postProcessor && typeof processors.postProcessor !== \"function\") {\n // istanbul ignore next\n throw fail(\"postSnapshotProcessor must be a function\");\n }\n if (processors.preProcessor && typeof processors.preProcessor !== \"function\") {\n // istanbul ignore next\n throw fail(\"preSnapshotProcessor must be a function\");\n }\n }\n return new SnapshotProcessor(type, processors, name);\n}\nvar needsIdentifierError = \"Map.put can only be used to store complex values that have an identifier type attribute\";\nfunction tryCollectModelTypes(type, modelTypes) {\n var e_1, _a;\n var subtypes = type.getSubTypes();\n if (subtypes === cannotDetermineSubtype) {\n return false;\n }\n if (subtypes) {\n var subtypesArray = asArray(subtypes);\n try {\n for (var subtypesArray_1 = __values(subtypesArray), subtypesArray_1_1 = subtypesArray_1.next(); !subtypesArray_1_1.done; subtypesArray_1_1 = subtypesArray_1.next()) {\n var subtype = subtypesArray_1_1.value;\n if (!tryCollectModelTypes(subtype, modelTypes)) return false;\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (subtypesArray_1_1 && !subtypesArray_1_1.done && (_a = subtypesArray_1.return)) _a.call(subtypesArray_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n if (type instanceof ModelType) {\n modelTypes.push(type);\n }\n return true;\n}\n/**\n * @internal\n * @hidden\n */\nvar MapIdentifierMode;\n(function (MapIdentifierMode) {\n MapIdentifierMode[MapIdentifierMode[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n MapIdentifierMode[MapIdentifierMode[\"YES\"] = 1] = \"YES\";\n MapIdentifierMode[MapIdentifierMode[\"NO\"] = 2] = \"NO\";\n})(MapIdentifierMode || (MapIdentifierMode = {}));\nvar MSTMap = /** @class */function (_super) {\n __extends(MSTMap, _super);\n function MSTMap(initialData) {\n return _super.call(this, initialData, observable.ref.enhancer) || this;\n }\n MSTMap.prototype.get = function (key) {\n // maybe this is over-enthousiastic? normalize numeric keys to strings\n return _super.prototype.get.call(this, \"\" + key);\n };\n MSTMap.prototype.has = function (key) {\n return _super.prototype.has.call(this, \"\" + key);\n };\n MSTMap.prototype.delete = function (key) {\n return _super.prototype.delete.call(this, \"\" + key);\n };\n MSTMap.prototype.set = function (key, value) {\n return _super.prototype.set.call(this, \"\" + key, value);\n };\n MSTMap.prototype.put = function (value) {\n if (!value) throw fail$1(\"Map.put cannot be used to set empty values\");\n if (isStateTreeNode(value)) {\n var node = getStateTreeNode(value);\n if (devMode()) {\n if (!node.identifierAttribute) {\n throw fail$1(needsIdentifierError);\n }\n }\n if (node.identifier === null) {\n throw fail$1(needsIdentifierError);\n }\n this.set(node.identifier, value);\n return value;\n } else if (!isMutable(value)) {\n throw fail$1(\"Map.put can only be used to store complex values\");\n } else {\n var mapNode = getStateTreeNode(this);\n var mapType = mapNode.type;\n if (mapType.identifierMode !== MapIdentifierMode.YES) {\n throw fail$1(needsIdentifierError);\n }\n var idAttr = mapType.mapIdentifierAttribute;\n var id = value[idAttr];\n if (!isValidIdentifier(id)) {\n // try again but this time after creating a node for the value\n // since it might be an optional identifier\n var newNode = this.put(mapType.getChildType().create(value, mapNode.environment));\n return this.put(getSnapshot(newNode));\n }\n var key = normalizeIdentifier(id);\n this.set(key, value);\n return this.get(key);\n }\n };\n return MSTMap;\n}(ObservableMap);\n/**\n * @internal\n * @hidden\n */\nvar MapType = /** @class */function (_super) {\n __extends(MapType, _super);\n function MapType(name, _subType, hookInitializers) {\n if (hookInitializers === void 0) {\n hookInitializers = [];\n }\n var _this = _super.call(this, name) || this;\n _this._subType = _subType;\n _this.identifierMode = MapIdentifierMode.UNKNOWN;\n _this.mapIdentifierAttribute = undefined;\n _this.flags = TypeFlags.Map;\n _this.hookInitializers = [];\n _this._determineIdentifierMode();\n _this.hookInitializers = hookInitializers;\n return _this;\n }\n MapType.prototype.hooks = function (hooks) {\n var hookInitializers = this.hookInitializers.length > 0 ? this.hookInitializers.concat(hooks) : [hooks];\n return new MapType(this.name, this._subType, hookInitializers);\n };\n MapType.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n this._determineIdentifierMode();\n return createObjectNode(this, parent, subpath, environment, initialValue);\n };\n MapType.prototype._determineIdentifierMode = function () {\n if (this.identifierMode !== MapIdentifierMode.UNKNOWN) {\n return;\n }\n var modelTypes = [];\n if (tryCollectModelTypes(this._subType, modelTypes)) {\n var identifierAttribute_1 = undefined;\n modelTypes.forEach(function (type) {\n if (type.identifierAttribute) {\n if (identifierAttribute_1 && identifierAttribute_1 !== type.identifierAttribute) {\n throw fail$1(\"The objects in a map should all have the same identifier attribute, expected '\" + identifierAttribute_1 + \"', but child of type '\" + type.name + \"' declared attribute '\" + type.identifierAttribute + \"' as identifier\");\n }\n identifierAttribute_1 = type.identifierAttribute;\n }\n });\n if (identifierAttribute_1) {\n this.identifierMode = MapIdentifierMode.YES;\n this.mapIdentifierAttribute = identifierAttribute_1;\n } else {\n this.identifierMode = MapIdentifierMode.NO;\n }\n }\n };\n MapType.prototype.initializeChildNodes = function (objNode, initialSnapshot) {\n if (initialSnapshot === void 0) {\n initialSnapshot = {};\n }\n var subType = objNode.type._subType;\n var result = {};\n Object.keys(initialSnapshot).forEach(function (name) {\n result[name] = subType.instantiate(objNode, name, undefined, initialSnapshot[name]);\n });\n return result;\n };\n MapType.prototype.createNewInstance = function (childNodes) {\n return new MSTMap(childNodes);\n };\n MapType.prototype.finalizeNewInstance = function (node, instance) {\n _interceptReads(instance, node.unbox);\n var type = node.type;\n type.hookInitializers.forEach(function (initializer) {\n var hooks = initializer(instance);\n Object.keys(hooks).forEach(function (name) {\n var hook = hooks[name];\n var actionInvoker = createActionInvoker(instance, name, hook);\n (!devMode() ? addHiddenFinalProp : addHiddenWritableProp)(instance, name, actionInvoker);\n });\n });\n intercept(instance, this.willChange);\n observe(instance, this.didChange);\n };\n MapType.prototype.describe = function () {\n return \"Map\";\n };\n MapType.prototype.getChildren = function (node) {\n // return (node.storedValue as ObservableMap).values()\n return values(node.storedValue);\n };\n MapType.prototype.getChildNode = function (node, key) {\n var childNode = node.storedValue.get(\"\" + key);\n if (!childNode) throw fail$1(\"Not a child \" + key);\n return childNode;\n };\n MapType.prototype.willChange = function (change) {\n var node = getStateTreeNode(change.object);\n var key = change.name;\n node.assertWritable({\n subpath: key\n });\n var mapType = node.type;\n var subType = mapType._subType;\n switch (change.type) {\n case \"update\":\n {\n var newValue = change.newValue;\n var oldValue = change.object.get(key);\n if (newValue === oldValue) return null;\n typecheckInternal(subType, newValue);\n change.newValue = subType.reconcile(node.getChildNode(key), change.newValue, node, key);\n mapType.processIdentifier(key, change.newValue);\n }\n break;\n case \"add\":\n {\n typecheckInternal(subType, change.newValue);\n change.newValue = subType.instantiate(node, key, undefined, change.newValue);\n mapType.processIdentifier(key, change.newValue);\n }\n break;\n }\n return change;\n };\n MapType.prototype.processIdentifier = function (expected, node) {\n if (this.identifierMode === MapIdentifierMode.YES && node instanceof ObjectNode) {\n var identifier = node.identifier;\n if (identifier !== expected) throw fail$1(\"A map of objects containing an identifier should always store the object under their own identifier. Trying to store key '\" + identifier + \"', but expected: '\" + expected + \"'\");\n }\n };\n MapType.prototype.getSnapshot = function (node) {\n var res = {};\n node.getChildren().forEach(function (childNode) {\n res[childNode.subpath] = childNode.snapshot;\n });\n return res;\n };\n MapType.prototype.processInitialSnapshot = function (childNodes) {\n var processed = {};\n Object.keys(childNodes).forEach(function (key) {\n processed[key] = childNodes[key].getSnapshot();\n });\n return processed;\n };\n MapType.prototype.didChange = function (change) {\n var node = getStateTreeNode(change.object);\n switch (change.type) {\n case \"update\":\n return void node.emitPatch({\n op: \"replace\",\n path: escapeJsonPath(change.name),\n value: change.newValue.snapshot,\n oldValue: change.oldValue ? change.oldValue.snapshot : undefined\n }, node);\n case \"add\":\n return void node.emitPatch({\n op: \"add\",\n path: escapeJsonPath(change.name),\n value: change.newValue.snapshot,\n oldValue: undefined\n }, node);\n case \"delete\":\n // a node got deleted, get the old snapshot and make the node die\n var oldSnapshot = change.oldValue.snapshot;\n change.oldValue.die();\n // emit the patch\n return void node.emitPatch({\n op: \"remove\",\n path: escapeJsonPath(change.name),\n oldValue: oldSnapshot\n }, node);\n }\n };\n MapType.prototype.applyPatchLocally = function (node, subpath, patch) {\n var target = node.storedValue;\n switch (patch.op) {\n case \"add\":\n case \"replace\":\n target.set(subpath, patch.value);\n break;\n case \"remove\":\n target.delete(subpath);\n break;\n }\n };\n MapType.prototype.applySnapshot = function (node, snapshot) {\n typecheckInternal(this, snapshot);\n var target = node.storedValue;\n var currentKeys = {};\n Array.from(target.keys()).forEach(function (key) {\n currentKeys[key] = false;\n });\n if (snapshot) {\n // Don't use target.replace, as it will throw away all existing items first\n for (var key in snapshot) {\n target.set(key, snapshot[key]);\n currentKeys[\"\" + key] = true;\n }\n }\n Object.keys(currentKeys).forEach(function (key) {\n if (currentKeys[key] === false) target.delete(key);\n });\n };\n MapType.prototype.getChildType = function () {\n return this._subType;\n };\n MapType.prototype.isValidSnapshot = function (value, context) {\n var _this = this;\n if (!isPlainObject(value)) {\n return typeCheckFailure(context, value, \"Value is not a plain object\");\n }\n return flattenTypeErrors(Object.keys(value).map(function (path) {\n return _this._subType.validate(value[path], getContextForPath(context, path, _this._subType));\n }));\n };\n MapType.prototype.getDefaultSnapshot = function () {\n return EMPTY_OBJECT;\n };\n MapType.prototype.removeChild = function (node, subpath) {\n node.storedValue.delete(subpath);\n };\n __decorate([action], MapType.prototype, \"applySnapshot\", null);\n return MapType;\n}(ComplexType);\n/**\n * `types.map` - Creates a key based collection type who's children are all of a uniform declared type.\n * If the type stored in a map has an identifier, it is mandatory to store the child under that identifier in the map.\n *\n * This type will always produce [observable maps](https://mobx.js.org/refguide/map.html)\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * id: types.identifier,\n * task: types.string\n * })\n *\n * const TodoStore = types.model({\n * todos: types.map(Todo)\n * })\n *\n * const s = TodoStore.create({ todos: {} })\n * unprotect(s)\n * s.todos.set(17, { task: \"Grab coffee\", id: 17 })\n * s.todos.put({ task: \"Grab cookie\", id: 18 }) // put will infer key from the identifier\n * console.log(s.todos.get(17).task) // prints: \"Grab coffee\"\n * ```\n *\n * @param subtype\n * @returns\n */\nfunction map(subtype) {\n return new MapType(\"map\", subtype);\n}\n/**\n * Returns if a given value represents a map type.\n *\n * @param type\n * @returns `true` if it is a map type.\n */\nfunction isMapType(type) {\n return isType(type) && (type.flags & TypeFlags.Map) > 0;\n}\n\n/**\n * @internal\n * @hidden\n */\nvar ArrayType = /** @class */function (_super) {\n __extends(ArrayType, _super);\n function ArrayType(name, _subType, hookInitializers) {\n if (hookInitializers === void 0) {\n hookInitializers = [];\n }\n var _this = _super.call(this, name) || this;\n _this._subType = _subType;\n _this.flags = TypeFlags.Array;\n _this.hookInitializers = [];\n _this.hookInitializers = hookInitializers;\n return _this;\n }\n ArrayType.prototype.hooks = function (hooks) {\n var hookInitializers = this.hookInitializers.length > 0 ? this.hookInitializers.concat(hooks) : [hooks];\n return new ArrayType(this.name, this._subType, hookInitializers);\n };\n ArrayType.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n return createObjectNode(this, parent, subpath, environment, initialValue);\n };\n ArrayType.prototype.initializeChildNodes = function (objNode, snapshot) {\n if (snapshot === void 0) {\n snapshot = [];\n }\n var subType = objNode.type._subType;\n var result = {};\n snapshot.forEach(function (item, index) {\n var subpath = \"\" + index;\n result[subpath] = subType.instantiate(objNode, subpath, undefined, item);\n });\n return result;\n };\n ArrayType.prototype.createNewInstance = function (childNodes) {\n return observable.array(convertChildNodesToArray(childNodes), mobxShallow);\n };\n ArrayType.prototype.finalizeNewInstance = function (node, instance) {\n _getAdministration(instance).dehancer = node.unbox;\n var type = node.type;\n type.hookInitializers.forEach(function (initializer) {\n var hooks = initializer(instance);\n Object.keys(hooks).forEach(function (name) {\n var hook = hooks[name];\n var actionInvoker = createActionInvoker(instance, name, hook);\n (!devMode() ? addHiddenFinalProp : addHiddenWritableProp)(instance, name, actionInvoker);\n });\n });\n intercept(instance, this.willChange);\n observe(instance, this.didChange);\n };\n ArrayType.prototype.describe = function () {\n return this._subType.describe() + \"[]\";\n };\n ArrayType.prototype.getChildren = function (node) {\n return node.storedValue.slice();\n };\n ArrayType.prototype.getChildNode = function (node, key) {\n var index = Number(key);\n if (index < node.storedValue.length) return node.storedValue[index];\n throw fail$1(\"Not a child: \" + key);\n };\n ArrayType.prototype.willChange = function (change) {\n var node = getStateTreeNode(change.object);\n node.assertWritable({\n subpath: \"\" + change.index\n });\n var subType = node.type._subType;\n var childNodes = node.getChildren();\n switch (change.type) {\n case \"update\":\n {\n if (change.newValue === change.object[change.index]) return null;\n var updatedNodes = reconcileArrayChildren(node, subType, [childNodes[change.index]], [change.newValue], [change.index]);\n if (!updatedNodes) {\n return null;\n }\n change.newValue = updatedNodes[0];\n }\n break;\n case \"splice\":\n {\n var index_1 = change.index,\n removedCount = change.removedCount,\n added = change.added;\n var addedNodes = reconcileArrayChildren(node, subType, childNodes.slice(index_1, index_1 + removedCount), added, added.map(function (_, i) {\n return index_1 + i;\n }));\n if (!addedNodes) {\n return null;\n }\n change.added = addedNodes;\n // update paths of remaining items\n for (var i = index_1 + removedCount; i < childNodes.length; i++) {\n childNodes[i].setParent(node, \"\" + (i + added.length - removedCount));\n }\n }\n break;\n }\n return change;\n };\n ArrayType.prototype.getSnapshot = function (node) {\n return node.getChildren().map(function (childNode) {\n return childNode.snapshot;\n });\n };\n ArrayType.prototype.processInitialSnapshot = function (childNodes) {\n var processed = [];\n Object.keys(childNodes).forEach(function (key) {\n processed.push(childNodes[key].getSnapshot());\n });\n return processed;\n };\n ArrayType.prototype.didChange = function (change) {\n var node = getStateTreeNode(change.object);\n switch (change.type) {\n case \"update\":\n return void node.emitPatch({\n op: \"replace\",\n path: \"\" + change.index,\n value: change.newValue.snapshot,\n oldValue: change.oldValue ? change.oldValue.snapshot : undefined\n }, node);\n case \"splice\":\n for (var i = change.removedCount - 1; i >= 0; i--) node.emitPatch({\n op: \"remove\",\n path: \"\" + (change.index + i),\n oldValue: change.removed[i].snapshot\n }, node);\n for (var i = 0; i < change.addedCount; i++) node.emitPatch({\n op: \"add\",\n path: \"\" + (change.index + i),\n value: node.getChildNode(\"\" + (change.index + i)).snapshot,\n oldValue: undefined\n }, node);\n return;\n }\n };\n ArrayType.prototype.applyPatchLocally = function (node, subpath, patch) {\n var target = node.storedValue;\n var index = subpath === \"-\" ? target.length : Number(subpath);\n switch (patch.op) {\n case \"replace\":\n target[index] = patch.value;\n break;\n case \"add\":\n target.splice(index, 0, patch.value);\n break;\n case \"remove\":\n target.splice(index, 1);\n break;\n }\n };\n ArrayType.prototype.applySnapshot = function (node, snapshot) {\n typecheckInternal(this, snapshot);\n var target = node.storedValue;\n target.replace(snapshot);\n };\n ArrayType.prototype.getChildType = function () {\n return this._subType;\n };\n ArrayType.prototype.isValidSnapshot = function (value, context) {\n var _this = this;\n if (!isArray(value)) {\n return typeCheckFailure(context, value, \"Value is not an array\");\n }\n return flattenTypeErrors(value.map(function (item, index) {\n return _this._subType.validate(item, getContextForPath(context, \"\" + index, _this._subType));\n }));\n };\n ArrayType.prototype.getDefaultSnapshot = function () {\n return EMPTY_ARRAY;\n };\n ArrayType.prototype.removeChild = function (node, subpath) {\n node.storedValue.splice(Number(subpath), 1);\n };\n __decorate([action], ArrayType.prototype, \"applySnapshot\", null);\n return ArrayType;\n}(ComplexType);\n/**\n * `types.array` - Creates an index based collection type who's children are all of a uniform declared type.\n *\n * This type will always produce [observable arrays](https://mobx.js.org/refguide/array.html)\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * task: types.string\n * })\n *\n * const TodoStore = types.model({\n * todos: types.array(Todo)\n * })\n *\n * const s = TodoStore.create({ todos: [] })\n * unprotect(s) // needed to allow modifying outside of an action\n * s.todos.push({ task: \"Grab coffee\" })\n * console.log(s.todos[0]) // prints: \"Grab coffee\"\n * ```\n *\n * @param subtype\n * @returns\n */\nfunction array(subtype) {\n assertIsType(subtype, 1);\n return new ArrayType(subtype.name + \"[]\", subtype);\n}\nfunction reconcileArrayChildren(parent, childType, oldNodes, newValues, newPaths) {\n var nothingChanged = true;\n for (var i = 0;; i++) {\n var hasNewNode = i <= newValues.length - 1;\n var oldNode = oldNodes[i];\n var newValue = hasNewNode ? newValues[i] : undefined;\n var newPath = \"\" + newPaths[i];\n // for some reason, instead of newValue we got a node, fallback to the storedValue\n // TODO: https://github.com/mobxjs/mobx-state-tree/issues/340#issuecomment-325581681\n if (isNode(newValue)) newValue = newValue.storedValue;\n if (!oldNode && !hasNewNode) {\n // both are empty, end\n break;\n } else if (!hasNewNode) {\n // new one does not exists\n nothingChanged = false;\n oldNodes.splice(i, 1);\n if (oldNode instanceof ObjectNode) {\n // since it is going to be returned by pop/splice/shift better create it before killing it\n // so it doesn't end up in an undead state\n oldNode.createObservableInstanceIfNeeded();\n }\n oldNode.die();\n i--;\n } else if (!oldNode) {\n // there is no old node, create it\n // check if already belongs to the same parent. if so, avoid pushing item in. only swapping can occur.\n if (isStateTreeNode(newValue) && getStateTreeNode(newValue).parent === parent) {\n // this node is owned by this parent, but not in the reconcilable set, so it must be double\n throw fail$1(\"Cannot add an object to a state tree if it is already part of the same or another state tree. Tried to assign an object to '\" + parent.path + \"/\" + newPath + \"', but it lives already at '\" + getStateTreeNode(newValue).path + \"'\");\n }\n nothingChanged = false;\n var newNode = valueAsNode(childType, parent, newPath, newValue);\n oldNodes.splice(i, 0, newNode);\n } else if (areSame(oldNode, newValue)) {\n // both are the same, reconcile\n oldNodes[i] = valueAsNode(childType, parent, newPath, newValue, oldNode);\n } else {\n // nothing to do, try to reorder\n var oldMatch = undefined;\n // find a possible candidate to reuse\n for (var j = i; j < oldNodes.length; j++) {\n if (areSame(oldNodes[j], newValue)) {\n oldMatch = oldNodes.splice(j, 1)[0];\n break;\n }\n }\n nothingChanged = false;\n var newNode = valueAsNode(childType, parent, newPath, newValue, oldMatch);\n oldNodes.splice(i, 0, newNode);\n }\n }\n return nothingChanged ? null : oldNodes;\n}\n/**\n * Convert a value to a node at given parent and subpath. Attempts to reuse old node if possible and given.\n */\nfunction valueAsNode(childType, parent, subpath, newValue, oldNode) {\n // ensure the value is valid-ish\n typecheckInternal(childType, newValue);\n function getNewNode() {\n // the new value has a MST node\n if (isStateTreeNode(newValue)) {\n var childNode = getStateTreeNode(newValue);\n childNode.assertAlive(EMPTY_OBJECT);\n // the node lives here\n if (childNode.parent !== null && childNode.parent === parent) {\n childNode.setParent(parent, subpath);\n return childNode;\n }\n }\n // there is old node and new one is a value/snapshot\n if (oldNode) {\n return childType.reconcile(oldNode, newValue, parent, subpath);\n }\n // nothing to do, create from scratch\n return childType.instantiate(parent, subpath, undefined, newValue);\n }\n var newNode = getNewNode();\n if (oldNode && oldNode !== newNode) {\n if (oldNode instanceof ObjectNode) {\n // since it is going to be returned by pop/splice/shift better create it before killing it\n // so it doesn't end up in an undead state\n oldNode.createObservableInstanceIfNeeded();\n }\n oldNode.die();\n }\n return newNode;\n}\n/**\n * Check if a node holds a value.\n */\nfunction areSame(oldNode, newValue) {\n // never consider dead old nodes for reconciliation\n if (!oldNode.isAlive) {\n return false;\n }\n // the new value has the same node\n if (isStateTreeNode(newValue)) {\n var newNode = getStateTreeNode(newValue);\n return newNode.isAlive && newNode === oldNode;\n }\n // the provided value is the snapshot of the old node\n if (oldNode.snapshot === newValue) {\n return true;\n }\n // new value is a snapshot with the correct identifier\n return oldNode instanceof ObjectNode && oldNode.identifier !== null && oldNode.identifierAttribute && isPlainObject(newValue) && oldNode.identifier === normalizeIdentifier(newValue[oldNode.identifierAttribute]) && oldNode.type.is(newValue);\n}\n/**\n * Returns if a given value represents an array type.\n *\n * @param type\n * @returns `true` if the type is an array type.\n */\nfunction isArrayType(type) {\n return isType(type) && (type.flags & TypeFlags.Array) > 0;\n}\nvar PRE_PROCESS_SNAPSHOT = \"preProcessSnapshot\";\nvar POST_PROCESS_SNAPSHOT = \"postProcessSnapshot\";\nfunction objectTypeToString() {\n return getStateTreeNode(this).toString();\n}\nvar defaultObjectOptions = {\n name: \"AnonymousModel\",\n properties: {},\n initializers: EMPTY_ARRAY\n};\nfunction toPropertiesObject(declaredProps) {\n // loop through properties and ensures that all items are types\n return Object.keys(declaredProps).reduce(function (props, key) {\n var _a, _b, _c;\n // warn if user intended a HOOK\n if (key in Hook) throw fail$1(\"Hook '\" + key + \"' was defined as property. Hooks should be defined as part of the actions\");\n // the user intended to use a view\n var descriptor = Object.getOwnPropertyDescriptor(props, key);\n if (\"get\" in descriptor) {\n throw fail$1(\"Getters are not supported as properties. Please use views instead\");\n }\n // undefined and null are not valid\n var value = descriptor.value;\n if (value === null || value === undefined) {\n throw fail$1(\"The default value of an attribute cannot be null or undefined as the type cannot be inferred. Did you mean `types.maybe(someType)`?\");\n // its a primitive, convert to its type\n } else if (isPrimitive(value)) {\n return Object.assign({}, props, (_a = {}, _a[key] = optional(getPrimitiveFactoryFromValue(value), value), _a));\n // map defaults to empty object automatically for models\n } else if (value instanceof MapType) {\n return Object.assign({}, props, (_b = {}, _b[key] = optional(value, {}), _b));\n } else if (value instanceof ArrayType) {\n return Object.assign({}, props, (_c = {}, _c[key] = optional(value, []), _c));\n // its already a type\n } else if (isType(value)) {\n return props;\n // its a function, maybe the user wanted a view?\n } else if (devMode() && typeof value === \"function\") {\n throw fail$1(\"Invalid type definition for property '\" + key + \"', it looks like you passed a function. Did you forget to invoke it, or did you intend to declare a view / action?\");\n // no other complex values\n } else if (devMode() && typeof value === \"object\") {\n throw fail$1(\"Invalid type definition for property '\" + key + \"', it looks like you passed an object. Try passing another model type or a types.frozen.\");\n // WTF did you pass in mate?\n } else {\n throw fail$1(\"Invalid type definition for property '\" + key + \"', cannot infer a type from a value like '\" + value + \"' (\" + typeof value + \")\");\n }\n }, declaredProps);\n}\n/**\n * @internal\n * @hidden\n */\nvar ModelType = /** @class */function (_super) {\n __extends(ModelType, _super);\n function ModelType(opts) {\n var _this = _super.call(this, opts.name || defaultObjectOptions.name) || this;\n _this.flags = TypeFlags.Object;\n _this.named = function (name) {\n return _this.cloneAndEnhance({\n name: name\n });\n };\n _this.props = function (properties) {\n return _this.cloneAndEnhance({\n properties: properties\n });\n };\n _this.preProcessSnapshot = function (preProcessor) {\n var currentPreprocessor = _this.preProcessor;\n if (!currentPreprocessor) return _this.cloneAndEnhance({\n preProcessor: preProcessor\n });else return _this.cloneAndEnhance({\n preProcessor: function (snapshot) {\n return currentPreprocessor(preProcessor(snapshot));\n }\n });\n };\n _this.postProcessSnapshot = function (postProcessor) {\n var currentPostprocessor = _this.postProcessor;\n if (!currentPostprocessor) return _this.cloneAndEnhance({\n postProcessor: postProcessor\n });else return _this.cloneAndEnhance({\n postProcessor: function (snapshot) {\n return postProcessor(currentPostprocessor(snapshot));\n }\n });\n };\n Object.assign(_this, defaultObjectOptions, opts);\n // ensures that any default value gets converted to its related type\n _this.properties = toPropertiesObject(_this.properties);\n freeze(_this.properties); // make sure nobody messes with it\n _this.propertyNames = Object.keys(_this.properties);\n _this.identifierAttribute = _this._getIdentifierAttribute();\n return _this;\n }\n ModelType.prototype._getIdentifierAttribute = function () {\n var identifierAttribute = undefined;\n this.forAllProps(function (propName, propType) {\n if (propType.flags & TypeFlags.Identifier) {\n if (identifierAttribute) throw fail$1(\"Cannot define property '\" + propName + \"' as object identifier, property '\" + identifierAttribute + \"' is already defined as identifier property\");\n identifierAttribute = propName;\n }\n });\n return identifierAttribute;\n };\n ModelType.prototype.cloneAndEnhance = function (opts) {\n return new ModelType({\n name: opts.name || this.name,\n properties: Object.assign({}, this.properties, opts.properties),\n initializers: this.initializers.concat(opts.initializers || []),\n preProcessor: opts.preProcessor || this.preProcessor,\n postProcessor: opts.postProcessor || this.postProcessor\n });\n };\n ModelType.prototype.actions = function (fn) {\n var _this = this;\n var actionInitializer = function (self) {\n _this.instantiateActions(self, fn(self));\n return self;\n };\n return this.cloneAndEnhance({\n initializers: [actionInitializer]\n });\n };\n ModelType.prototype.instantiateActions = function (self, actions) {\n // check if return is correct\n if (!isPlainObject(actions)) throw fail$1(\"actions initializer should return a plain object containing actions\");\n // bind actions to the object created\n Object.keys(actions).forEach(function (name) {\n // warn if preprocessor was given\n if (name === PRE_PROCESS_SNAPSHOT) throw fail$1(\"Cannot define action '\" + PRE_PROCESS_SNAPSHOT + \"', it should be defined using 'type.preProcessSnapshot(fn)' instead\");\n // warn if postprocessor was given\n if (name === POST_PROCESS_SNAPSHOT) throw fail$1(\"Cannot define action '\" + POST_PROCESS_SNAPSHOT + \"', it should be defined using 'type.postProcessSnapshot(fn)' instead\");\n var action2 = actions[name];\n // apply hook composition\n var baseAction = self[name];\n if (name in Hook && baseAction) {\n var specializedAction_1 = action2;\n action2 = function () {\n baseAction.apply(null, arguments);\n specializedAction_1.apply(null, arguments);\n };\n }\n // the goal of this is to make sure actions using \"this\" can call themselves,\n // while still allowing the middlewares to register them\n var middlewares = action2.$mst_middleware; // make sure middlewares are not lost\n var boundAction = action2.bind(actions);\n boundAction.$mst_middleware = middlewares;\n var actionInvoker = createActionInvoker(self, name, boundAction);\n actions[name] = actionInvoker;\n (!devMode() ? addHiddenFinalProp : addHiddenWritableProp)(self, name, actionInvoker);\n });\n };\n ModelType.prototype.volatile = function (fn) {\n var _this = this;\n if (typeof fn !== \"function\") {\n throw fail$1(\"You passed an \" + typeof fn + \" to volatile state as an argument, when function is expected\");\n }\n var stateInitializer = function (self) {\n _this.instantiateVolatileState(self, fn(self));\n return self;\n };\n return this.cloneAndEnhance({\n initializers: [stateInitializer]\n });\n };\n ModelType.prototype.instantiateVolatileState = function (self, state) {\n // check views return\n if (!isPlainObject(state)) throw fail$1(\"volatile state initializer should return a plain object containing state\");\n set(self, state);\n };\n ModelType.prototype.extend = function (fn) {\n var _this = this;\n var initializer = function (self) {\n var _a = fn(self),\n actions = _a.actions,\n views = _a.views,\n state = _a.state,\n rest = __rest(_a, [\"actions\", \"views\", \"state\"]);\n for (var key in rest) throw fail$1(\"The `extend` function should return an object with a subset of the fields 'actions', 'views' and 'state'. Found invalid key '\" + key + \"'\");\n if (state) _this.instantiateVolatileState(self, state);\n if (views) _this.instantiateViews(self, views);\n if (actions) _this.instantiateActions(self, actions);\n return self;\n };\n return this.cloneAndEnhance({\n initializers: [initializer]\n });\n };\n ModelType.prototype.views = function (fn) {\n var _this = this;\n var viewInitializer = function (self) {\n _this.instantiateViews(self, fn(self));\n return self;\n };\n return this.cloneAndEnhance({\n initializers: [viewInitializer]\n });\n };\n ModelType.prototype.instantiateViews = function (self, views) {\n // check views return\n if (!isPlainObject(views)) throw fail$1(\"views initializer should return a plain object containing views\");\n Object.keys(views).forEach(function (key) {\n // is this a computed property?\n var descriptor = Object.getOwnPropertyDescriptor(views, key);\n if (\"get\" in descriptor) {\n if (isComputedProp(self, key)) {\n var computedValue = _getAdministration(self, key);\n // TODO: mobx currently does not allow redefining computes yet, pending #1121\n // FIXME: this binds to the internals of mobx!\n computedValue.derivation = descriptor.get;\n computedValue.scope = self;\n if (descriptor.set) computedValue.setter = action(computedValue.name + \"-setter\", descriptor.set);\n } else {\n computed(self, key, descriptor, true);\n }\n } else if (typeof descriptor.value === \"function\") {\n (!devMode() ? addHiddenFinalProp : addHiddenWritableProp)(self, key, descriptor.value);\n } else {\n throw fail$1(\"A view member should either be a function or getter based property\");\n }\n });\n };\n ModelType.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n var value = isStateTreeNode(initialValue) ? initialValue : this.applySnapshotPreProcessor(initialValue);\n return createObjectNode(this, parent, subpath, environment, value);\n // Optimization: record all prop- view- and action names after first construction, and generate an optimal base class\n // that pre-reserves all these fields for fast object-member lookups\n };\n\n ModelType.prototype.initializeChildNodes = function (objNode, initialSnapshot) {\n if (initialSnapshot === void 0) {\n initialSnapshot = {};\n }\n var type = objNode.type;\n var result = {};\n type.forAllProps(function (name, childType) {\n result[name] = childType.instantiate(objNode, name, undefined, initialSnapshot[name]);\n });\n return result;\n };\n ModelType.prototype.createNewInstance = function (childNodes) {\n return observable.object(childNodes, EMPTY_OBJECT, mobxShallow);\n };\n ModelType.prototype.finalizeNewInstance = function (node, instance) {\n addHiddenFinalProp(instance, \"toString\", objectTypeToString);\n this.forAllProps(function (name) {\n _interceptReads(instance, name, node.unbox);\n });\n this.initializers.reduce(function (self, fn) {\n return fn(self);\n }, instance);\n intercept(instance, this.willChange);\n observe(instance, this.didChange);\n };\n ModelType.prototype.willChange = function (chg) {\n // TODO: mobx typings don't seem to take into account that newValue can be set even when removing a prop\n var change = chg;\n var node = getStateTreeNode(change.object);\n var subpath = change.name;\n node.assertWritable({\n subpath: subpath\n });\n var childType = node.type.properties[subpath];\n // only properties are typed, state are stored as-is references\n if (childType) {\n typecheckInternal(childType, change.newValue);\n change.newValue = childType.reconcile(node.getChildNode(subpath), change.newValue, node, subpath);\n }\n return change;\n };\n ModelType.prototype.didChange = function (chg) {\n // TODO: mobx typings don't seem to take into account that newValue can be set even when removing a prop\n var change = chg;\n var childNode = getStateTreeNode(change.object);\n var childType = childNode.type.properties[change.name];\n if (!childType) {\n // don't emit patches for volatile state\n return;\n }\n var oldChildValue = change.oldValue ? change.oldValue.snapshot : undefined;\n childNode.emitPatch({\n op: \"replace\",\n path: escapeJsonPath(change.name),\n value: change.newValue.snapshot,\n oldValue: oldChildValue\n }, childNode);\n };\n ModelType.prototype.getChildren = function (node) {\n var _this = this;\n var res = [];\n this.forAllProps(function (name) {\n res.push(_this.getChildNode(node, name));\n });\n return res;\n };\n ModelType.prototype.getChildNode = function (node, key) {\n if (!(key in this.properties)) throw fail$1(\"Not a value property: \" + key);\n var childNode = _getAdministration(node.storedValue, key).value; // TODO: blegh!\n if (!childNode) throw fail$1(\"Node not available for property \" + key);\n return childNode;\n };\n ModelType.prototype.getSnapshot = function (node, applyPostProcess) {\n var _this = this;\n if (applyPostProcess === void 0) {\n applyPostProcess = true;\n }\n var res = {};\n this.forAllProps(function (name, type) {\n getAtom(node.storedValue, name).reportObserved();\n res[name] = _this.getChildNode(node, name).snapshot;\n });\n if (applyPostProcess) {\n return this.applySnapshotPostProcessor(res);\n }\n return res;\n };\n ModelType.prototype.processInitialSnapshot = function (childNodes) {\n var processed = {};\n Object.keys(childNodes).forEach(function (key) {\n processed[key] = childNodes[key].getSnapshot();\n });\n return this.applySnapshotPostProcessor(processed);\n };\n ModelType.prototype.applyPatchLocally = function (node, subpath, patch) {\n if (!(patch.op === \"replace\" || patch.op === \"add\")) {\n throw fail$1(\"object does not support operation \" + patch.op);\n }\n node.storedValue[subpath] = patch.value;\n };\n ModelType.prototype.applySnapshot = function (node, snapshot) {\n var preProcessedSnapshot = this.applySnapshotPreProcessor(snapshot);\n typecheckInternal(this, preProcessedSnapshot);\n this.forAllProps(function (name) {\n node.storedValue[name] = preProcessedSnapshot[name];\n });\n };\n ModelType.prototype.applySnapshotPreProcessor = function (snapshot) {\n var processor = this.preProcessor;\n return processor ? processor.call(null, snapshot) : snapshot;\n };\n ModelType.prototype.applySnapshotPostProcessor = function (snapshot) {\n var postProcessor = this.postProcessor;\n if (postProcessor) return postProcessor.call(null, snapshot);\n return snapshot;\n };\n ModelType.prototype.getChildType = function (propertyName) {\n assertIsString(propertyName, 1);\n return this.properties[propertyName];\n };\n ModelType.prototype.isValidSnapshot = function (value, context) {\n var _this = this;\n var snapshot = this.applySnapshotPreProcessor(value);\n if (!isPlainObject(snapshot)) {\n return typeCheckFailure(context, snapshot, \"Value is not a plain object\");\n }\n return flattenTypeErrors(this.propertyNames.map(function (key) {\n return _this.properties[key].validate(snapshot[key], getContextForPath(context, key, _this.properties[key]));\n }));\n };\n ModelType.prototype.forAllProps = function (fn) {\n var _this = this;\n this.propertyNames.forEach(function (key) {\n return fn(key, _this.properties[key]);\n });\n };\n ModelType.prototype.describe = function () {\n var _this = this;\n // optimization: cache\n return \"{ \" + this.propertyNames.map(function (key) {\n return key + \": \" + _this.properties[key].describe();\n }).join(\"; \") + \" }\";\n };\n ModelType.prototype.getDefaultSnapshot = function () {\n return EMPTY_OBJECT;\n };\n ModelType.prototype.removeChild = function (node, subpath) {\n node.storedValue[subpath] = undefined;\n };\n __decorate([action], ModelType.prototype, \"applySnapshot\", null);\n return ModelType;\n}(ComplexType);\n/**\n * `types.model` - Creates a new model type by providing a name, properties, volatile state and actions.\n *\n * See the [model type](/concepts/trees#creating-models) description or the [getting started](intro/getting-started.md#getting-started-1) tutorial.\n */\nfunction model() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var name = typeof args[0] === \"string\" ? args.shift() : \"AnonymousModel\";\n var properties = args.shift() || {};\n return new ModelType({\n name: name,\n properties: properties\n });\n}\n/**\n * `types.compose` - Composes a new model from one or more existing model types.\n * This method can be invoked in two forms:\n * Given 2 or more model types, the types are composed into a new Type.\n * Given first parameter as a string and 2 or more model types,\n * the types are composed into a new Type with the given name\n */\nfunction compose() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // TODO: just join the base type names if no name is provided\n var hasTypename = typeof args[0] === \"string\";\n var typeName = hasTypename ? args[0] : \"AnonymousModel\";\n if (hasTypename) {\n args.shift();\n }\n // check all parameters\n if (devMode()) {\n args.forEach(function (type, i) {\n assertArg(type, isModelType, \"mobx-state-tree model type\", hasTypename ? i + 2 : i + 1);\n });\n }\n return args.reduce(function (prev, cur) {\n return prev.cloneAndEnhance({\n name: prev.name + \"_\" + cur.name,\n properties: cur.properties,\n initializers: cur.initializers,\n preProcessor: function (snapshot) {\n return cur.applySnapshotPreProcessor(prev.applySnapshotPreProcessor(snapshot));\n },\n postProcessor: function (snapshot) {\n return cur.applySnapshotPostProcessor(prev.applySnapshotPostProcessor(snapshot));\n }\n });\n }).named(typeName);\n}\n/**\n * Returns if a given value represents a model type.\n *\n * @param type\n * @returns\n */\nfunction isModelType(type) {\n return isType(type) && (type.flags & TypeFlags.Object) > 0;\n}\n\n// TODO: implement CoreType using types.custom ?\n/**\n * @internal\n * @hidden\n */\nvar CoreType = /** @class */function (_super) {\n __extends(CoreType, _super);\n function CoreType(name, flags, checker, initializer) {\n if (initializer === void 0) {\n initializer = identity;\n }\n var _this = _super.call(this, name) || this;\n _this.flags = flags;\n _this.checker = checker;\n _this.initializer = initializer;\n _this.flags = flags;\n return _this;\n }\n CoreType.prototype.describe = function () {\n return this.name;\n };\n CoreType.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n return createScalarNode(this, parent, subpath, environment, initialValue);\n };\n CoreType.prototype.createNewInstance = function (snapshot) {\n return this.initializer(snapshot);\n };\n CoreType.prototype.isValidSnapshot = function (value, context) {\n if (isPrimitive(value) && this.checker(value)) {\n return typeCheckSuccess();\n }\n var typeName = this.name === \"Date\" ? \"Date or a unix milliseconds timestamp\" : this.name;\n return typeCheckFailure(context, value, \"Value is not a \" + typeName);\n };\n return CoreType;\n}(SimpleType);\n/**\n * `types.string` - Creates a type that can only contain a string value.\n * This type is used for string values by default\n *\n * Example:\n * ```ts\n * const Person = types.model({\n * firstName: types.string,\n * lastName: \"Doe\"\n * })\n * ```\n */\n// tslint:disable-next-line:variable-name\nvar string = new CoreType(\"string\", TypeFlags.String, function (v) {\n return typeof v === \"string\";\n});\n/**\n * `types.number` - Creates a type that can only contain a numeric value.\n * This type is used for numeric values by default\n *\n * Example:\n * ```ts\n * const Vector = types.model({\n * x: types.number,\n * y: 1.5\n * })\n * ```\n */\n// tslint:disable-next-line:variable-name\nvar number = new CoreType(\"number\", TypeFlags.Number, function (v) {\n return typeof v === \"number\";\n});\n/**\n * `types.integer` - Creates a type that can only contain an integer value.\n * This type is used for integer values by default\n *\n * Example:\n * ```ts\n * const Size = types.model({\n * width: types.integer,\n * height: 10\n * })\n * ```\n */\n// tslint:disable-next-line:variable-name\nvar integer = new CoreType(\"integer\", TypeFlags.Integer, function (v) {\n return isInteger(v);\n});\n/**\n * `types.boolean` - Creates a type that can only contain a boolean value.\n * This type is used for boolean values by default\n *\n * Example:\n * ```ts\n * const Thing = types.model({\n * isCool: types.boolean,\n * isAwesome: false\n * })\n * ```\n */\n// tslint:disable-next-line:variable-name\nvar boolean = new CoreType(\"boolean\", TypeFlags.Boolean, function (v) {\n return typeof v === \"boolean\";\n});\n/**\n * `types.null` - The type of the value `null`\n */\nvar nullType = new CoreType(\"null\", TypeFlags.Null, function (v) {\n return v === null;\n});\n/**\n * `types.undefined` - The type of the value `undefined`\n */\nvar undefinedType = new CoreType(\"undefined\", TypeFlags.Undefined, function (v) {\n return v === undefined;\n});\nvar _DatePrimitive = new CoreType(\"Date\", TypeFlags.Date, function (v) {\n return typeof v === \"number\" || v instanceof Date;\n}, function (v) {\n return v instanceof Date ? v : new Date(v);\n});\n_DatePrimitive.getSnapshot = function (node) {\n return node.storedValue.getTime();\n};\n/**\n * `types.Date` - Creates a type that can only contain a javascript Date value.\n *\n * Example:\n * ```ts\n * const LogLine = types.model({\n * timestamp: types.Date,\n * })\n *\n * LogLine.create({ timestamp: new Date() })\n * ```\n */\nvar DatePrimitive = _DatePrimitive;\n/**\n * @internal\n * @hidden\n */\nfunction getPrimitiveFactoryFromValue(value) {\n switch (typeof value) {\n case \"string\":\n return string;\n case \"number\":\n return number;\n // In the future, isInteger(value) ? integer : number would be interesting, but would be too breaking for now\n case \"boolean\":\n return boolean;\n case \"object\":\n if (value instanceof Date) return DatePrimitive;\n }\n throw fail$1(\"Cannot determine primitive type from value \" + value);\n}\n/**\n * Returns if a given value represents a primitive type.\n *\n * @param type\n * @returns\n */\nfunction isPrimitiveType(type) {\n return isType(type) && (type.flags & (TypeFlags.String | TypeFlags.Number | TypeFlags.Integer | TypeFlags.Boolean | TypeFlags.Date)) > 0;\n}\n\n/**\n * @internal\n * @hidden\n */\nvar Literal = /** @class */function (_super) {\n __extends(Literal, _super);\n function Literal(value) {\n var _this = _super.call(this, JSON.stringify(value)) || this;\n _this.flags = TypeFlags.Literal;\n _this.value = value;\n return _this;\n }\n Literal.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n return createScalarNode(this, parent, subpath, environment, initialValue);\n };\n Literal.prototype.describe = function () {\n return JSON.stringify(this.value);\n };\n Literal.prototype.isValidSnapshot = function (value, context) {\n if (isPrimitive(value) && value === this.value) {\n return typeCheckSuccess();\n }\n return typeCheckFailure(context, value, \"Value is not a literal \" + JSON.stringify(this.value));\n };\n return Literal;\n}(SimpleType);\n/**\n * `types.literal` - The literal type will return a type that will match only the exact given type.\n * The given value must be a primitive, in order to be serialized to a snapshot correctly.\n * You can use literal to match exact strings for example the exact male or female string.\n *\n * Example:\n * ```ts\n * const Person = types.model({\n * name: types.string,\n * gender: types.union(types.literal('male'), types.literal('female'))\n * })\n * ```\n *\n * @param value The value to use in the strict equal check\n * @returns\n */\nfunction literal(value) {\n // check that the given value is a primitive\n assertArg(value, isPrimitive, \"primitive\", 1);\n return new Literal(value);\n}\n/**\n * Returns if a given value represents a literal type.\n *\n * @param type\n * @returns\n */\nfunction isLiteralType(type) {\n return isType(type) && (type.flags & TypeFlags.Literal) > 0;\n}\nvar Refinement = /** @class */function (_super) {\n __extends(Refinement, _super);\n function Refinement(name, _subtype, _predicate, _message) {\n var _this = _super.call(this, name) || this;\n _this._subtype = _subtype;\n _this._predicate = _predicate;\n _this._message = _message;\n return _this;\n }\n Object.defineProperty(Refinement.prototype, \"flags\", {\n get: function () {\n return this._subtype.flags | TypeFlags.Refinement;\n },\n enumerable: false,\n configurable: true\n });\n Refinement.prototype.describe = function () {\n return this.name;\n };\n Refinement.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n // create the child type\n return this._subtype.instantiate(parent, subpath, environment, initialValue);\n };\n Refinement.prototype.isAssignableFrom = function (type) {\n return this._subtype.isAssignableFrom(type);\n };\n Refinement.prototype.isValidSnapshot = function (value, context) {\n var subtypeErrors = this._subtype.validate(value, context);\n if (subtypeErrors.length > 0) return subtypeErrors;\n var snapshot = isStateTreeNode(value) ? getStateTreeNode(value).snapshot : value;\n if (!this._predicate(snapshot)) {\n return typeCheckFailure(context, value, this._message(value));\n }\n return typeCheckSuccess();\n };\n Refinement.prototype.reconcile = function (current, newValue, parent, subpath) {\n return this._subtype.reconcile(current, newValue, parent, subpath);\n };\n Refinement.prototype.getSubTypes = function () {\n return this._subtype;\n };\n return Refinement;\n}(BaseType);\n/**\n * `types.refinement` - Creates a type that is more specific than the base type, e.g. `types.refinement(types.string, value => value.length > 5)` to create a type of strings that can only be longer then 5.\n *\n * @param name\n * @param type\n * @param predicate\n * @returns\n */\nfunction refinement() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var name = typeof args[0] === \"string\" ? args.shift() : isType(args[0]) ? args[0].name : null;\n var type = args[0];\n var predicate = args[1];\n var message = args[2] ? args[2] : function (v) {\n return \"Value does not respect the refinement predicate\";\n };\n // ensures all parameters are correct\n assertIsType(type, [1, 2]);\n assertIsString(name, 1);\n assertIsFunction(predicate, [2, 3]);\n assertIsFunction(message, [3, 4]);\n return new Refinement(name, type, predicate, message);\n}\n/**\n * Returns if a given value is a refinement type.\n *\n * @param type\n * @returns\n */\nfunction isRefinementType(type) {\n return (type.flags & TypeFlags.Refinement) > 0;\n}\n\n/**\n * `types.enumeration` - Can be used to create an string based enumeration.\n * (note: this methods is just sugar for a union of string literals)\n *\n * Example:\n * ```ts\n * const TrafficLight = types.model({\n * color: types.enumeration(\"Color\", [\"Red\", \"Orange\", \"Green\"])\n * })\n * ```\n *\n * @param name descriptive name of the enumeration (optional)\n * @param options possible values this enumeration can have\n * @returns\n */\nfunction enumeration(name, options) {\n var realOptions = typeof name === \"string\" ? options : name;\n // check all options\n if (devMode()) {\n realOptions.forEach(function (option, i) {\n assertIsString(option, i + 1);\n });\n }\n var type = union.apply(void 0, __spread(realOptions.map(function (option) {\n return literal(\"\" + option);\n })));\n if (typeof name === \"string\") type.name = name;\n return type;\n}\n\n/**\n * @internal\n * @hidden\n */\nvar Union = /** @class */function (_super) {\n __extends(Union, _super);\n function Union(name, _types, options) {\n var _this = _super.call(this, name) || this;\n _this._types = _types;\n _this._eager = true;\n options = __assign({\n eager: true,\n dispatcher: undefined\n }, options);\n _this._dispatcher = options.dispatcher;\n if (!options.eager) _this._eager = false;\n return _this;\n }\n Object.defineProperty(Union.prototype, \"flags\", {\n get: function () {\n var result = TypeFlags.Union;\n this._types.forEach(function (type) {\n result |= type.flags;\n });\n return result;\n },\n enumerable: false,\n configurable: true\n });\n Union.prototype.isAssignableFrom = function (type) {\n return this._types.some(function (subType) {\n return subType.isAssignableFrom(type);\n });\n };\n Union.prototype.describe = function () {\n return \"(\" + this._types.map(function (factory) {\n return factory.describe();\n }).join(\" | \") + \")\";\n };\n Union.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n var type = this.determineType(initialValue, undefined);\n if (!type) throw fail$1(\"No matching type for union \" + this.describe()); // can happen in prod builds\n return type.instantiate(parent, subpath, environment, initialValue);\n };\n Union.prototype.reconcile = function (current, newValue, parent, subpath) {\n var type = this.determineType(newValue, current.type);\n if (!type) throw fail$1(\"No matching type for union \" + this.describe()); // can happen in prod builds\n return type.reconcile(current, newValue, parent, subpath);\n };\n Union.prototype.determineType = function (value, reconcileCurrentType) {\n // try the dispatcher, if defined\n if (this._dispatcher) {\n return this._dispatcher(value);\n }\n // find the most accomodating type\n // if we are using reconciliation try the current node type first (fix for #1045)\n if (reconcileCurrentType) {\n if (reconcileCurrentType.is(value)) {\n return reconcileCurrentType;\n }\n return this._types.filter(function (t) {\n return t !== reconcileCurrentType;\n }).find(function (type) {\n return type.is(value);\n });\n } else {\n return this._types.find(function (type) {\n return type.is(value);\n });\n }\n };\n Union.prototype.isValidSnapshot = function (value, context) {\n if (this._dispatcher) {\n return this._dispatcher(value).validate(value, context);\n }\n var allErrors = [];\n var applicableTypes = 0;\n for (var i = 0; i < this._types.length; i++) {\n var type = this._types[i];\n var errors = type.validate(value, context);\n if (errors.length === 0) {\n if (this._eager) return typeCheckSuccess();else applicableTypes++;\n } else {\n allErrors.push(errors);\n }\n }\n if (applicableTypes === 1) return typeCheckSuccess();\n return typeCheckFailure(context, value, \"No type is applicable for the union\").concat(flattenTypeErrors(allErrors));\n };\n Union.prototype.getSubTypes = function () {\n return this._types;\n };\n return Union;\n}(BaseType);\n/**\n * `types.union` - Create a union of multiple types. If the correct type cannot be inferred unambiguously from a snapshot, provide a dispatcher function of the form `(snapshot) => Type`.\n *\n * @param optionsOrType\n * @param otherTypes\n * @returns\n */\nfunction union(optionsOrType) {\n var otherTypes = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n otherTypes[_i - 1] = arguments[_i];\n }\n var options = isType(optionsOrType) ? undefined : optionsOrType;\n var types = isType(optionsOrType) ? __spread([optionsOrType], otherTypes) : otherTypes;\n var name = \"(\" + types.map(function (type) {\n return type.name;\n }).join(\" | \") + \")\";\n // check all options\n if (devMode()) {\n if (options) {\n assertArg(options, function (o) {\n return isPlainObject(o);\n }, \"object { eager?: boolean, dispatcher?: Function }\", 1);\n }\n types.forEach(function (type, i) {\n assertIsType(type, options ? i + 2 : i + 1);\n });\n }\n return new Union(name, types, options);\n}\n/**\n * Returns if a given value represents a union type.\n *\n * @param type\n * @returns\n */\nfunction isUnionType(type) {\n return (type.flags & TypeFlags.Union) > 0;\n}\n\n/**\n * @hidden\n * @internal\n */\nvar OptionalValue = /** @class */function (_super) {\n __extends(OptionalValue, _super);\n function OptionalValue(_subtype, _defaultValue, optionalValues) {\n var _this = _super.call(this, _subtype.name) || this;\n _this._subtype = _subtype;\n _this._defaultValue = _defaultValue;\n _this.optionalValues = optionalValues;\n return _this;\n }\n Object.defineProperty(OptionalValue.prototype, \"flags\", {\n get: function () {\n return this._subtype.flags | TypeFlags.Optional;\n },\n enumerable: false,\n configurable: true\n });\n OptionalValue.prototype.describe = function () {\n return this._subtype.describe() + \"?\";\n };\n OptionalValue.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n if (this.optionalValues.indexOf(initialValue) >= 0) {\n var defaultInstanceOrSnapshot = this.getDefaultInstanceOrSnapshot();\n return this._subtype.instantiate(parent, subpath, environment, defaultInstanceOrSnapshot);\n }\n return this._subtype.instantiate(parent, subpath, environment, initialValue);\n };\n OptionalValue.prototype.reconcile = function (current, newValue, parent, subpath) {\n return this._subtype.reconcile(current, this.optionalValues.indexOf(newValue) < 0 && this._subtype.is(newValue) ? newValue : this.getDefaultInstanceOrSnapshot(), parent, subpath);\n };\n OptionalValue.prototype.getDefaultInstanceOrSnapshot = function () {\n var defaultInstanceOrSnapshot = typeof this._defaultValue === \"function\" ? this._defaultValue() : this._defaultValue;\n // while static values are already snapshots and checked on types.optional\n // generator functions must always be rechecked just in case\n if (typeof this._defaultValue === \"function\") {\n typecheckInternal(this, defaultInstanceOrSnapshot);\n }\n return defaultInstanceOrSnapshot;\n };\n OptionalValue.prototype.isValidSnapshot = function (value, context) {\n // defaulted values can be skipped\n if (this.optionalValues.indexOf(value) >= 0) {\n return typeCheckSuccess();\n }\n // bounce validation to the sub-type\n return this._subtype.validate(value, context);\n };\n OptionalValue.prototype.isAssignableFrom = function (type) {\n return this._subtype.isAssignableFrom(type);\n };\n OptionalValue.prototype.getSubTypes = function () {\n return this._subtype;\n };\n return OptionalValue;\n}(BaseType);\nfunction checkOptionalPreconditions(type, defaultValueOrFunction) {\n // make sure we never pass direct instances\n if (typeof defaultValueOrFunction !== \"function\" && isStateTreeNode(defaultValueOrFunction)) {\n throw fail$1(\"default value cannot be an instance, pass a snapshot or a function that creates an instance/snapshot instead\");\n }\n assertIsType(type, 1);\n if (devMode()) {\n // we only check default values if they are passed directly\n // if they are generator functions they will be checked once they are generated\n // we don't check generator function results here to avoid generating a node just for type-checking purposes\n // which might generate side-effects\n if (typeof defaultValueOrFunction !== \"function\") {\n typecheckInternal(type, defaultValueOrFunction);\n }\n }\n}\n/**\n * `types.optional` - Can be used to create a property with a default value.\n *\n * Depending on the third argument (`optionalValues`) there are two ways of operation:\n * - If the argument is not provided, then if a value is not provided in the snapshot (`undefined` or missing),\n * it will default to the provided `defaultValue`\n * - If the argument is provided, then if the value in the snapshot matches one of the optional values inside the array then it will\n * default to the provided `defaultValue`. Additionally, if one of the optional values inside the array is `undefined` then a missing\n * property is also valid.\n *\n * Note that it is also possible to include values of the same type as the intended subtype as optional values,\n * in this case the optional value will be transformed into the `defaultValue` (e.g. `types.optional(types.string, \"unnamed\", [undefined, \"\"])`\n * will transform the snapshot values `undefined` (and therefore missing) and empty strings into the string `\"unnamed\"` when it gets\n * instantiated).\n *\n * If `defaultValue` is a function, the function will be invoked for every new instance.\n * Applying a snapshot in which the optional value is one of the optional values (or `undefined`/_not_ present if none are provided) causes the\n * value to be reset.\n *\n * Example:\n * ```ts\n * const Todo = types.model({\n * title: types.string,\n * subtitle1: types.optional(types.string, \"\", [null]),\n * subtitle2: types.optional(types.string, \"\", [null, undefined]),\n * done: types.optional(types.boolean, false),\n * created: types.optional(types.Date, () => new Date()),\n * })\n *\n * // if done is missing / undefined it will become false\n * // if created is missing / undefined it will get a freshly generated timestamp\n * // if subtitle1 is null it will default to \"\", but it cannot be missing or undefined\n * // if subtitle2 is null or undefined it will default to \"\"; since it can be undefined it can also be missing\n * const todo = Todo.create({ title: \"Get coffee\", subtitle1: null })\n * ```\n *\n * @param type\n * @param defaultValueOrFunction\n * @param optionalValues an optional array with zero or more primitive values (string, number, boolean, null or undefined)\n * that will be converted into the default. `[ undefined ]` is assumed when none is provided\n * @returns\n */\nfunction optional(type, defaultValueOrFunction, optionalValues) {\n checkOptionalPreconditions(type, defaultValueOrFunction);\n return new OptionalValue(type, defaultValueOrFunction, optionalValues ? optionalValues : undefinedAsOptionalValues);\n}\nvar undefinedAsOptionalValues = [undefined];\n/**\n * Returns if a value represents an optional type.\n *\n * @template IT\n * @param type\n * @returns\n */\nfunction isOptionalType(type) {\n return isType(type) && (type.flags & TypeFlags.Optional) > 0;\n}\nvar optionalUndefinedType = optional(undefinedType, undefined);\nvar optionalNullType = optional(nullType, null);\n/**\n * `types.maybe` - Maybe will make a type nullable, and also optional.\n * The value `undefined` will be used to represent nullability.\n *\n * @param type\n * @returns\n */\nfunction maybe(type) {\n assertIsType(type, 1);\n return union(type, optionalUndefinedType);\n}\n/**\n * `types.maybeNull` - Maybe will make a type nullable, and also optional.\n * The value `null` will be used to represent no value.\n *\n * @param type\n * @returns\n */\nfunction maybeNull(type) {\n assertIsType(type, 1);\n return union(type, optionalNullType);\n}\nvar Late = /** @class */function (_super) {\n __extends(Late, _super);\n function Late(name, _definition) {\n var _this = _super.call(this, name) || this;\n _this._definition = _definition;\n return _this;\n }\n Object.defineProperty(Late.prototype, \"flags\", {\n get: function () {\n return (this._subType ? this._subType.flags : 0) | TypeFlags.Late;\n },\n enumerable: false,\n configurable: true\n });\n Late.prototype.getSubType = function (mustSucceed) {\n if (!this._subType) {\n var t = undefined;\n try {\n t = this._definition();\n } catch (e) {\n if (e instanceof ReferenceError)\n // can happen in strict ES5 code when a definition is self refering\n t = undefined;else throw e;\n }\n if (mustSucceed && t === undefined) throw fail$1(\"Late type seems to be used too early, the definition (still) returns undefined\");\n if (t) {\n if (devMode() && !isType(t)) throw fail$1(\"Failed to determine subtype, make sure types.late returns a type definition.\");\n this._subType = t;\n }\n }\n return this._subType;\n };\n Late.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n return this.getSubType(true).instantiate(parent, subpath, environment, initialValue);\n };\n Late.prototype.reconcile = function (current, newValue, parent, subpath) {\n return this.getSubType(true).reconcile(current, newValue, parent, subpath);\n };\n Late.prototype.describe = function () {\n var t = this.getSubType(false);\n return t ? t.name : \"\";\n };\n Late.prototype.isValidSnapshot = function (value, context) {\n var t = this.getSubType(false);\n if (!t) {\n // See #916; the variable the definition closure is pointing to wasn't defined yet, so can't be evaluted yet here\n return typeCheckSuccess();\n }\n return t.validate(value, context);\n };\n Late.prototype.isAssignableFrom = function (type) {\n var t = this.getSubType(false);\n return t ? t.isAssignableFrom(type) : false;\n };\n Late.prototype.getSubTypes = function () {\n var subtype = this.getSubType(false);\n return subtype ? subtype : cannotDetermineSubtype;\n };\n return Late;\n}(BaseType);\n/**\n * `types.late` - Defines a type that gets implemented later. This is useful when you have to deal with circular dependencies.\n * Please notice that when defining circular dependencies TypeScript isn't smart enough to inference them.\n *\n * Example:\n * ```ts\n * // TypeScript isn't smart enough to infer self referencing types.\n * const Node = types.model({\n * children: types.array(types.late((): IAnyModelType => Node)) // then typecast each array element to Instance\n * })\n * ```\n *\n * @param name The name to use for the type that will be returned.\n * @param type A function that returns the type that will be defined.\n * @returns\n */\nfunction late(nameOrType, maybeType) {\n var name = typeof nameOrType === \"string\" ? nameOrType : \"late(\" + nameOrType.toString() + \")\";\n var type = typeof nameOrType === \"string\" ? maybeType : nameOrType;\n // checks that the type is actually a late type\n if (devMode()) {\n if (!(typeof type === \"function\" && type.length === 0)) throw fail$1(\"Invalid late type, expected a function with zero arguments that returns a type, got: \" + type);\n }\n return new Late(name, type);\n}\n/**\n * Returns if a given value represents a late type.\n *\n * @param type\n * @returns\n */\nfunction isLateType(type) {\n return isType(type) && (type.flags & TypeFlags.Late) > 0;\n}\n\n/**\n * @internal\n * @hidden\n */\nvar Frozen = /** @class */function (_super) {\n __extends(Frozen, _super);\n function Frozen(subType) {\n var _this = _super.call(this, subType ? \"frozen(\" + subType.name + \")\" : \"frozen\") || this;\n _this.subType = subType;\n _this.flags = TypeFlags.Frozen;\n return _this;\n }\n Frozen.prototype.describe = function () {\n return \"\";\n };\n Frozen.prototype.instantiate = function (parent, subpath, environment, value) {\n // create the node\n return createScalarNode(this, parent, subpath, environment, deepFreeze(value));\n };\n Frozen.prototype.isValidSnapshot = function (value, context) {\n if (!isSerializable(value)) {\n return typeCheckFailure(context, value, \"Value is not serializable and cannot be frozen\");\n }\n if (this.subType) return this.subType.validate(value, context);\n return typeCheckSuccess();\n };\n return Frozen;\n}(SimpleType);\nvar untypedFrozenInstance = new Frozen();\n/**\n * `types.frozen` - Frozen can be used to store any value that is serializable in itself (that is valid JSON).\n * Frozen values need to be immutable or treated as if immutable. They need be serializable as well.\n * Values stored in frozen will snapshotted as-is by MST, and internal changes will not be tracked.\n *\n * This is useful to store complex, but immutable values like vectors etc. It can form a powerful bridge to parts of your application that should be immutable, or that assume data to be immutable.\n *\n * Note: if you want to store free-form state that is mutable, or not serializeable, consider using volatile state instead.\n *\n * Frozen properties can be defined in three different ways\n * 1. `types.frozen(SubType)` - provide a valid MST type and frozen will check if the provided data conforms the snapshot for that type\n * 2. `types.frozen({ someDefaultValue: true})` - provide a primitive value, object or array, and MST will infer the type from that object, and also make it the default value for the field\n * 3. `types.frozen()` - provide a typescript type, to help in strongly typing the field (design time only)\n *\n * Example:\n * ```ts\n * const GameCharacter = types.model({\n * name: string,\n * location: types.frozen({ x: 0, y: 0})\n * })\n *\n * const hero = GameCharacter.create({\n * name: \"Mario\",\n * location: { x: 7, y: 4 }\n * })\n *\n * hero.location = { x: 10, y: 2 } // OK\n * hero.location.x = 7 // Not ok!\n * ```\n *\n * ```ts\n * type Point = { x: number, y: number }\n * const Mouse = types.model({\n * loc: types.frozen()\n * })\n * ```\n *\n * @param defaultValueOrType\n * @returns\n */\nfunction frozen(arg) {\n if (arguments.length === 0) return untypedFrozenInstance;else if (isType(arg)) return new Frozen(arg);else return optional(untypedFrozenInstance, arg);\n}\n/**\n * Returns if a given value represents a frozen type.\n *\n * @param type\n * @returns\n */\nfunction isFrozenType(type) {\n return isType(type) && (type.flags & TypeFlags.Frozen) > 0;\n}\nfunction getInvalidationCause(hook) {\n switch (hook) {\n case Hook.beforeDestroy:\n return \"destroy\";\n case Hook.beforeDetach:\n return \"detach\";\n default:\n return undefined;\n }\n}\nvar StoredReference = /** @class */function () {\n function StoredReference(value, targetType) {\n this.targetType = targetType;\n if (isValidIdentifier(value)) {\n this.identifier = value;\n } else if (isStateTreeNode(value)) {\n var targetNode = getStateTreeNode(value);\n if (!targetNode.identifierAttribute) throw fail$1(\"Can only store references with a defined identifier attribute.\");\n var id = targetNode.unnormalizedIdentifier;\n if (id === null || id === undefined) {\n throw fail$1(\"Can only store references to tree nodes with a defined identifier.\");\n }\n this.identifier = id;\n } else {\n throw fail$1(\"Can only store references to tree nodes or identifiers, got: '\" + value + \"'\");\n }\n }\n StoredReference.prototype.updateResolvedReference = function (node) {\n var normalizedId = normalizeIdentifier(this.identifier);\n var root = node.root;\n var lastCacheModification = root.identifierCache.getLastCacheModificationPerId(normalizedId);\n if (!this.resolvedReference || this.resolvedReference.lastCacheModification !== lastCacheModification) {\n var targetType = this.targetType;\n // reference was initialized with the identifier of the target\n var target = root.identifierCache.resolve(targetType, normalizedId);\n if (!target) {\n throw new InvalidReferenceError(\"[mobx-state-tree] Failed to resolve reference '\" + this.identifier + \"' to type '\" + this.targetType.name + \"' (from node: \" + node.path + \")\");\n }\n this.resolvedReference = {\n node: target,\n lastCacheModification: lastCacheModification\n };\n }\n };\n Object.defineProperty(StoredReference.prototype, \"resolvedValue\", {\n get: function () {\n this.updateResolvedReference(this.node);\n return this.resolvedReference.node.value;\n },\n enumerable: false,\n configurable: true\n });\n return StoredReference;\n}();\n/**\n * @internal\n * @hidden\n */\nvar InvalidReferenceError = /** @class */function (_super) {\n __extends(InvalidReferenceError, _super);\n function InvalidReferenceError(m) {\n var _this = _super.call(this, m) || this;\n Object.setPrototypeOf(_this, InvalidReferenceError.prototype);\n return _this;\n }\n return InvalidReferenceError;\n}(Error);\n/**\n * @internal\n * @hidden\n */\nvar BaseReferenceType = /** @class */function (_super) {\n __extends(BaseReferenceType, _super);\n function BaseReferenceType(targetType, onInvalidated) {\n var _this = _super.call(this, \"reference(\" + targetType.name + \")\") || this;\n _this.targetType = targetType;\n _this.onInvalidated = onInvalidated;\n _this.flags = TypeFlags.Reference;\n return _this;\n }\n BaseReferenceType.prototype.describe = function () {\n return this.name;\n };\n BaseReferenceType.prototype.isAssignableFrom = function (type) {\n return this.targetType.isAssignableFrom(type);\n };\n BaseReferenceType.prototype.isValidSnapshot = function (value, context) {\n return isValidIdentifier(value) ? typeCheckSuccess() : typeCheckFailure(context, value, \"Value is not a valid identifier, which is a string or a number\");\n };\n BaseReferenceType.prototype.fireInvalidated = function (cause, storedRefNode, referenceId, refTargetNode) {\n // to actually invalidate a reference we need an alive parent,\n // since it is a scalar value (immutable-ish) and we need to change it\n // from the parent\n var storedRefParentNode = storedRefNode.parent;\n if (!storedRefParentNode || !storedRefParentNode.isAlive) {\n return;\n }\n var storedRefParentValue = storedRefParentNode.storedValue;\n if (!storedRefParentValue) {\n return;\n }\n this.onInvalidated({\n cause: cause,\n parent: storedRefParentValue,\n invalidTarget: refTargetNode ? refTargetNode.storedValue : undefined,\n invalidId: referenceId,\n replaceRef: function (newRef) {\n applyPatch(storedRefNode.root.storedValue, {\n op: \"replace\",\n value: newRef,\n path: storedRefNode.path\n });\n },\n removeRef: function () {\n if (isModelType(storedRefParentNode.type)) {\n this.replaceRef(undefined);\n } else {\n applyPatch(storedRefNode.root.storedValue, {\n op: \"remove\",\n path: storedRefNode.path\n });\n }\n }\n });\n };\n BaseReferenceType.prototype.addTargetNodeWatcher = function (storedRefNode, referenceId) {\n var _this = this;\n // this will make sure the target node becomes created\n var refTargetValue = this.getValue(storedRefNode);\n if (!refTargetValue) {\n return undefined;\n }\n var refTargetNode = getStateTreeNode(refTargetValue);\n var hookHandler = function (_, refTargetNodeHook) {\n var cause = getInvalidationCause(refTargetNodeHook);\n if (!cause) {\n return;\n }\n _this.fireInvalidated(cause, storedRefNode, referenceId, refTargetNode);\n };\n var refTargetDetachHookDisposer = refTargetNode.registerHook(Hook.beforeDetach, hookHandler);\n var refTargetDestroyHookDisposer = refTargetNode.registerHook(Hook.beforeDestroy, hookHandler);\n return function () {\n refTargetDetachHookDisposer();\n refTargetDestroyHookDisposer();\n };\n };\n BaseReferenceType.prototype.watchTargetNodeForInvalidations = function (storedRefNode, identifier, customGetSet) {\n var _this = this;\n if (!this.onInvalidated) {\n return;\n }\n var onRefTargetDestroyedHookDisposer;\n // get rid of the watcher hook when the stored ref node is destroyed\n // detached is ignored since scalar nodes (where the reference resides) cannot be detached\n storedRefNode.registerHook(Hook.beforeDestroy, function () {\n if (onRefTargetDestroyedHookDisposer) {\n onRefTargetDestroyedHookDisposer();\n }\n });\n var startWatching = function (sync) {\n // re-create hook in case the stored ref gets reattached\n if (onRefTargetDestroyedHookDisposer) {\n onRefTargetDestroyedHookDisposer();\n }\n // make sure the target node is actually there and initialized\n var storedRefParentNode = storedRefNode.parent;\n var storedRefParentValue = storedRefParentNode && storedRefParentNode.storedValue;\n if (storedRefParentNode && storedRefParentNode.isAlive && storedRefParentValue) {\n var refTargetNodeExists = void 0;\n if (customGetSet) {\n refTargetNodeExists = !!customGetSet.get(identifier, storedRefParentValue);\n } else {\n refTargetNodeExists = storedRefNode.root.identifierCache.has(_this.targetType, normalizeIdentifier(identifier));\n }\n if (!refTargetNodeExists) {\n // we cannot change the reference in sync mode\n // since we are in the middle of a reconciliation/instantiation and the change would be overwritten\n // for those cases just let the wrong reference be assigned and fail upon usage\n // (like current references do)\n // this means that effectively this code will only run when it is created from a snapshot\n if (!sync) {\n _this.fireInvalidated(\"invalidSnapshotReference\", storedRefNode, identifier, null);\n }\n } else {\n onRefTargetDestroyedHookDisposer = _this.addTargetNodeWatcher(storedRefNode, identifier);\n }\n }\n };\n if (storedRefNode.state === NodeLifeCycle.FINALIZED) {\n // already attached, so the whole tree is ready\n startWatching(true);\n } else {\n if (!storedRefNode.isRoot) {\n // start watching once the whole tree is ready\n storedRefNode.root.registerHook(Hook.afterCreationFinalization, function () {\n // make sure to attach it so it can start listening\n if (storedRefNode.parent) {\n storedRefNode.parent.createObservableInstanceIfNeeded();\n }\n });\n }\n // start watching once the node is attached somewhere / parent changes\n storedRefNode.registerHook(Hook.afterAttach, function () {\n startWatching(false);\n });\n }\n };\n return BaseReferenceType;\n}(SimpleType);\n/**\n * @internal\n * @hidden\n */\nvar IdentifierReferenceType = /** @class */function (_super) {\n __extends(IdentifierReferenceType, _super);\n function IdentifierReferenceType(targetType, onInvalidated) {\n return _super.call(this, targetType, onInvalidated) || this;\n }\n IdentifierReferenceType.prototype.getValue = function (storedRefNode) {\n if (!storedRefNode.isAlive) return undefined;\n var storedRef = storedRefNode.storedValue;\n return storedRef.resolvedValue;\n };\n IdentifierReferenceType.prototype.getSnapshot = function (storedRefNode) {\n var ref = storedRefNode.storedValue;\n return ref.identifier;\n };\n IdentifierReferenceType.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n var identifier = isStateTreeNode(initialValue) ? getIdentifier(initialValue) : initialValue;\n var storedRef = new StoredReference(initialValue, this.targetType);\n var storedRefNode = createScalarNode(this, parent, subpath, environment, storedRef);\n storedRef.node = storedRefNode;\n this.watchTargetNodeForInvalidations(storedRefNode, identifier, undefined);\n return storedRefNode;\n };\n IdentifierReferenceType.prototype.reconcile = function (current, newValue, parent, subpath) {\n if (!current.isDetaching && current.type === this) {\n var compareByValue = isStateTreeNode(newValue);\n var ref = current.storedValue;\n if (!compareByValue && ref.identifier === newValue || compareByValue && ref.resolvedValue === newValue) {\n current.setParent(parent, subpath);\n return current;\n }\n }\n var newNode = this.instantiate(parent, subpath, undefined, newValue);\n current.die(); // noop if detaching\n return newNode;\n };\n return IdentifierReferenceType;\n}(BaseReferenceType);\n/**\n * @internal\n * @hidden\n */\nvar CustomReferenceType = /** @class */function (_super) {\n __extends(CustomReferenceType, _super);\n function CustomReferenceType(targetType, options, onInvalidated) {\n var _this = _super.call(this, targetType, onInvalidated) || this;\n _this.options = options;\n return _this;\n }\n CustomReferenceType.prototype.getValue = function (storedRefNode) {\n if (!storedRefNode.isAlive) return undefined;\n var referencedNode = this.options.get(storedRefNode.storedValue, storedRefNode.parent ? storedRefNode.parent.storedValue : null);\n return referencedNode;\n };\n CustomReferenceType.prototype.getSnapshot = function (storedRefNode) {\n return storedRefNode.storedValue;\n };\n CustomReferenceType.prototype.instantiate = function (parent, subpath, environment, newValue) {\n var identifier = isStateTreeNode(newValue) ? this.options.set(newValue, parent ? parent.storedValue : null) : newValue;\n var storedRefNode = createScalarNode(this, parent, subpath, environment, identifier);\n this.watchTargetNodeForInvalidations(storedRefNode, identifier, this.options);\n return storedRefNode;\n };\n CustomReferenceType.prototype.reconcile = function (current, newValue, parent, subpath) {\n var newIdentifier = isStateTreeNode(newValue) ? this.options.set(newValue, current ? current.storedValue : null) : newValue;\n if (!current.isDetaching && current.type === this && current.storedValue === newIdentifier) {\n current.setParent(parent, subpath);\n return current;\n }\n var newNode = this.instantiate(parent, subpath, undefined, newIdentifier);\n current.die(); // noop if detaching\n return newNode;\n };\n return CustomReferenceType;\n}(BaseReferenceType);\n/**\n * `types.reference` - Creates a reference to another type, which should have defined an identifier.\n * See also the [reference and identifiers](https://github.com/mobxjs/mobx-state-tree#references-and-identifiers) section.\n */\nfunction reference(subType, options) {\n assertIsType(subType, 1);\n if (devMode()) {\n if (arguments.length === 2 && typeof arguments[1] === \"string\") {\n // istanbul ignore next\n throw fail$1(\"References with base path are no longer supported. Please remove the base path.\");\n }\n }\n var getSetOptions = options ? options : undefined;\n var onInvalidated = options ? options.onInvalidated : undefined;\n if (getSetOptions && (getSetOptions.get || getSetOptions.set)) {\n if (devMode()) {\n if (!getSetOptions.get || !getSetOptions.set) {\n throw fail$1(\"reference options must either contain both a 'get' and a 'set' method or none of them\");\n }\n }\n return new CustomReferenceType(subType, {\n get: getSetOptions.get,\n set: getSetOptions.set\n }, onInvalidated);\n } else {\n return new IdentifierReferenceType(subType, onInvalidated);\n }\n}\n/**\n * Returns if a given value represents a reference type.\n *\n * @param type\n * @returns\n */\nfunction isReferenceType(type) {\n return (type.flags & TypeFlags.Reference) > 0;\n}\n/**\n * `types.safeReference` - A safe reference is like a standard reference, except that it accepts the undefined value by default\n * and automatically sets itself to undefined (when the parent is a model) / removes itself from arrays and maps\n * when the reference it is pointing to gets detached/destroyed.\n *\n * The optional options parameter object accepts a parameter named `acceptsUndefined`, which is set to true by default, so it is suitable\n * for model properties.\n * When used inside collections (arrays/maps), it is recommended to set this option to false so it can't take undefined as value,\n * which is usually the desired in those cases.\n *\n * Strictly speaking it is a `types.maybe(types.reference(X))` (when `acceptsUndefined` is set to true, the default) and\n * `types.reference(X)` (when `acceptsUndefined` is set to false), both of them with a customized `onInvalidated` option.\n *\n * @param subType\n * @param options\n * @returns\n */\nfunction safeReference(subType, options) {\n var refType = reference(subType, __assign(__assign({}, options), {\n onInvalidated: function (ev) {\n if (options && options.onInvalidated) {\n options.onInvalidated(ev);\n }\n ev.removeRef();\n }\n }));\n if (options && options.acceptsUndefined === false) {\n return refType;\n } else {\n return maybe(refType);\n }\n}\nvar BaseIdentifierType = /** @class */function (_super) {\n __extends(BaseIdentifierType, _super);\n function BaseIdentifierType(name, validType) {\n var _this = _super.call(this, name) || this;\n _this.validType = validType;\n _this.flags = TypeFlags.Identifier;\n return _this;\n }\n BaseIdentifierType.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n if (!parent || !(parent.type instanceof ModelType)) throw fail$1(\"Identifier types can only be instantiated as direct child of a model type\");\n return createScalarNode(this, parent, subpath, environment, initialValue);\n };\n BaseIdentifierType.prototype.reconcile = function (current, newValue, parent, subpath) {\n // we don't consider detaching here since identifier are scalar nodes, and scalar nodes cannot be detached\n if (current.storedValue !== newValue) throw fail$1(\"Tried to change identifier from '\" + current.storedValue + \"' to '\" + newValue + \"'. Changing identifiers is not allowed.\");\n current.setParent(parent, subpath);\n return current;\n };\n BaseIdentifierType.prototype.isValidSnapshot = function (value, context) {\n if (typeof value !== this.validType) {\n return typeCheckFailure(context, value, \"Value is not a valid \" + this.describe() + \", expected a \" + this.validType);\n }\n return typeCheckSuccess();\n };\n return BaseIdentifierType;\n}(SimpleType);\n/**\n * @internal\n * @hidden\n */\nvar IdentifierType = /** @class */function (_super) {\n __extends(IdentifierType, _super);\n function IdentifierType() {\n var _this = _super.call(this, \"identifier\", \"string\") || this;\n _this.flags = TypeFlags.Identifier;\n return _this;\n }\n IdentifierType.prototype.describe = function () {\n return \"identifier\";\n };\n return IdentifierType;\n}(BaseIdentifierType);\n/**\n * @internal\n * @hidden\n */\nvar IdentifierNumberType = /** @class */function (_super) {\n __extends(IdentifierNumberType, _super);\n function IdentifierNumberType() {\n return _super.call(this, \"identifierNumber\", \"number\") || this;\n }\n IdentifierNumberType.prototype.getSnapshot = function (node) {\n return node.storedValue;\n };\n IdentifierNumberType.prototype.describe = function () {\n return \"identifierNumber\";\n };\n return IdentifierNumberType;\n}(BaseIdentifierType);\n/**\n * `types.identifier` - Identifiers are used to make references, lifecycle events and reconciling works.\n * Inside a state tree, for each type can exist only one instance for each given identifier.\n * For example there couldn't be 2 instances of user with id 1. If you need more, consider using references.\n * Identifier can be used only as type property of a model.\n * This type accepts as parameter the value type of the identifier field that can be either string or number.\n *\n * Example:\n * ```ts\n * const Todo = types.model(\"Todo\", {\n * id: types.identifier,\n * title: types.string\n * })\n * ```\n *\n * @returns\n */\nvar identifier = new IdentifierType();\n/**\n * `types.identifierNumber` - Similar to `types.identifier`. This one will serialize from / to a number when applying snapshots\n *\n * Example:\n * ```ts\n * const Todo = types.model(\"Todo\", {\n * id: types.identifierNumber,\n * title: types.string\n * })\n * ```\n *\n * @returns\n */\nvar identifierNumber = new IdentifierNumberType();\n/**\n * Returns if a given value represents an identifier type.\n *\n * @param type\n * @returns\n */\nfunction isIdentifierType(type) {\n return isType(type) && (type.flags & TypeFlags.Identifier) > 0;\n}\n/**\n * @internal\n * @hidden\n */\nfunction normalizeIdentifier(id) {\n return \"\" + id;\n}\n/**\n * @internal\n * @hidden\n */\nfunction isValidIdentifier(id) {\n return typeof id === \"string\" || typeof id === \"number\";\n}\n/**\n * @internal\n * @hidden\n */\nfunction assertIsValidIdentifier(id, argNumber) {\n assertArg(id, isValidIdentifier, \"string or number (identifier)\", argNumber);\n}\n\n/**\n * `types.custom` - Creates a custom type. Custom types can be used for arbitrary immutable values, that have a serializable representation. For example, to create your own Date representation, Decimal type etc.\n *\n * The signature of the options is:\n * ```ts\n * export interface CustomTypeOptions {\n * // Friendly name\n * name: string\n * // given a serialized value and environment, how to turn it into the target type\n * fromSnapshot(snapshot: S, env: any): T\n * // return the serialization of the current value\n * toSnapshot(value: T): S\n * // if true, this is a converted value, if false, it's a snapshot\n * isTargetType(value: T | S): value is T\n * // a non empty string is assumed to be a validation error\n * getValidationMessage?(snapshot: S): string\n * }\n * ```\n *\n * Example:\n * ```ts\n * const DecimalPrimitive = types.custom({\n * name: \"Decimal\",\n * fromSnapshot(value: string) {\n * return new Decimal(value)\n * },\n * toSnapshot(value: Decimal) {\n * return value.toString()\n * },\n * isTargetType(value: string | Decimal): boolean {\n * return value instanceof Decimal\n * },\n * getValidationMessage(value: string): string {\n * if (/^-?\\d+\\.\\d+$/.test(value)) return \"\" // OK\n * return `'${value}' doesn't look like a valid decimal number`\n * }\n * })\n *\n * const Wallet = types.model({\n * balance: DecimalPrimitive\n * })\n * ```\n *\n * @param options\n * @returns\n */\nfunction custom(options) {\n return new CustomType(options);\n}\n/**\n * @internal\n * @hidden\n */\nvar CustomType = /** @class */function (_super) {\n __extends(CustomType, _super);\n function CustomType(options) {\n var _this = _super.call(this, options.name) || this;\n _this.options = options;\n _this.flags = TypeFlags.Custom;\n return _this;\n }\n CustomType.prototype.describe = function () {\n return this.name;\n };\n CustomType.prototype.isValidSnapshot = function (value, context) {\n if (this.options.isTargetType(value)) return typeCheckSuccess();\n var typeError = this.options.getValidationMessage(value);\n if (typeError) {\n return typeCheckFailure(context, value, \"Invalid value for type '\" + this.name + \"': \" + typeError);\n }\n return typeCheckSuccess();\n };\n CustomType.prototype.getSnapshot = function (node) {\n return this.options.toSnapshot(node.storedValue);\n };\n CustomType.prototype.instantiate = function (parent, subpath, environment, initialValue) {\n var valueToStore = this.options.isTargetType(initialValue) ? initialValue : this.options.fromSnapshot(initialValue, parent && parent.root.environment);\n return createScalarNode(this, parent, subpath, environment, valueToStore);\n };\n CustomType.prototype.reconcile = function (current, value, parent, subpath) {\n var isSnapshot = !this.options.isTargetType(value);\n // in theory customs use scalar nodes which cannot be detached, but still...\n if (!current.isDetaching) {\n var unchanged = current.type === this && (isSnapshot ? value === current.snapshot : value === current.storedValue);\n if (unchanged) {\n current.setParent(parent, subpath);\n return current;\n }\n }\n var valueToStore = isSnapshot ? this.options.fromSnapshot(value, parent.root.environment) : value;\n var newNode = this.instantiate(parent, subpath, undefined, valueToStore);\n current.die(); // noop if detaching\n return newNode;\n };\n return CustomType;\n}(SimpleType);\n\n// we import the types to re-export them inside types.\nvar types = {\n enumeration: enumeration,\n model: model,\n compose: compose,\n custom: custom,\n reference: reference,\n safeReference: safeReference,\n union: union,\n optional: optional,\n literal: literal,\n maybe: maybe,\n maybeNull: maybeNull,\n refinement: refinement,\n string: string,\n boolean: boolean,\n number: number,\n integer: integer,\n Date: DatePrimitive,\n map: map,\n array: array,\n frozen: frozen,\n identifier: identifier,\n identifierNumber: identifierNumber,\n late: late,\n undefined: undefinedType,\n null: nullType,\n snapshotProcessor: snapshotProcessor\n};\nexport { addDisposer, addMiddleware, applyAction, applyPatch, applySnapshot, cast, castFlowReturn, castToReferenceSnapshot, castToSnapshot, clone, createActionTrackingMiddleware, createActionTrackingMiddleware2, decorate, destroy, detach, escapeJsonPath, flow, getChildType, getEnv, getIdentifier, getLivelinessChecking, getMembers, getNodeId, getParent, getParentOfType, getPath, getPathParts, getPropertyMembers, getRelativePath, getRoot, getRunningActionContext, getSnapshot, getType, hasParent, hasParentOfType, isActionContextChildOf, isActionContextThisOrChildOf, isAlive, isArrayType, isFrozenType, isIdentifierType, isLateType, isLiteralType, isMapType, isModelType, isOptionalType, isPrimitiveType, isProtected, isReferenceType, isRefinementType, isRoot, isStateTreeNode, isType, isUnionType, isValidReference, joinJsonPath, onAction, onPatch, onSnapshot, process$1 as process, protect, recordActions, recordPatches, resolveIdentifier, resolvePath, setLivelinessChecking, setLivelynessChecking, splitJsonPath, toGenerator, toGeneratorFunction, tryReference, tryResolve, typecheck, types, unescapeJsonPath, unprotect, walk };","import { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as s, useMemo as i, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n return e;\n }).apply(this, arguments);\n}\nvar g = function (e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) n.push(t[r], e[r + 1]);\n return n;\n },\n S = function (t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n },\n w = Object.freeze([]),\n E = Object.freeze({});\nfunction b(e) {\n return \"function\" == typeof e;\n}\nfunction _(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\nfunction N(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\nvar A = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.3.6\",\n I = \"undefined\" != typeof window && \"HTMLElement\" in window,\n P = Boolean(\"boolean\" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && \"\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? \"false\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.SC_DISABLE_SPEEDY && \"\" !== process.env.SC_DISABLE_SPEEDY ? \"false\" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : \"production\" !== process.env.NODE_ENV),\n O = {},\n R = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n } : {};\nfunction D() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\nfunction j(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(D.apply(void 0, [R[e]].concat(n)).trim());\n}\nvar T = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) t += this.groupSizes[n];\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) (o <<= 1) < 0 && j(16, \"\" + e);\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n for (var s = r; s < o; s++) this.groupSizes[s] = 0;\n }\n for (var i = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) this.tag.insertRule(i, t[a]) && (this.groupSizes[e]++, i++);\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n for (var o = n; o < r; o++) this.tag.deleteRule(n);\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, s = r; s < o; s++) t += this.tag.getRule(s) + \"/*!sc*/\\n\";\n return t;\n }, e;\n }(),\n x = new Map(),\n k = new Map(),\n V = 1,\n B = function (e) {\n if (x.has(e)) return x.get(e);\n for (; k.has(V);) V++;\n var t = V++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && j(16, \"\" + t), x.set(e, t), k.set(t, e), t;\n },\n z = function (e) {\n return k.get(e);\n },\n M = function (e, t) {\n t >= V && (V = t + 1), x.set(e, t), k.set(t, e);\n },\n G = \"style[\" + A + '][data-styled-version=\"5.3.6\"]',\n L = new RegExp(\"^\" + A + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n F = function (e, t, n) {\n for (var r, o = n.split(\",\"), s = 0, i = o.length; s < i; s++) (r = o[s]) && e.registerName(t, r);\n },\n Y = function (e, t) {\n for (var n = (t.textContent || \"\").split(\"/*!sc*/\\n\"), r = [], o = 0, s = n.length; o < s; o++) {\n var i = n[o].trim();\n if (i) {\n var a = i.match(L);\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (M(u, c), F(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(i);\n }\n }\n },\n q = function () {\n return \"undefined\" != typeof __webpack_nonce__ ? __webpack_nonce__ : null;\n },\n H = function (e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(A)) return r;\n }\n }(n),\n s = void 0 !== o ? o.nextSibling : null;\n r.setAttribute(A, \"active\"), r.setAttribute(\"data-styled-version\", \"5.3.6\");\n var i = q();\n return i && r.setAttribute(\"nonce\", i), n.insertBefore(r, s), r;\n },\n $ = function () {\n function e(e) {\n var t = this.element = H(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n j(17);\n }(t), this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n }(),\n W = function () {\n function e(e) {\n var t = this.element = H(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n }(),\n U = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n }(),\n J = I,\n X = {\n isServer: !I,\n useCSSOMInjection: !P\n },\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = E), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), this.server = !!e.isServer, !this.server && I && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll(G), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(A) && (Y(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n e.registerId = function (e) {\n return B(e);\n };\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new U(o) : r ? new $(o) : new W(o), new T(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (B(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(B(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(B(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var s = z(o);\n if (void 0 !== s) {\n var i = e.names.get(s),\n a = t.getGroup(o);\n if (i && a && i.size) {\n var c = A + \".g\" + o + '[id=\"' + s + '\"]',\n u = \"\";\n void 0 !== i && i.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n return r;\n }(this);\n }, e;\n }(),\n K = /(a)(d)/gi,\n Q = function (e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n };\nfunction ee(e) {\n var t,\n n = \"\";\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) n = Q(t % 52) + n;\n return (Q(t % 52) + n).replace(K, \"$1-$2\");\n}\nvar te = function (e, t) {\n for (var n = t.length; n;) e = 33 * e ^ t.charCodeAt(--n);\n return e;\n },\n ne = function (e) {\n return te(5381, e);\n };\nfunction re(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (b(n) && !N(n)) return !1;\n }\n return !0;\n}\nvar oe = ne(\"5.3.6\"),\n se = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && re(e), this.componentId = t, this.baseHash = te(oe, t), this.baseStyle = n, Z.registerId(t);\n }\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var s = Ne(this.rules, e, t, n).join(\"\"),\n i = ee(te(this.baseHash, s) >>> 0);\n if (!t.hasNameForId(r, i)) {\n var a = n(s, \".\" + i, void 0, r);\n t.insertRules(r, i, a);\n }\n o.push(i), this.staticRulesId = i;\n }\n } else {\n for (var c = this.rules.length, u = te(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = te(u, h + d));else if (h) {\n var p = Ne(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = te(u, f + d), l += f;\n }\n }\n if (l) {\n var m = ee(u >>> 0);\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n }(),\n ie = /^\\s*\\/\\/.*$/gm,\n ae = [\":\", \"[\", \".\", \"#\"];\nfunction ce(e) {\n var t,\n n,\n r,\n o,\n s = void 0 === e ? E : e,\n i = s.options,\n a = void 0 === i ? E : i,\n c = s.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n return function (n, r, o, s, i, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function (e, r, s) {\n return 0 === r && -1 !== ae.indexOf(s[n.length]) || s.match(o) ? e : \".\" + t;\n };\n function m(e, s, i, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(ie, \"\"),\n u = s && i ? i + \" \" + s + \" { \" + c + \" }\" : c;\n return t = a, n = s, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(i || !s ? \"\" : s, u);\n }\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || j(15), te(e, t.name);\n }, 5381).toString() : \"\", m;\n}\nvar ue = /*#__PURE__*/r.createContext(),\n le = ue.Consumer,\n de = /*#__PURE__*/r.createContext(),\n he = (de.Consumer, new Z()),\n pe = ce();\nfunction fe() {\n return s(ue) || he;\n}\nfunction me() {\n return s(de) || pe;\n}\nfunction ye(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n s = t[1],\n c = fe(),\n u = i(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = i(function () {\n return ce({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || s(e.stylisPlugins);\n }, [e.stylisPlugins]), /*#__PURE__*/r.createElement(ue.Provider, {\n value: u\n }, /*#__PURE__*/r.createElement(de.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\nvar ve = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = pe);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return j(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = pe), this.name + e.hash;\n }, e;\n }(),\n ge = /([A-Z])/,\n Se = /([A-Z])/g,\n we = /^ms-/,\n Ee = function (e) {\n return \"-\" + e.toLowerCase();\n };\nfunction be(e) {\n return ge.test(e) ? e.replace(Se, Ee).replace(we, \"-ms-\") : e;\n}\nvar _e = function (e) {\n return null == e || !1 === e || \"\" === e;\n};\nfunction Ne(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var s, i = [], a = 0, c = e.length; a < c; a += 1) \"\" !== (s = Ne(e[a], n, r, o)) && (Array.isArray(s) ? i.push.apply(i, s) : i.push(s));\n return i;\n }\n if (_e(e)) return \"\";\n if (N(e)) return \".\" + e.styledComponentId;\n if (b(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(_(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), Ne(u, n, r, o);\n }\n var l;\n return e instanceof ve ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n s = [];\n for (var i in t) t.hasOwnProperty(i) && !_e(t[i]) && (Array.isArray(t[i]) && t[i].isCss || b(t[i]) ? s.push(be(i) + \":\", t[i], \";\") : S(t[i]) ? s.push.apply(s, e(t[i], i)) : s.push(be(i) + \": \" + (r = i, null == (o = t[i]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n return n ? [n + \" {\"].concat(s, [\"}\"]) : s;\n }(e) : e.toString();\n}\nvar Ae = function (e) {\n return Array.isArray(e) && (e.isCss = !0), e;\n};\nfunction Ce(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n return b(e) || S(e) ? Ae(Ne(g(w, [e].concat(n)))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : Ae(Ne(g(e, n)));\n}\nvar Ie = /invalid hook call/i,\n Pe = new Set(),\n Oe = function (e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",\n r = console.error;\n try {\n var o = !0;\n console.error = function (e) {\n if (Ie.test(e)) o = !1, Pe.delete(n);else {\n for (var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) s[i - 1] = arguments[i];\n r.apply(void 0, [e].concat(s));\n }\n }, c(), o && !Pe.has(n) && (console.warn(n), Pe.add(n));\n } catch (e) {\n Ie.test(e.message) && Pe.delete(n);\n } finally {\n console.error = r;\n }\n }\n },\n Re = function (e, t, n) {\n return void 0 === n && (n = E), e.theme !== n.theme && e.theme || t || n.theme;\n },\n De = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n je = /(^-|-$)/g;\nfunction Te(e) {\n return e.replace(De, \"-\").replace(je, \"\");\n}\nvar xe = function (e) {\n return ee(ne(e) >>> 0);\n};\nfunction ke(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\nvar Ve = function (e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n },\n Be = function (e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n };\nfunction ze(e, t, n) {\n var r = e[n];\n Ve(t) && Ve(r) ? Me(r, t) : e[n] = t;\n}\nfunction Me(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n for (var o = 0, s = n; o < s.length; o++) {\n var i = s[o];\n if (Ve(i)) for (var a in i) Be(a) && ze(e, i[a], a);\n }\n return e;\n}\nvar Ge = /*#__PURE__*/r.createContext(),\n Le = Ge.Consumer;\nfunction Fe(e) {\n var t = s(Ge),\n n = i(function () {\n return function (e, t) {\n if (!e) return j(14);\n if (b(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : j(7);\n }\n return Array.isArray(e) || \"object\" != typeof e ? j(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? /*#__PURE__*/r.createElement(Ge.Provider, {\n value: n\n }, e.children) : null;\n}\nvar Ye = {};\nfunction qe(e, t, n) {\n var o = N(e),\n i = !ke(e),\n a = t.attrs,\n c = void 0 === a ? w : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : Te(e);\n Ye[n] = (Ye[n] || 0) + 1;\n var r = n + \"-\" + xe(\"5.3.6\" + n + Ye[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.displayName,\n f = void 0 === p ? function (e) {\n return ke(e) ? \"styled.\" + e : \"Styled(\" + _(e) + \")\";\n }(e) : p,\n g = t.displayName && t.componentId ? Te(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, c).filter(Boolean) : c,\n A = t.shouldForwardProp;\n o && e.shouldForwardProp && (A = t.shouldForwardProp ? function (n, r, o) {\n return e.shouldForwardProp(n, r, o) && t.shouldForwardProp(n, r, o);\n } : e.shouldForwardProp);\n var C,\n I = new se(n, g, o ? e.componentStyle : void 0),\n P = I.isStatic && 0 === c.length,\n O = function (e, t) {\n return function (e, t, n, r) {\n var o = e.attrs,\n i = e.componentStyle,\n a = e.defaultProps,\n c = e.foldedComponentIds,\n d = e.shouldForwardProp,\n h = e.styledComponentId,\n p = e.target;\n \"production\" !== process.env.NODE_ENV && l(h);\n var f = function (e, t, n) {\n void 0 === e && (e = E);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n s,\n i = e;\n for (t in b(i) && (i = i(r)), i) r[t] = o[t] = \"className\" === t ? (n = o[t], s = i[t], n && s ? n + \" \" + s : n || s) : i[t];\n }), [r, o];\n }(Re(t, s(Ge), a) || E, t, o),\n y = f[0],\n g = f[1],\n S = function (e, t, n, r) {\n var o = fe(),\n s = me(),\n i = t ? e.generateAndInjectStyles(E, o, s) : e.generateAndInjectStyles(n, o, s);\n return \"production\" !== process.env.NODE_ENV && l(i), \"production\" !== process.env.NODE_ENV && !t && r && r(i), i;\n }(i, r, y, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n w = n,\n _ = g.$as || t.$as || g.as || t.as || p,\n N = ke(_),\n A = g !== t ? v({}, t, {}, g) : t,\n C = {};\n for (var I in A) \"$\" !== I[0] && \"as\" !== I && (\"forwardedAs\" === I ? C.as = A[I] : (d ? d(I, m, _) : !N || m(I)) && (C[I] = A[I]));\n return t.style && g.style !== t.style && (C.style = v({}, t.style, {}, g.style)), C.className = Array.prototype.concat(c, h, S !== h ? S : null, t.className, g.className).filter(Boolean).join(\" \"), C.ref = w, /*#__PURE__*/u(_, C);\n }(C, e, t, P);\n };\n return O.displayName = f, (C = /*#__PURE__*/r.forwardRef(O)).attrs = S, C.componentStyle = I, C.displayName = f, C.shouldForwardProp = A, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n s = Object.keys(e);\n for (r = 0; r < s.length; r++) n = s[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n return o;\n }(t, [\"componentId\"]),\n s = r && r + \"-\" + (ke(e) ? e : Te(_(e)));\n return qe(e, v({}, o, {\n attrs: S,\n componentId: s\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function () {\n return this._foldedDefaultProps;\n },\n set: function (t) {\n this._foldedDefaultProps = o ? Me({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Oe(f, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var s = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + s + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(f, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, i && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\nvar He = function (e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = E), !n(r)) return j(1, String(r));\n var s = function () {\n return t(r, o, Ce.apply(void 0, arguments));\n };\n return s.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, s.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, s;\n }(qe, e);\n};\n[\"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\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"textPath\", \"tspan\"].forEach(function (e) {\n He[e] = He(e);\n});\nvar $e = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = re(e), Z.registerId(this.componentId + 1);\n }\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(Ne(this.rules, t, n, r).join(\"\"), \"\"),\n s = this.componentId + e;\n n.insertRules(s, s, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\nfunction We(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) n[o - 1] = arguments[o];\n var i = Ce.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + xe(JSON.stringify(i)),\n u = new $e(i, a);\n function l(e) {\n var t = fe(),\n n = me(),\n o = s(Ge),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && i.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), t.server && h(l, e, t, o, n), d(function () {\n if (!t.server) return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, O, n, o);else {\n var s = v({}, t, {\n theme: Re(t, r, l.defaultProps)\n });\n u.renderStyles(e, s, n, o);\n }\n }\n return \"production\" !== process.env.NODE_ENV && Oe(a), /*#__PURE__*/r.memo(l);\n}\nfunction Ue(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n var o = Ce.apply(void 0, [e].concat(n)).join(\"\"),\n s = xe(o);\n return new ve(s, o);\n}\nvar Je = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString();\n if (!t) return \"\";\n var n = q();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.6\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [/*#__PURE__*/r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : /*#__PURE__*/r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n }(),\n Xe = function (e) {\n var t = /*#__PURE__*/r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), /*#__PURE__*/r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n },\n Ze = function () {\n return s(Ge);\n },\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n };\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","import { Reaction, _allowStateChanges, _allowStateReadsStart, _allowStateReadsEnd, $mobx, createAtom, untracked, isObservableMap, isObservableObject, isObservableArray, observable } from 'mobx';\nimport React__default, { PureComponent, Component, forwardRef, memo, createElement } from 'react';\nimport { isUsingStaticRendering, Observer, observer as observer$1 } from 'mobx-react-lite';\nexport { Observer, isUsingStaticRendering, observerBatching, useAsObservableSource, useLocalStore, useObserver, useStaticRendering } from 'mobx-react-lite';\nvar symbolId = 0;\nfunction createSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol(name);\n }\n var symbol = \"__$mobx-react \" + name + \" (\" + symbolId + \")\";\n symbolId++;\n return symbol;\n}\nvar createdSymbols = {};\nfunction newSymbol(name) {\n if (!createdSymbols[name]) {\n createdSymbols[name] = createSymbol(name);\n }\n return createdSymbols[name];\n}\nfunction shallowEqual(objA, objB) {\n //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (is(objA, objB)) return true;\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nfunction is(x, y) {\n // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n} // based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\n\nvar hoistBlackList = {\n $$typeof: 1,\n render: 1,\n compare: 1,\n type: 1,\n childContextTypes: 1,\n contextType: 1,\n contextTypes: 1,\n defaultProps: 1,\n getDefaultProps: 1,\n getDerivedStateFromError: 1,\n getDerivedStateFromProps: 1,\n mixins: 1,\n propTypes: 1\n};\nfunction copyStaticProperties(base, target) {\n var protoProps = Object.getOwnPropertyNames(Object.getPrototypeOf(base));\n Object.getOwnPropertyNames(base).forEach(function (key) {\n if (!hoistBlackList[key] && protoProps.indexOf(key) === -1) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}\n/**\r\n * Helper to set `prop` to `this` as non-enumerable (hidden prop)\r\n * @param target\r\n * @param prop\r\n * @param value\r\n */\n\nfunction setHiddenProp(target, prop, value) {\n if (!Object.hasOwnProperty.call(target, prop)) {\n Object.defineProperty(target, prop, {\n enumerable: false,\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n target[prop] = value;\n }\n}\n/**\r\n * Utilities for patching componentWillUnmount, to make sure @disposeOnUnmount works correctly icm with user defined hooks\r\n * and the handler provided by mobx-react\r\n */\n\nvar mobxMixins = /*#__PURE__*/\nnewSymbol(\"patchMixins\");\nvar mobxPatchedDefinition = /*#__PURE__*/\nnewSymbol(\"patchedDefinition\");\nfunction getMixins(target, methodName) {\n var mixins = target[mobxMixins] = target[mobxMixins] || {};\n var methodMixins = mixins[methodName] = mixins[methodName] || {};\n methodMixins.locks = methodMixins.locks || 0;\n methodMixins.methods = methodMixins.methods || [];\n return methodMixins;\n}\nfunction wrapper(realMethod, mixins) {\n var _this = this;\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls\n mixins.locks++;\n try {\n var retVal;\n if (realMethod !== undefined && realMethod !== null) {\n retVal = realMethod.apply(this, args);\n }\n return retVal;\n } finally {\n mixins.locks--;\n if (mixins.locks === 0) {\n mixins.methods.forEach(function (mx) {\n mx.apply(_this, args);\n });\n }\n }\n}\nfunction wrapFunction(realMethod, mixins) {\n var fn = function fn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n wrapper.call.apply(wrapper, [this, realMethod, mixins].concat(args));\n };\n return fn;\n}\nfunction patch(target, methodName, mixinMethod) {\n var mixins = getMixins(target, methodName);\n if (mixins.methods.indexOf(mixinMethod) < 0) {\n mixins.methods.push(mixinMethod);\n }\n var oldDefinition = Object.getOwnPropertyDescriptor(target, methodName);\n if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {\n // already patched definition, do not repatch\n return;\n }\n var originalMethod = target[methodName];\n var newDefinition = createDefinition(target, methodName, oldDefinition ? oldDefinition.enumerable : undefined, mixins, originalMethod);\n Object.defineProperty(target, methodName, newDefinition);\n}\nfunction createDefinition(target, methodName, enumerable, mixins, originalMethod) {\n var _ref;\n var wrappedFunc = wrapFunction(originalMethod, mixins);\n return _ref = {}, _ref[mobxPatchedDefinition] = true, _ref.get = function get() {\n return wrappedFunc;\n }, _ref.set = function set(value) {\n if (this === target) {\n wrappedFunc = wrapFunction(value, mixins);\n } else {\n // when it is an instance of the prototype/a child prototype patch that particular case again separately\n // since we need to store separate values depending on wether it is the actual instance, the prototype, etc\n // e.g. the method for super might not be the same as the method for the prototype which might be not the same\n // as the method for the instance\n var newDefinition = createDefinition(this, methodName, enumerable, mixins, value);\n Object.defineProperty(this, methodName, newDefinition);\n }\n }, _ref.configurable = true, _ref.enumerable = enumerable, _ref;\n}\nvar mobxAdminProperty = $mobx || \"$mobx\";\nvar mobxObserverProperty = /*#__PURE__*/\nnewSymbol(\"isMobXReactObserver\");\nvar mobxIsUnmounted = /*#__PURE__*/\nnewSymbol(\"isUnmounted\");\nvar skipRenderKey = /*#__PURE__*/\nnewSymbol(\"skipRender\");\nvar isForcingUpdateKey = /*#__PURE__*/\nnewSymbol(\"isForcingUpdate\");\nfunction makeClassComponentObserver(componentClass) {\n var target = componentClass.prototype;\n if (componentClass[mobxObserverProperty]) {\n var displayName = getDisplayName(target);\n console.warn(\"The provided component class (\" + displayName + \") \\n has already been declared as an observer component.\");\n } else {\n componentClass[mobxObserverProperty] = true;\n }\n if (target.componentWillReact) throw new Error(\"The componentWillReact life-cycle event is no longer supported\");\n if (componentClass[\"__proto__\"] !== PureComponent) {\n if (!target.shouldComponentUpdate) target.shouldComponentUpdate = observerSCU;else if (target.shouldComponentUpdate !== observerSCU)\n // n.b. unequal check, instead of existence check, as @observer might be on superclass as well\n throw new Error(\"It is not allowed to use shouldComponentUpdate in observer based components.\");\n } // this.props and this.state are made observable, just to make sure @computed fields that\n // are defined inside the component, and which rely on state or props, re-compute if state or props change\n // (otherwise the computed wouldn't update and become stale on props change, since props are not observable)\n // However, this solution is not without it's own problems: https://github.com/mobxjs/mobx-react/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Aobservable-props-or-not+\n\n makeObservableProp(target, \"props\");\n makeObservableProp(target, \"state\");\n var baseRender = target.render;\n target.render = function () {\n return makeComponentReactive.call(this, baseRender);\n };\n patch(target, \"componentWillUnmount\", function () {\n var _this$render$mobxAdmi;\n if (isUsingStaticRendering() === true) return;\n (_this$render$mobxAdmi = this.render[mobxAdminProperty]) === null || _this$render$mobxAdmi === void 0 ? void 0 : _this$render$mobxAdmi.dispose();\n this[mobxIsUnmounted] = true;\n if (!this.render[mobxAdminProperty]) {\n // Render may have been hot-swapped and/or overriden by a subclass.\n var _displayName = getDisplayName(this);\n console.warn(\"The reactive render of an observer class component (\" + _displayName + \") \\n was overriden after MobX attached. This may result in a memory leak if the \\n overriden reactive render was not properly disposed.\");\n }\n });\n return componentClass;\n} // Generates a friendly name for debugging\n\nfunction getDisplayName(comp) {\n return comp.displayName || comp.name || comp.constructor && (comp.constructor.displayName || comp.constructor.name) || \"\";\n}\nfunction makeComponentReactive(render) {\n var _this = this;\n if (isUsingStaticRendering() === true) return render.call(this);\n /**\r\n * If props are shallowly modified, react will render anyway,\r\n * so atom.reportChanged() should not result in yet another re-render\r\n */\n\n setHiddenProp(this, skipRenderKey, false);\n /**\r\n * forceUpdate will re-assign this.props. We don't want that to cause a loop,\r\n * so detect these changes\r\n */\n\n setHiddenProp(this, isForcingUpdateKey, false);\n var initialName = getDisplayName(this);\n var baseRender = render.bind(this);\n var isRenderingPending = false;\n var reaction = new Reaction(initialName + \".render()\", function () {\n if (!isRenderingPending) {\n // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)\n // This unidiomatic React usage but React will correctly warn about this so we continue as usual\n // See #85 / Pull #44\n isRenderingPending = true;\n if (_this[mobxIsUnmounted] !== true) {\n var hasError = true;\n try {\n setHiddenProp(_this, isForcingUpdateKey, true);\n if (!_this[skipRenderKey]) Component.prototype.forceUpdate.call(_this);\n hasError = false;\n } finally {\n setHiddenProp(_this, isForcingUpdateKey, false);\n if (hasError) reaction.dispose();\n }\n }\n }\n });\n reaction[\"reactComponent\"] = this;\n reactiveRender[mobxAdminProperty] = reaction;\n this.render = reactiveRender;\n function reactiveRender() {\n isRenderingPending = false;\n var exception = undefined;\n var rendering = undefined;\n reaction.track(function () {\n try {\n rendering = _allowStateChanges(false, baseRender);\n } catch (e) {\n exception = e;\n }\n });\n if (exception) {\n throw exception;\n }\n return rendering;\n }\n return reactiveRender.call(this);\n}\nfunction observerSCU(nextProps, nextState) {\n if (isUsingStaticRendering()) {\n console.warn(\"[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.\");\n } // update on any state changes (as is the default)\n\n if (this.state !== nextState) {\n return true;\n } // update if props are shallowly not equal, inspired by PureRenderMixin\n // we could return just 'false' here, and avoid the `skipRender` checks etc\n // however, it is nicer if lifecycle events are triggered like usually,\n // so we return true here if props are shallowly modified.\n\n return !shallowEqual(this.props, nextProps);\n}\nfunction makeObservableProp(target, propName) {\n var valueHolderKey = newSymbol(\"reactProp_\" + propName + \"_valueHolder\");\n var atomHolderKey = newSymbol(\"reactProp_\" + propName + \"_atomHolder\");\n function getAtom() {\n if (!this[atomHolderKey]) {\n setHiddenProp(this, atomHolderKey, createAtom(\"reactive \" + propName));\n }\n return this[atomHolderKey];\n }\n Object.defineProperty(target, propName, {\n configurable: true,\n enumerable: true,\n get: function get() {\n var prevReadState = false;\n if (_allowStateReadsStart && _allowStateReadsEnd) {\n prevReadState = _allowStateReadsStart(true);\n }\n getAtom.call(this).reportObserved();\n if (_allowStateReadsStart && _allowStateReadsEnd) {\n _allowStateReadsEnd(prevReadState);\n }\n return this[valueHolderKey];\n },\n set: function set(v) {\n if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {\n setHiddenProp(this, valueHolderKey, v);\n setHiddenProp(this, skipRenderKey, true);\n getAtom.call(this).reportChanged();\n setHiddenProp(this, skipRenderKey, false);\n } else {\n setHiddenProp(this, valueHolderKey, v);\n }\n }\n });\n}\nvar hasSymbol = typeof Symbol === \"function\" && Symbol.for; // Using react-is had some issues (and operates on elements, not on types), see #608 / #609\n\nvar ReactForwardRefSymbol = hasSymbol ? /*#__PURE__*/\nSymbol.for(\"react.forward_ref\") : typeof forwardRef === \"function\" && /*#__PURE__*/\n/*#__PURE__*/forwardRef(function (props) {\n return null;\n})[\"$$typeof\"];\nvar ReactMemoSymbol = hasSymbol ? /*#__PURE__*/\nSymbol.for(\"react.memo\") : typeof memo === \"function\" && /*#__PURE__*/\n/*#__PURE__*/memo(function (props) {\n return null;\n})[\"$$typeof\"];\n/**\r\n * Observer function / decorator\r\n */\n\nfunction observer(component) {\n if (component[\"isMobxInjector\"] === true) {\n console.warn(\"Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'\");\n }\n if (ReactMemoSymbol && component[\"$$typeof\"] === ReactMemoSymbol) {\n throw new Error(\"Mobx observer: You are trying to use 'observer' on a function component wrapped in either another observer or 'React.memo'. The observer already applies 'React.memo' for you.\");\n } // Unwrap forward refs into `` component\n // we need to unwrap the render, because it is the inner render that needs to be tracked,\n // not the ForwardRef HoC\n\n if (ReactForwardRefSymbol && component[\"$$typeof\"] === ReactForwardRefSymbol) {\n var baseRender = component[\"render\"];\n if (typeof baseRender !== \"function\") throw new Error(\"render property of ForwardRef was not a function\");\n return /*#__PURE__*/forwardRef(function ObserverForwardRef() {\n var args = arguments;\n return /*#__PURE__*/createElement(Observer, null, function () {\n return baseRender.apply(undefined, args);\n });\n });\n } // Function component\n\n if (typeof component === \"function\" && (!component.prototype || !component.prototype.render) && !component[\"isReactClass\"] && !Object.prototype.isPrototypeOf.call(Component, component)) {\n return observer$1(component);\n }\n return makeClassComponentObserver(component);\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\nvar MobXProviderContext = /*#__PURE__*/\nReact__default.createContext({});\nfunction Provider(props) {\n var children = props.children,\n stores = _objectWithoutPropertiesLoose(props, [\"children\"]);\n var parentValue = React__default.useContext(MobXProviderContext);\n var mutableProviderRef = React__default.useRef(_extends({}, parentValue, stores));\n var value = mutableProviderRef.current;\n if (process.env.NODE_ENV !== \"production\") {\n var newValue = _extends({}, value, stores); // spread in previous state for the context based stores\n\n if (!shallowEqual(value, newValue)) {\n throw new Error(\"MobX Provider: The set of provided stores has changed. See: https://github.com/mobxjs/mobx-react#the-set-of-provided-stores-has-changed-error.\");\n }\n }\n return /*#__PURE__*/React__default.createElement(MobXProviderContext.Provider, {\n value: value\n }, children);\n}\nProvider.displayName = \"MobXProvider\";\n\n/**\r\n * Store Injection\r\n */\n\nfunction createStoreInjector(grabStoresFn, component, injectNames, makeReactive) {\n // Support forward refs\n var Injector = /*#__PURE__*/React__default.forwardRef(function (props, ref) {\n var newProps = _extends({}, props);\n var context = React__default.useContext(MobXProviderContext);\n Object.assign(newProps, grabStoresFn(context || {}, newProps) || {});\n if (ref) {\n newProps.ref = ref;\n }\n return /*#__PURE__*/React__default.createElement(component, newProps);\n });\n if (makeReactive) Injector = observer(Injector);\n Injector[\"isMobxInjector\"] = true; // assigned late to suppress observer warning\n // Static fields from component should be visible on the generated Injector\n\n copyStaticProperties(component, Injector);\n Injector[\"wrappedComponent\"] = component;\n Injector.displayName = getInjectName(component, injectNames);\n return Injector;\n}\nfunction getInjectName(component, injectNames) {\n var displayName;\n var componentName = component.displayName || component.name || component.constructor && component.constructor.name || \"Component\";\n if (injectNames) displayName = \"inject-with-\" + injectNames + \"(\" + componentName + \")\";else displayName = \"inject(\" + componentName + \")\";\n return displayName;\n}\nfunction grabStoresByName(storeNames) {\n return function (baseStores, nextProps) {\n storeNames.forEach(function (storeName) {\n if (storeName in nextProps // prefer props over stores\n ) return;\n if (!(storeName in baseStores)) throw new Error(\"MobX injector: Store '\" + storeName + \"' is not available! Make sure it is provided by some Provider\");\n nextProps[storeName] = baseStores[storeName];\n });\n return nextProps;\n };\n}\n/**\r\n * higher order component that injects stores to a child.\r\n * takes either a varargs list of strings, which are stores read from the context,\r\n * or a function that manually maps the available stores from the context to props:\r\n * storesToProps(mobxStores, props, context) => newProps\r\n */\n\nfunction inject() {\n for (var _len = arguments.length, storeNames = new Array(_len), _key = 0; _key < _len; _key++) {\n storeNames[_key] = arguments[_key];\n }\n if (typeof arguments[0] === \"function\") {\n var grabStoresFn = arguments[0];\n return function (componentClass) {\n return createStoreInjector(grabStoresFn, componentClass, grabStoresFn.name, true);\n };\n } else {\n return function (componentClass) {\n return createStoreInjector(grabStoresByName(storeNames), componentClass, storeNames.join(\"-\"), false);\n };\n }\n}\nvar protoStoreKey = /*#__PURE__*/\nnewSymbol(\"disposeOnUnmountProto\");\nvar instStoreKey = /*#__PURE__*/\nnewSymbol(\"disposeOnUnmountInst\");\nfunction runDisposersOnWillUnmount() {\n var _this = this;\n [].concat(this[protoStoreKey] || [], this[instStoreKey] || []).forEach(function (propKeyOrFunction) {\n var prop = typeof propKeyOrFunction === \"string\" ? _this[propKeyOrFunction] : propKeyOrFunction;\n if (prop !== undefined && prop !== null) {\n if (Array.isArray(prop)) prop.map(function (f) {\n return f();\n });else prop();\n }\n });\n}\nfunction disposeOnUnmount(target, propertyKeyOrFunction) {\n if (Array.isArray(propertyKeyOrFunction)) {\n return propertyKeyOrFunction.map(function (fn) {\n return disposeOnUnmount(target, fn);\n });\n }\n var c = Object.getPrototypeOf(target).constructor;\n var c2 = Object.getPrototypeOf(target.constructor); // Special case for react-hot-loader\n\n var c3 = Object.getPrototypeOf(Object.getPrototypeOf(target));\n if (!(c === React__default.Component || c === React__default.PureComponent || c2 === React__default.Component || c2 === React__default.PureComponent || c3 === React__default.Component || c3 === React__default.PureComponent)) {\n throw new Error(\"[mobx-react] disposeOnUnmount only supports direct subclasses of React.Component or React.PureComponent.\");\n }\n if (typeof propertyKeyOrFunction !== \"string\" && typeof propertyKeyOrFunction !== \"function\" && !Array.isArray(propertyKeyOrFunction)) {\n throw new Error(\"[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.\");\n } // decorator's target is the prototype, so it doesn't have any instance properties like props\n\n var isDecorator = typeof propertyKeyOrFunction === \"string\"; // add property key / function we want run (disposed) to the store\n\n var componentWasAlreadyModified = !!target[protoStoreKey] || !!target[instStoreKey];\n var store = isDecorator ?\n // decorators are added to the prototype store\n target[protoStoreKey] || (target[protoStoreKey] = []) :\n // functions are added to the instance store\n target[instStoreKey] || (target[instStoreKey] = []);\n store.push(propertyKeyOrFunction); // tweak the component class componentWillUnmount if not done already\n\n if (!componentWasAlreadyModified) {\n patch(target, \"componentWillUnmount\", runDisposersOnWillUnmount);\n } // return the disposer as is if invoked as a non decorator\n\n if (typeof propertyKeyOrFunction !== \"string\") {\n return propertyKeyOrFunction;\n }\n}\nfunction createChainableTypeChecker(validator) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n for (var _len = arguments.length, rest = new Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n rest[_key - 6] = arguments[_key];\n }\n return untracked(function () {\n componentName = componentName || \"<>\";\n propFullName = propFullName || propName;\n if (props[propName] == null) {\n if (isRequired) {\n var actual = props[propName] === null ? \"null\" : \"undefined\";\n return new Error(\"The \" + location + \" `\" + propFullName + \"` is marked as required \" + \"in `\" + componentName + \"`, but its value is `\" + actual + \"`.\");\n }\n return null;\n } else {\n // @ts-ignore rest arg is necessary for some React internals - fails tests otherwise\n return validator.apply(void 0, [props, propName, componentName, location, propFullName].concat(rest));\n }\n });\n }\n var chainedCheckType = checkType.bind(null, false); // Add isRequired to satisfy Requirable\n\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n} // Copied from React.PropTypes\n\nfunction isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === \"symbol\") {\n return true;\n } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true;\n } // Fallback for non-spec compliant Symbols which are polyfilled.\n\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true;\n }\n return false;\n} // Copied from React.PropTypes\n\nfunction 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} // This handles more types than `getPropType`. Only used for error messages.\n// Copied from React.PropTypes\n\nfunction getPreciseType(propValue) {\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}\nfunction createObservableTypeCheckerCreator(allowNativeType, mobxType) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n return untracked(function () {\n if (allowNativeType) {\n if (getPropType(props[propName]) === mobxType.toLowerCase()) return null;\n }\n var mobxChecker;\n switch (mobxType) {\n case \"Array\":\n mobxChecker = isObservableArray;\n break;\n case \"Object\":\n mobxChecker = isObservableObject;\n break;\n case \"Map\":\n mobxChecker = isObservableMap;\n break;\n default:\n throw new Error(\"Unexpected mobxType: \" + mobxType);\n }\n var propValue = props[propName];\n if (!mobxChecker(propValue)) {\n var preciseType = getPreciseType(propValue);\n var nativeTypeExpectationMessage = allowNativeType ? \" or javascript `\" + mobxType.toLowerCase() + \"`\" : \"\";\n return new Error(\"Invalid prop `\" + propFullName + \"` of type `\" + preciseType + \"` supplied to\" + \" `\" + componentName + \"`, expected `mobx.Observable\" + mobxType + \"`\" + nativeTypeExpectationMessage + \".\");\n }\n return null;\n });\n });\n}\nfunction createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {\n return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 5 ? _len2 - 5 : 0), _key2 = 5; _key2 < _len2; _key2++) {\n rest[_key2 - 5] = arguments[_key2];\n }\n return untracked(function () {\n if (typeof typeChecker !== \"function\") {\n return new Error(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has \" + \"invalid PropType notation.\");\n } else {\n var error = createObservableTypeCheckerCreator(allowNativeType, \"Array\")(props, propName, componentName, location, propFullName);\n if (error instanceof Error) return error;\n var propValue = props[propName];\n for (var i = 0; i < propValue.length; i++) {\n error = typeChecker.apply(void 0, [propValue, i, componentName, location, propFullName + \"[\" + i + \"]\"].concat(rest));\n if (error instanceof Error) return error;\n }\n return null;\n }\n });\n });\n}\nvar observableArray = /*#__PURE__*/\ncreateObservableTypeCheckerCreator(false, \"Array\");\nvar observableArrayOf = /*#__PURE__*/\ncreateObservableArrayOfTypeChecker.bind(null, false);\nvar observableMap = /*#__PURE__*/\ncreateObservableTypeCheckerCreator(false, \"Map\");\nvar observableObject = /*#__PURE__*/\ncreateObservableTypeCheckerCreator(false, \"Object\");\nvar arrayOrObservableArray = /*#__PURE__*/\ncreateObservableTypeCheckerCreator(true, \"Array\");\nvar arrayOrObservableArrayOf = /*#__PURE__*/\ncreateObservableArrayOfTypeChecker.bind(null, true);\nvar objectOrObservableObject = /*#__PURE__*/\ncreateObservableTypeCheckerCreator(true, \"Object\");\nvar PropTypes = {\n observableArray: observableArray,\n observableArrayOf: observableArrayOf,\n observableMap: observableMap,\n observableObject: observableObject,\n arrayOrObservableArray: arrayOrObservableArray,\n arrayOrObservableArrayOf: arrayOrObservableArrayOf,\n objectOrObservableObject: objectOrObservableObject\n};\nif (!Component) throw new Error(\"mobx-react requires React to be available\");\nif (!observable) throw new Error(\"mobx-react requires mobx to be available\");\nexport { MobXProviderContext, PropTypes, Provider, disposeOnUnmount, inject, observer };","import graphql from \"./graphql\"\n\nconst graph = graphql(\"/graphql\", {\n headers: {\n \"X-CSRF-Token\": document.querySelector('meta[name=\"csrf-token\"]').getAttribute(\"content\"),\n \"Authorization\": localStorage.getItem(\"code\"),\n },\n})\n\nexport default graph\n","import React, { useState } from \"react\"\nimport { observer } from \"mobx-react\"\nimport { getSnapshot } from \"mobx-state-tree\"\nimport styled from \"styled-components\"\n\nconst BaseField = styled.input`\npadding: 0.5rem;\n${p => p.as === \"textarea\"\n? \"width: 20rem; height: 6rem;\"\n: null\n}\n`\n\nconst Spacing = styled.div`\npadding: 0.5rem;\nwhite-space: pre-wrap;\n`\n\nconst Field = observer(({ as, record, claim, label }) => {\n const [editing, changeEditing] = useState(false)\n const [originalValue, changeOriginalValue] = useState({})\n\n return (\n editing\n ?\n \n e && e.focus()}\n as={as || \"input\"}\n placeholder={label || claim}\n value={record[claim] || \"\"}\n onChange={e => record.claim(claim, e.target.value)}\n />\n\n {\n record.change(claim, record[claim])\n changeEditing(false)\n }}>\n remember change\n \n\n  or \n\n {\n record.claim(claim, originalValue)\n changeEditing(false)\n }}>\n cancel\n \n \n :\n {\n changeOriginalValue(getSnapshot(record)[claim]); changeEditing(true) }}>\n {record[claim] || `click: ${label || claim}`}\n \n )\n})\n\nexport { BaseField }\nexport default Field\n","import { spy } from \"mobx\";\nimport { useState } from \"react\";\nif (!useState) {\n throw new Error(\"mobx-react-lite requires React with Hooks support\");\n}\nif (!spy) {\n throw new Error(\"mobx-react-lite requires mobx at least version 4 to be available\");\n}","import { configure } from \"mobx\";\nimport { getGlobal, getSymbol } from \"./utils\";\nvar observerBatchingConfiguredSymbol = getSymbol(\"observerBatching\");\nexport function defaultNoopBatch(callback) {\n callback();\n}\nexport function observerBatching(reactionScheduler) {\n if (!reactionScheduler) {\n reactionScheduler = defaultNoopBatch;\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[MobX] Failed to get unstable_batched updates from react-dom / react-native\");\n }\n }\n configure({\n reactionScheduler: reactionScheduler\n });\n getGlobal()[observerBatchingConfiguredSymbol] = true;\n}\nexport var isObserverBatched = function () {\n return !!getGlobal()[observerBatchingConfiguredSymbol];\n};","var globalIsUsingStaticRendering = false;\nexport function useStaticRendering(enable) {\n globalIsUsingStaticRendering = enable;\n}\nexport function isUsingStaticRendering() {\n return globalIsUsingStaticRendering;\n}","import { getDependencyTree } from \"mobx\";\nexport function printDebugValue(v) {\n return getDependencyTree(v);\n}","export function createTrackingData(reaction) {\n var trackingData = {\n cleanAt: Date.now() + CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS,\n reaction: reaction\n };\n return trackingData;\n}\n/**\n * The minimum time before we'll clean up a Reaction created in a render\n * for a component that hasn't managed to run its effects. This needs to\n * be big enough to ensure that a component won't turn up and have its\n * effects run without being re-rendered.\n */\nexport var CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS = 10000;\n/**\n * The frequency with which we'll check for leaked reactions.\n */\nexport var CLEANUP_TIMER_LOOP_MILLIS = 10000;\n/**\n * Reactions created by components that have yet to be fully mounted.\n */\nvar uncommittedReactionRefs = new Set();\n/**\n * Latest 'uncommitted reactions' cleanup timer handle.\n */\nvar reactionCleanupHandle;\nfunction ensureCleanupTimerRunning() {\n if (reactionCleanupHandle === undefined) {\n reactionCleanupHandle = setTimeout(cleanUncommittedReactions, CLEANUP_TIMER_LOOP_MILLIS);\n }\n}\nexport function scheduleCleanupOfReactionIfLeaked(ref) {\n uncommittedReactionRefs.add(ref);\n ensureCleanupTimerRunning();\n}\nexport function recordReactionAsCommitted(reactionRef) {\n uncommittedReactionRefs.delete(reactionRef);\n}\n/**\n * Run by the cleanup timer to dispose any outstanding reactions\n */\nfunction cleanUncommittedReactions() {\n reactionCleanupHandle = undefined;\n // Loop through all the candidate leaked reactions; those older\n // than CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS get tidied.\n var now = Date.now();\n uncommittedReactionRefs.forEach(function (ref) {\n var tracking = ref.current;\n if (tracking) {\n if (now >= tracking.cleanAt) {\n // It's time to tidy up this leaked reaction.\n tracking.reaction.dispose();\n ref.current = null;\n uncommittedReactionRefs.delete(ref);\n }\n }\n });\n if (uncommittedReactionRefs.size > 0) {\n // We've just finished a round of cleanups but there are still\n // some leak candidates outstanding.\n ensureCleanupTimerRunning();\n }\n}\n/* istanbul ignore next */\n/**\n * Only to be used by test functions; do not export outside of mobx-react-lite\n */\nexport function forceCleanupTimerToRunNowForTests() {\n // This allows us to control the execution of the cleanup timer\n // to force it to run at awkward times in unit tests.\n if (reactionCleanupHandle) {\n clearTimeout(reactionCleanupHandle);\n cleanUncommittedReactions();\n }\n}\n/* istanbul ignore next */\nexport function resetCleanupScheduleForTests() {\n if (reactionCleanupHandle) {\n clearTimeout(reactionCleanupHandle);\n reactionCleanupHandle = undefined;\n }\n uncommittedReactionRefs.clear();\n}","import React from \"react\";\nvar insideRender = false;\nvar forceUpdateQueue = [];\nexport function useQueuedForceUpdate(forceUpdate) {\n return function () {\n if (insideRender) {\n forceUpdateQueue.push(forceUpdate);\n } else {\n forceUpdate();\n }\n };\n}\nexport function useQueuedForceUpdateBlock(callback) {\n // start intercepting force-update calls\n insideRender = true;\n forceUpdateQueue = [];\n try {\n var result = callback();\n // stop intercepting force-update\n insideRender = false;\n // store queue or nothing if it was empty to execute useLayoutEffect only when necessary\n var queue_1 = forceUpdateQueue.length > 0 ? forceUpdateQueue : undefined;\n // run force-update queue in useLayoutEffect\n React.useLayoutEffect(function () {\n if (queue_1) {\n queue_1.forEach(function (x) {\n return x();\n });\n }\n }, [queue_1]);\n return result;\n } finally {\n insideRender = false;\n }\n}","import { Reaction } from \"mobx\";\nimport React from \"react\";\nimport { printDebugValue } from \"./printDebugValue\";\nimport { createTrackingData, recordReactionAsCommitted, scheduleCleanupOfReactionIfLeaked } from \"./reactionCleanupTracking\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { useForceUpdate } from \"./utils\";\nimport { useQueuedForceUpdate, useQueuedForceUpdateBlock } from \"./useQueuedForceUpdate\";\nvar EMPTY_OBJECT = {};\nfunction observerComponentNameFor(baseComponentName) {\n return \"observer\" + baseComponentName;\n}\nexport function useObserver(fn, baseComponentName, options) {\n if (baseComponentName === void 0) {\n baseComponentName = \"observed\";\n }\n if (options === void 0) {\n options = EMPTY_OBJECT;\n }\n if (isUsingStaticRendering()) {\n return fn();\n }\n var wantedForceUpdateHook = options.useForceUpdate || useForceUpdate;\n var forceUpdate = wantedForceUpdateHook();\n var queuedForceUpdate = useQueuedForceUpdate(forceUpdate);\n // StrictMode/ConcurrentMode/Suspense may mean that our component is\n // rendered and abandoned multiple times, so we need to track leaked\n // Reactions.\n var reactionTrackingRef = React.useRef(null);\n if (!reactionTrackingRef.current) {\n // First render for this component (or first time since a previous\n // reaction from an abandoned render was disposed).\n var newReaction_1 = new Reaction(observerComponentNameFor(baseComponentName), function () {\n // Observable has changed, meaning we want to re-render\n // BUT if we're a component that hasn't yet got to the useEffect()\n // stage, we might be a component that _started_ to render, but\n // got dropped, and we don't want to make state changes then.\n // (It triggers warnings in StrictMode, for a start.)\n if (trackingData_1.mounted) {\n // We have reached useEffect(), so we're mounted, and can trigger an update\n queuedForceUpdate();\n } else {\n // We haven't yet reached useEffect(), so we'll need to trigger a re-render\n // when (and if) useEffect() arrives. The easiest way to do that is just to\n // drop our current reaction and allow useEffect() to recreate it.\n newReaction_1.dispose();\n reactionTrackingRef.current = null;\n }\n });\n var trackingData_1 = createTrackingData(newReaction_1);\n reactionTrackingRef.current = trackingData_1;\n scheduleCleanupOfReactionIfLeaked(reactionTrackingRef);\n }\n var reaction = reactionTrackingRef.current.reaction;\n React.useDebugValue(reaction, printDebugValue);\n React.useEffect(function () {\n // Called on first mount only\n recordReactionAsCommitted(reactionTrackingRef);\n if (reactionTrackingRef.current) {\n // Great. We've already got our reaction from our render;\n // all we need to do is to record that it's now mounted,\n // to allow future observable changes to trigger re-renders\n reactionTrackingRef.current.mounted = true;\n } else {\n // The reaction we set up in our render has been disposed.\n // This is either due to bad timings of renderings, e.g. our\n // component was paused for a _very_ long time, and our\n // reaction got cleaned up, or we got a observable change\n // between render and useEffect\n // Re-create the reaction\n reactionTrackingRef.current = {\n reaction: new Reaction(observerComponentNameFor(baseComponentName), function () {\n // We've definitely already been mounted at this point\n queuedForceUpdate();\n }),\n cleanAt: Infinity\n };\n queuedForceUpdate();\n }\n return function () {\n reactionTrackingRef.current.reaction.dispose();\n reactionTrackingRef.current = null;\n };\n }, []);\n // delay all force-update calls after rendering of this component\n return useQueuedForceUpdateBlock(function () {\n // render the original component, but have the\n // reaction track the observables, so that rendering\n // can be invalidated (see above) once a dependency changes\n var rendering;\n var exception;\n reaction.track(function () {\n try {\n rendering = fn();\n } catch (e) {\n exception = e;\n }\n });\n if (exception) {\n throw exception; // re-throw any exceptions caught during rendering\n }\n\n return rendering;\n });\n}","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { forwardRef, memo } from \"react\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { useObserver } from \"./useObserver\";\n// n.b. base case is not used for actual typings or exported in the typing files\nexport function observer(baseComponent, options) {\n // The working of observer is explained step by step in this talk: https://www.youtube.com/watch?v=cPF4iBedoF0&feature=youtu.be&t=1307\n if (isUsingStaticRendering()) {\n return baseComponent;\n }\n var realOptions = __assign({\n forwardRef: false\n }, options);\n var baseComponentName = baseComponent.displayName || baseComponent.name;\n var wrappedComponent = function (props, ref) {\n return useObserver(function () {\n return baseComponent(props, ref);\n }, baseComponentName);\n };\n wrappedComponent.displayName = baseComponentName;\n // memo; we are not interested in deep updates\n // in props; we assume that if deep objects are changed,\n // this is in observables, which would have been tracked anyway\n var memoComponent;\n if (realOptions.forwardRef) {\n // we have to use forwardRef here because:\n // 1. it cannot go before memo, only after it\n // 2. forwardRef converts the function into an actual component, so we can't let the baseComponent do it\n // since it wouldn't be a callable function anymore\n memoComponent = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(wrappedComponent));\n } else {\n memoComponent = /*#__PURE__*/memo(wrappedComponent);\n }\n copyStaticProperties(baseComponent, memoComponent);\n memoComponent.displayName = baseComponentName;\n return memoComponent;\n}\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nvar hoistBlackList = {\n $$typeof: true,\n render: true,\n compare: true,\n type: true\n};\nfunction copyStaticProperties(base, target) {\n Object.keys(base).forEach(function (key) {\n if (!hoistBlackList[key]) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}","import { useObserver } from \"./useObserver\";\nfunction ObserverComponent(_a) {\n var children = _a.children,\n render = _a.render;\n var component = children || render;\n if (typeof component !== \"function\") {\n return null;\n }\n return useObserver(component);\n}\nObserverComponent.propTypes = {\n children: ObserverPropsCheck,\n render: ObserverPropsCheck\n};\nObserverComponent.displayName = \"Observer\";\nexport { ObserverComponent as Observer };\nfunction ObserverPropsCheck(props, key, componentName, location, propFullName) {\n var extraKey = key === \"children\" ? \"render\" : \"children\";\n var hasProp = typeof props[key] === \"function\";\n var hasExtraProp = typeof props[extraKey] === \"function\";\n if (hasProp && hasExtraProp) {\n return new Error(\"MobX Observer: Do not use children and render in the same time in`\" + componentName);\n }\n if (hasProp || hasExtraProp) {\n return null;\n }\n return new Error(\"Invalid prop `\" + propFullName + \"` of type `\" + typeof props[key] + \"` supplied to\" + \" `\" + componentName + \"`, expected `function`.\");\n}","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n};\nimport { observable, runInAction } from \"mobx\";\nimport React from \"react\";\nimport { isPlainObject } from \"./utils\";\nexport function useAsObservableSourceInternal(current, usedByLocalStore) {\n var culprit = usedByLocalStore ? \"useLocalStore\" : \"useAsObservableSource\";\n if (\"production\" !== process.env.NODE_ENV && usedByLocalStore) {\n var _a = __read(React.useState(current), 1),\n initialSource = _a[0];\n if (initialSource !== undefined && current === undefined || initialSource === undefined && current !== undefined) {\n throw new Error(\"make sure you never pass `undefined` to \" + culprit);\n }\n }\n if (usedByLocalStore && current === undefined) {\n return undefined;\n }\n if (\"production\" !== process.env.NODE_ENV && !isPlainObject(current)) {\n throw new Error(culprit + \" expects a plain object as \" + (usedByLocalStore ? \"second\" : \"first\") + \" argument\");\n }\n var _b = __read(React.useState(function () {\n return observable(current, {}, {\n deep: false\n });\n }), 1),\n res = _b[0];\n if (\"production\" !== process.env.NODE_ENV && Object.keys(res).length !== Object.keys(current).length) {\n throw new Error(\"the shape of objects passed to \" + culprit + \" should be stable\");\n }\n runInAction(function () {\n Object.assign(res, current);\n });\n return res;\n}\nexport function useAsObservableSource(current) {\n return useAsObservableSourceInternal(current, false);\n}","import \"./assertEnvironment\";\nimport { unstable_batchedUpdates as batch } from \"./utils/reactBatchedUpdates\";\nimport { observerBatching } from \"./observerBatching\";\nobserverBatching(batch);\nexport { isUsingStaticRendering, useStaticRendering } from \"./staticRendering\";\nexport { observer } from \"./observer\";\nexport { useObserver } from \"./useObserver\";\nexport { Observer } from \"./ObserverComponent\";\nexport { useForceUpdate } from \"./utils\";\nexport { useAsObservableSource } from \"./useAsObservableSource\";\nexport { useLocalStore } from \"./useLocalStore\";\nexport { useQueuedForceUpdate, useQueuedForceUpdateBlock } from \"./useQueuedForceUpdate\";\nexport { isObserverBatched, observerBatching } from \"./observerBatching\";","import { types as schema } from \"mobx-state-tree\"\nimport { DateTime } from \"luxon\"\n\nconst Model = schema.custom({\n name: 'clock',\n\n fromSnapshot: (clock) => DateTime.fromISO(clock),\n toSnapshot: (clock) => clock.isValid && clock.toISO(),\n\n isTargetType: (clock) => {\n if(!clock) return false\n var luxon = DateTime.fromISO(clock)\n return luxon.isValid\n },\n\n getValidationMessage: (clock) => {\n return (\n (!!clock && this.isTargetType(clock))\n ? ''\n : `no success parsing \\`${clock}\\` using \\`luxon\\`.`\n );\n },\n});\n\nModel.read = () => Model.create(DateTime.local())\n\nexport default Model\n","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(factory.toString()).default;else if (typeof exports === 'object') exports[\"Quagga\"] = factory(factory.toString()).default;else root[\"Quagga\"] = factory(factory.toString()).default;\n})(this, function (__factorySource__) {\n return (/******/function (modules) {\n // webpackBootstrap\n /******/ // The module cache\n /******/\n var installedModules = {};\n /******/\n /******/ // The require function\n /******/\n function __webpack_require__(moduleId) {\n /******/\n /******/ // Check if module is in cache\n /******/if (installedModules[moduleId]) /******/return installedModules[moduleId].exports;\n /******/\n /******/ // Create a new module (and put it into the cache)\n /******/\n var module = installedModules[moduleId] = {\n /******/i: moduleId,\n /******/l: false,\n /******/exports: {}\n /******/\n };\n /******/\n /******/ // Execute the module function\n /******/\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n /******/ // Flag the module as loaded\n /******/\n module.l = true;\n /******/\n /******/ // Return the exports of the module\n /******/\n return module.exports;\n /******/\n }\n /******/\n /******/\n /******/ // expose the modules object (__webpack_modules__)\n /******/\n __webpack_require__.m = modules;\n /******/\n /******/ // expose the module cache\n /******/\n __webpack_require__.c = installedModules;\n /******/\n /******/ // identity function for calling harmony imports with the correct context\n /******/\n __webpack_require__.i = function (value) {\n return value;\n };\n /******/\n /******/ // define getter function for harmony exports\n /******/\n __webpack_require__.d = function (exports, name, getter) {\n /******/if (!__webpack_require__.o(exports, name)) {\n /******/Object.defineProperty(exports, name, {\n /******/configurable: false,\n /******/enumerable: true,\n /******/get: getter\n /******/\n });\n /******/\n }\n /******/\n };\n /******/\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/\n __webpack_require__.n = function (module) {\n /******/var getter = module && module.__esModule ? /******/function getDefault() {\n return module['default'];\n } : /******/function getModuleExports() {\n return module;\n };\n /******/\n __webpack_require__.d(getter, 'a', getter);\n /******/\n return getter;\n /******/\n };\n /******/\n /******/ // Object.prototype.hasOwnProperty.call\n /******/\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n /******/ // __webpack_public_path__\n /******/\n __webpack_require__.p = \"/\";\n /******/\n /******/ // Load entry module and return exports\n /******/\n return __webpack_require__(__webpack_require__.s = 166);\n /******/\n }\n /************************************************************************/\n /******/([/* 0 */\n /***/function (module, exports) {\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n module.exports = isObject;\n\n /***/\n }, /* 1 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__common_array_helper__ = __webpack_require__(3);\n function BarcodeReader(config, supplements) {\n this._row = [];\n this.config = config || {};\n this.supplements = supplements;\n return this;\n }\n BarcodeReader.prototype._nextUnset = function (line, start) {\n var i;\n if (start === undefined) {\n start = 0;\n }\n for (i = start; i < line.length; i++) {\n if (!line[i]) {\n return i;\n }\n }\n return line.length;\n };\n BarcodeReader.prototype._matchPattern = function (counter, code, maxSingleError) {\n var i,\n error = 0,\n singleError = 0,\n sum = 0,\n modulo = 0,\n barWidth,\n count,\n scaled;\n maxSingleError = maxSingleError || this.SINGLE_CODE_ERROR || 1;\n for (i = 0; i < counter.length; i++) {\n sum += counter[i];\n modulo += code[i];\n }\n if (sum < modulo) {\n return Number.MAX_VALUE;\n }\n barWidth = sum / modulo;\n maxSingleError *= barWidth;\n for (i = 0; i < counter.length; i++) {\n count = counter[i];\n scaled = code[i] * barWidth;\n singleError = Math.abs(count - scaled) / scaled;\n if (singleError > maxSingleError) {\n return Number.MAX_VALUE;\n }\n error += singleError;\n }\n return error / modulo;\n };\n BarcodeReader.prototype._nextSet = function (line, offset) {\n var i;\n offset = offset || 0;\n for (i = offset; i < line.length; i++) {\n if (line[i]) {\n return i;\n }\n }\n return line.length;\n };\n BarcodeReader.prototype._correctBars = function (counter, correction, indices) {\n var length = indices.length,\n tmp = 0;\n while (length--) {\n tmp = counter[indices[length]] * (1 - (1 - correction) / 2);\n if (tmp > 1) {\n counter[indices[length]] = tmp;\n }\n }\n };\n BarcodeReader.prototype._matchTrace = function (cmpCounter, epsilon) {\n var counter = [],\n i,\n self = this,\n offset = self._nextSet(self._row),\n isWhite = !self._row[offset],\n counterPos = 0,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0\n },\n error;\n if (cmpCounter) {\n for (i = 0; i < cmpCounter.length; i++) {\n counter.push(0);\n }\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n error = self._matchPattern(counter, cmpCounter);\n if (error < epsilon) {\n bestMatch.start = i - offset;\n bestMatch.end = i;\n bestMatch.counter = counter;\n return bestMatch;\n } else {\n return null;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n } else {\n counter.push(0);\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n counterPos++;\n counter.push(0);\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n }\n\n // if cmpCounter was not given\n bestMatch.start = offset;\n bestMatch.end = self._row.length - 1;\n bestMatch.counter = counter;\n return bestMatch;\n };\n BarcodeReader.prototype.decodePattern = function (pattern) {\n var self = this,\n result;\n self._row = pattern;\n result = self._decode();\n if (result === null) {\n self._row.reverse();\n result = self._decode();\n if (result) {\n result.direction = BarcodeReader.DIRECTION.REVERSE;\n result.start = self._row.length - result.start;\n result.end = self._row.length - result.end;\n }\n } else {\n result.direction = BarcodeReader.DIRECTION.FORWARD;\n }\n if (result) {\n result.format = self.FORMAT;\n }\n return result;\n };\n BarcodeReader.prototype._matchRange = function (start, end, value) {\n var i;\n start = start < 0 ? 0 : start;\n for (i = start; i < end; i++) {\n if (this._row[i] !== value) {\n return false;\n }\n }\n return true;\n };\n BarcodeReader.prototype._fillCounters = function (offset, end, isWhite) {\n var self = this,\n counterPos = 0,\n i,\n counters = [];\n isWhite = typeof isWhite !== 'undefined' ? isWhite : true;\n offset = typeof offset !== 'undefined' ? offset : self._nextUnset(self._row);\n end = end || self._row.length;\n counters[counterPos] = 0;\n for (i = offset; i < end; i++) {\n if (self._row[i] ^ isWhite) {\n counters[counterPos]++;\n } else {\n counterPos++;\n counters[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return counters;\n };\n BarcodeReader.prototype._toCounters = function (start, counter) {\n var self = this,\n numCounters = counter.length,\n end = self._row.length,\n isWhite = !self._row[start],\n i,\n counterPos = 0;\n __WEBPACK_IMPORTED_MODULE_0__common_array_helper__[\"a\" /* default */].init(counter, 0);\n for (i = start; i < end; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n counterPos++;\n if (counterPos === numCounters) {\n break;\n } else {\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n }\n return counter;\n };\n Object.defineProperty(BarcodeReader.prototype, \"FORMAT\", {\n value: 'unknown',\n writeable: false\n });\n BarcodeReader.DIRECTION = {\n FORWARD: 1,\n REVERSE: -1\n };\n BarcodeReader.Exception = {\n StartNotFoundException: \"Start-Info was not found!\",\n CodeNotFoundException: \"Code could not be found!\",\n PatternNotFoundException: \"Pattern could not be found!\"\n };\n BarcodeReader.CONFIG_KEYS = {};\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = BarcodeReader;\n\n /***/\n }, /* 2 */\n /***/function (module, exports) {\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n module.exports = isArray;\n\n /***/\n }, /* 3 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = {\n init: function init(arr, val) {\n var l = arr.length;\n while (l--) {\n arr[l] = val;\n }\n },\n /**\n * Shuffles the content of an array\n * @return {Array} the array itself shuffled\n */\n shuffle: function shuffle(arr) {\n var i = arr.length - 1,\n j,\n x;\n for (i; i >= 0; i--) {\n j = Math.floor(Math.random() * i);\n x = arr[i];\n arr[i] = arr[j];\n arr[j] = x;\n }\n return arr;\n },\n toPointList: function toPointList(arr) {\n var i,\n j,\n row = [],\n rows = [];\n for (i = 0; i < arr.length; i++) {\n row = [];\n for (j = 0; j < arr[i].length; j++) {\n row[j] = arr[i][j];\n }\n rows[i] = \"[\" + row.join(\",\") + \"]\";\n }\n return \"[\" + rows.join(\",\\r\\n\") + \"]\";\n },\n /**\n * returns the elements which's score is bigger than the threshold\n * @return {Array} the reduced array\n */\n threshold: function threshold(arr, _threshold, scoreFunc) {\n var i,\n queue = [];\n for (i = 0; i < arr.length; i++) {\n if (scoreFunc.apply(arr, [arr[i]]) >= _threshold) {\n queue.push(arr[i]);\n }\n }\n return queue;\n },\n maxIndex: function maxIndex(arr) {\n var i,\n max = 0;\n for (i = 0; i < arr.length; i++) {\n if (arr[i] > arr[max]) {\n max = i;\n }\n }\n return max;\n },\n max: function max(arr) {\n var i,\n max = 0;\n for (i = 0; i < arr.length; i++) {\n if (arr[i] > max) {\n max = arr[i];\n }\n }\n return max;\n },\n sum: function sum(arr) {\n var length = arr.length,\n sum = 0;\n while (length--) {\n sum += arr[length];\n }\n return sum;\n }\n };\n\n /***/\n }, /* 4 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(1);\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n function EANReader(opts, supplements) {\n opts = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()(getDefaulConfig(), opts);\n __WEBPACK_IMPORTED_MODULE_1__barcode_reader__[\"a\" /* default */].call(this, opts, supplements);\n }\n function getDefaulConfig() {\n var config = {};\n Object.keys(EANReader.CONFIG_KEYS).forEach(function (key) {\n config[key] = EANReader.CONFIG_KEYS[key].default;\n });\n return config;\n }\n var properties = {\n CODE_L_START: {\n value: 0\n },\n CODE_G_START: {\n value: 10\n },\n START_PATTERN: {\n value: [1, 1, 1]\n },\n STOP_PATTERN: {\n value: [1, 1, 1]\n },\n MIDDLE_PATTERN: {\n value: [1, 1, 1, 1, 1]\n },\n EXTENSION_START_PATTERN: {\n value: [1, 1, 2]\n },\n CODE_PATTERN: {\n value: [[3, 2, 1, 1], [2, 2, 2, 1], [2, 1, 2, 2], [1, 4, 1, 1], [1, 1, 3, 2], [1, 2, 3, 1], [1, 1, 1, 4], [1, 3, 1, 2], [1, 2, 1, 3], [3, 1, 1, 2], [1, 1, 2, 3], [1, 2, 2, 2], [2, 2, 1, 2], [1, 1, 4, 1], [2, 3, 1, 1], [1, 3, 2, 1], [4, 1, 1, 1], [2, 1, 3, 1], [3, 1, 2, 1], [2, 1, 1, 3]]\n },\n CODE_FREQUENCY: {\n value: [0, 11, 13, 14, 19, 25, 28, 21, 22, 26]\n },\n SINGLE_CODE_ERROR: {\n value: 0.70\n },\n AVG_CODE_ERROR: {\n value: 0.48\n },\n FORMAT: {\n value: \"ean_13\",\n writeable: false\n }\n };\n EANReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_1__barcode_reader__[\"a\" /* default */].prototype, properties);\n EANReader.prototype.constructor = EANReader;\n EANReader.prototype._decodeCode = function (start, coderange) {\n var counter = [0, 0, 0, 0],\n i,\n self = this,\n offset = start,\n isWhite = !self._row[offset],\n counterPos = 0,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: start,\n end: start\n },\n code,\n error;\n if (!coderange) {\n coderange = self.CODE_PATTERN.length;\n }\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n for (code = 0; code < coderange; code++) {\n error = self._matchPattern(counter, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n bestMatch.end = i;\n if (bestMatch.error > self.AVG_CODE_ERROR) {\n return null;\n }\n return bestMatch;\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n EANReader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder, epsilon) {\n var counter = [],\n self = this,\n i,\n counterPos = 0,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0\n },\n error,\n j,\n sum;\n if (!offset) {\n offset = self._nextSet(self._row);\n }\n if (isWhite === undefined) {\n isWhite = false;\n }\n if (tryHarder === undefined) {\n tryHarder = true;\n }\n if (epsilon === undefined) {\n epsilon = self.AVG_CODE_ERROR;\n }\n for (i = 0; i < pattern.length; i++) {\n counter[i] = 0;\n }\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n sum = 0;\n for (j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n error = self._matchPattern(counter, pattern);\n if (error < epsilon) {\n bestMatch.error = error;\n bestMatch.start = i - sum;\n bestMatch.end = i;\n return bestMatch;\n }\n if (tryHarder) {\n for (j = 0; j < counter.length - 2; j++) {\n counter[j] = counter[j + 2];\n }\n counter[counter.length - 2] = 0;\n counter[counter.length - 1] = 0;\n counterPos--;\n } else {\n return null;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n EANReader.prototype._findStart = function () {\n var self = this,\n leadingWhitespaceStart,\n offset = self._nextSet(self._row),\n startInfo;\n while (!startInfo) {\n startInfo = self._findPattern(self.START_PATTERN, offset);\n if (!startInfo) {\n return null;\n }\n leadingWhitespaceStart = startInfo.start - (startInfo.end - startInfo.start);\n if (leadingWhitespaceStart >= 0) {\n if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) {\n return startInfo;\n }\n }\n offset = startInfo.end;\n startInfo = null;\n }\n };\n EANReader.prototype._verifyTrailingWhitespace = function (endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start);\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n return null;\n };\n EANReader.prototype._findEnd = function (offset, isWhite) {\n var self = this,\n endInfo = self._findPattern(self.STOP_PATTERN, offset, isWhite, false);\n return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null;\n };\n EANReader.prototype._calculateFirstDigit = function (codeFrequency) {\n var i,\n self = this;\n for (i = 0; i < self.CODE_FREQUENCY.length; i++) {\n if (codeFrequency === self.CODE_FREQUENCY[i]) {\n return i;\n }\n }\n return null;\n };\n EANReader.prototype._decodePayload = function (code, result, decodedCodes) {\n var i,\n self = this,\n codeFrequency = 0x0,\n firstDigit;\n for (i = 0; i < 6; i++) {\n code = self._decodeCode(code.end);\n if (!code) {\n return null;\n }\n if (code.code >= self.CODE_G_START) {\n code.code = code.code - self.CODE_G_START;\n codeFrequency |= 1 << 5 - i;\n } else {\n codeFrequency |= 0 << 5 - i;\n }\n result.push(code.code);\n decodedCodes.push(code);\n }\n firstDigit = self._calculateFirstDigit(codeFrequency);\n if (firstDigit === null) {\n return null;\n }\n result.unshift(firstDigit);\n code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false);\n if (code === null) {\n return null;\n }\n decodedCodes.push(code);\n for (i = 0; i < 6; i++) {\n code = self._decodeCode(code.end, self.CODE_G_START);\n if (!code) {\n return null;\n }\n decodedCodes.push(code);\n result.push(code.code);\n }\n return code;\n };\n EANReader.prototype._decode = function () {\n var startInfo,\n self = this,\n code,\n result = [],\n decodedCodes = [],\n resultInfo = {};\n startInfo = self._findStart();\n if (!startInfo) {\n return null;\n }\n code = {\n code: startInfo.code,\n start: startInfo.start,\n end: startInfo.end\n };\n decodedCodes.push(code);\n code = self._decodePayload(code, result, decodedCodes);\n if (!code) {\n return null;\n }\n code = self._findEnd(code.end, false);\n if (!code) {\n return null;\n }\n decodedCodes.push(code);\n\n // Checksum\n if (!self._checksum(result)) {\n return null;\n }\n if (this.supplements.length > 0) {\n var ext = this._decodeExtensions(code.end);\n if (!ext) {\n return null;\n }\n var lastCode = ext.decodedCodes[ext.decodedCodes.length - 1],\n endInfo = {\n start: lastCode.start + ((lastCode.end - lastCode.start) / 2 | 0),\n end: lastCode.end\n };\n if (!self._verifyTrailingWhitespace(endInfo)) {\n return null;\n }\n resultInfo = {\n supplement: ext,\n code: result.join(\"\") + ext.code\n };\n }\n return _extends({\n code: result.join(\"\"),\n start: startInfo.start,\n end: code.end,\n codeset: \"\",\n startInfo: startInfo,\n decodedCodes: decodedCodes\n }, resultInfo);\n };\n EANReader.prototype._decodeExtensions = function (offset) {\n var i,\n start = this._nextSet(this._row, offset),\n startInfo = this._findPattern(this.EXTENSION_START_PATTERN, start, false, false),\n result;\n if (startInfo === null) {\n return null;\n }\n for (i = 0; i < this.supplements.length; i++) {\n result = this.supplements[i].decode(this._row, startInfo.end);\n if (result !== null) {\n return {\n code: result.code,\n start: start,\n startInfo: startInfo,\n end: result.end,\n codeset: \"\",\n decodedCodes: result.decodedCodes\n };\n }\n }\n return null;\n };\n EANReader.prototype._checksum = function (result) {\n var sum = 0,\n i;\n for (i = result.length - 2; i >= 0; i -= 2) {\n sum += result[i];\n }\n sum *= 3;\n for (i = result.length - 1; i >= 0; i -= 2) {\n sum += result[i];\n }\n return sum % 10 === 0;\n };\n EANReader.CONFIG_KEYS = {\n supplements: {\n 'type': 'arrayOf(string)',\n 'default': [],\n 'description': 'Allowed extensions to be decoded (2 and/or 5)'\n }\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = EANReader;\n\n /***/\n }, /* 5 */\n /***/function (module, exports, __webpack_require__) {\n var freeGlobal = __webpack_require__(38);\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n module.exports = root;\n\n /***/\n }, /* 6 */\n /***/function (module, exports) {\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n module.exports = isObjectLike;\n\n /***/\n }, /* 7 */\n /***/function (module, exports) {\n module.exports = clone;\n\n /**\n * Creates a new vec2 initialized with values from an existing vector\n *\n * @param {vec2} a vector to clone\n * @returns {vec2} a new 2D vector\n */\n function clone(a) {\n var out = new Float32Array(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n }\n\n /***/\n }, /* 8 */\n /***/function (module, exports, __webpack_require__) {\n var Symbol = __webpack_require__(11),\n getRawTag = __webpack_require__(119),\n objectToString = __webpack_require__(146);\n\n /** `Object#toString` result references. */\n var nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n /** Built-in value references. */\n var 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 */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n }\n module.exports = baseGetTag;\n\n /***/\n }, /* 9 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = {\n drawRect: function drawRect(pos, size, ctx, style) {\n ctx.strokeStyle = style.color;\n ctx.fillStyle = style.color;\n ctx.lineWidth = 1;\n ctx.beginPath();\n ctx.strokeRect(pos.x, pos.y, size.x, size.y);\n },\n drawPath: function drawPath(path, def, ctx, style) {\n ctx.strokeStyle = style.color;\n ctx.fillStyle = style.color;\n ctx.lineWidth = style.lineWidth;\n ctx.beginPath();\n ctx.moveTo(path[0][def.x], path[0][def.y]);\n for (var j = 1; j < path.length; j++) {\n ctx.lineTo(path[j][def.x], path[j][def.y]);\n }\n ctx.closePath();\n ctx.stroke();\n },\n drawImage: function drawImage(imageData, size, ctx) {\n var canvasData = ctx.getImageData(0, 0, size.x, size.y),\n data = canvasData.data,\n imageDataPos = imageData.length,\n canvasDataPos = data.length,\n value;\n if (canvasDataPos / imageDataPos !== 4) {\n return false;\n }\n while (imageDataPos--) {\n value = imageData[imageDataPos];\n data[--canvasDataPos] = 255;\n data[--canvasDataPos] = value;\n data[--canvasDataPos] = value;\n data[--canvasDataPos] = value;\n }\n ctx.putImageData(canvasData, 0, 0);\n return true;\n }\n };\n\n /***/\n }, /* 10 */\n /***/function (module, exports, __webpack_require__) {\n var listCacheClear = __webpack_require__(133),\n listCacheDelete = __webpack_require__(134),\n listCacheGet = __webpack_require__(135),\n listCacheHas = __webpack_require__(136),\n listCacheSet = __webpack_require__(137);\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n module.exports = ListCache;\n\n /***/\n }, /* 11 */\n /***/function (module, exports, __webpack_require__) {\n var root = __webpack_require__(5);\n\n /** Built-in value references. */\n var Symbol = root.Symbol;\n module.exports = Symbol;\n\n /***/\n }, /* 12 */\n /***/function (module, exports, __webpack_require__) {\n var eq = __webpack_require__(17);\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n module.exports = assocIndexOf;\n\n /***/\n }, /* 13 */\n /***/function (module, exports, __webpack_require__) {\n var isArray = __webpack_require__(2),\n isKey = __webpack_require__(130),\n stringToPath = __webpack_require__(154),\n toString = __webpack_require__(165);\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n module.exports = castPath;\n\n /***/\n }, /* 14 */\n /***/function (module, exports, __webpack_require__) {\n var isKeyable = __webpack_require__(131);\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n }\n module.exports = getMapData;\n\n /***/\n }, /* 15 */\n /***/function (module, exports) {\n /** Used as references for various `Number` constants. */\n var MAX_SAFE_INTEGER = 9007199254740991;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n }\n module.exports = isIndex;\n\n /***/\n }, /* 16 */\n /***/function (module, exports, __webpack_require__) {\n var getNative = __webpack_require__(22);\n\n /* Built-in method references that are verified to be native. */\n var nativeCreate = getNative(Object, 'create');\n module.exports = nativeCreate;\n\n /***/\n }, /* 17 */\n /***/function (module, exports) {\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || value !== value && other !== other;\n }\n module.exports = eq;\n\n /***/\n }, /* 18 */\n /***/function (module, exports, __webpack_require__) {\n var baseIsArguments = __webpack_require__(96),\n isObjectLike = __webpack_require__(6);\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Built-in value references. */\n var propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function () {\n return arguments;\n }()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n };\n module.exports = isArguments;\n\n /***/\n }, /* 19 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__cluster__ = __webpack_require__(50);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__array_helper__ = __webpack_require__(3);\n /* harmony export (immutable) */\n __webpack_exports__[\"b\"] = imageRef;\n /* unused harmony export computeIntegralImage2 */\n /* unused harmony export computeIntegralImage */\n /* unused harmony export thresholdImage */\n /* unused harmony export computeHistogram */\n /* unused harmony export sharpenLine */\n /* unused harmony export determineOtsuThreshold */\n /* harmony export (immutable) */\n __webpack_exports__[\"f\"] = otsuThreshold;\n /* unused harmony export computeBinaryImage */\n /* harmony export (immutable) */\n __webpack_exports__[\"g\"] = cluster;\n /* unused harmony export Tracer */\n /* unused harmony export DILATE */\n /* unused harmony export ERODE */\n /* unused harmony export dilate */\n /* unused harmony export erode */\n /* unused harmony export subtract */\n /* unused harmony export bitwiseOr */\n /* unused harmony export countNonZero */\n /* harmony export (immutable) */\n __webpack_exports__[\"h\"] = topGeneric;\n /* unused harmony export grayArrayFromImage */\n /* unused harmony export grayArrayFromContext */\n /* harmony export (immutable) */\n __webpack_exports__[\"c\"] = grayAndHalfSampleFromCanvasData;\n /* harmony export (immutable) */\n __webpack_exports__[\"d\"] = computeGray;\n /* unused harmony export loadImageArray */\n /* harmony export (immutable) */\n __webpack_exports__[\"i\"] = halfSample;\n /* harmony export (immutable) */\n __webpack_exports__[\"a\"] = hsv2rgb;\n /* unused harmony export _computeDivisors */\n /* harmony export (immutable) */\n __webpack_exports__[\"e\"] = calculatePatchSize;\n /* unused harmony export _parseCSSDimensionValues */\n /* unused harmony export _dimensionsConverters */\n /* harmony export (immutable) */\n __webpack_exports__[\"j\"] = computeImageArea;\n var vec2 = {\n clone: __webpack_require__(7)\n };\n var vec3 = {\n clone: __webpack_require__(83)\n };\n\n /**\n * @param x x-coordinate\n * @param y y-coordinate\n * @return ImageReference {x,y} Coordinate\n */\n function imageRef(x, y) {\n var that = {\n x: x,\n y: y,\n toVec2: function toVec2() {\n return vec2.clone([this.x, this.y]);\n },\n toVec3: function toVec3() {\n return vec3.clone([this.x, this.y, 1]);\n },\n round: function round() {\n this.x = this.x > 0.0 ? Math.floor(this.x + 0.5) : Math.floor(this.x - 0.5);\n this.y = this.y > 0.0 ? Math.floor(this.y + 0.5) : Math.floor(this.y - 0.5);\n return this;\n }\n };\n return that;\n }\n ;\n\n /**\n * Computes an integral image of a given grayscale image.\n * @param imageDataContainer {ImageDataContainer} the image to be integrated\n */\n function computeIntegralImage2(imageWrapper, integralWrapper) {\n var imageData = imageWrapper.data;\n var width = imageWrapper.size.x;\n var height = imageWrapper.size.y;\n var integralImageData = integralWrapper.data;\n var sum = 0,\n posA = 0,\n posB = 0,\n posC = 0,\n posD = 0,\n x,\n y;\n\n // sum up first column\n posB = width;\n sum = 0;\n for (y = 1; y < height; y++) {\n sum += imageData[posA];\n integralImageData[posB] += sum;\n posA += width;\n posB += width;\n }\n posA = 0;\n posB = 1;\n sum = 0;\n for (x = 1; x < width; x++) {\n sum += imageData[posA];\n integralImageData[posB] += sum;\n posA++;\n posB++;\n }\n for (y = 1; y < height; y++) {\n posA = y * width + 1;\n posB = (y - 1) * width + 1;\n posC = y * width;\n posD = (y - 1) * width;\n for (x = 1; x < width; x++) {\n integralImageData[posA] += imageData[posA] + integralImageData[posB] + integralImageData[posC] - integralImageData[posD];\n posA++;\n posB++;\n posC++;\n posD++;\n }\n }\n }\n ;\n function computeIntegralImage(imageWrapper, integralWrapper) {\n var imageData = imageWrapper.data;\n var width = imageWrapper.size.x;\n var height = imageWrapper.size.y;\n var integralImageData = integralWrapper.data;\n var sum = 0;\n\n // sum up first row\n for (var i = 0; i < width; i++) {\n sum += imageData[i];\n integralImageData[i] = sum;\n }\n for (var v = 1; v < height; v++) {\n sum = 0;\n for (var u = 0; u < width; u++) {\n sum += imageData[v * width + u];\n integralImageData[v * width + u] = sum + integralImageData[(v - 1) * width + u];\n }\n }\n }\n ;\n function thresholdImage(imageWrapper, threshold, targetWrapper) {\n if (!targetWrapper) {\n targetWrapper = imageWrapper;\n }\n var imageData = imageWrapper.data,\n length = imageData.length,\n targetData = targetWrapper.data;\n while (length--) {\n targetData[length] = imageData[length] < threshold ? 1 : 0;\n }\n }\n ;\n function computeHistogram(imageWrapper, bitsPerPixel) {\n if (!bitsPerPixel) {\n bitsPerPixel = 8;\n }\n var imageData = imageWrapper.data,\n length = imageData.length,\n bitShift = 8 - bitsPerPixel,\n bucketCnt = 1 << bitsPerPixel,\n hist = new Int32Array(bucketCnt);\n while (length--) {\n hist[imageData[length] >> bitShift]++;\n }\n return hist;\n }\n ;\n function sharpenLine(line) {\n var i,\n length = line.length,\n left = line[0],\n center = line[1],\n right;\n for (i = 1; i < length - 1; i++) {\n right = line[i + 1];\n // -1 4 -1 kernel\n line[i - 1] = center * 2 - left - right & 255;\n left = center;\n center = right;\n }\n return line;\n }\n ;\n function determineOtsuThreshold(imageWrapper, bitsPerPixel) {\n if (!bitsPerPixel) {\n bitsPerPixel = 8;\n }\n var hist,\n threshold,\n bitShift = 8 - bitsPerPixel;\n function px(init, end) {\n var sum = 0,\n i;\n for (i = init; i <= end; i++) {\n sum += hist[i];\n }\n return sum;\n }\n function mx(init, end) {\n var i,\n sum = 0;\n for (i = init; i <= end; i++) {\n sum += i * hist[i];\n }\n return sum;\n }\n function determineThreshold() {\n var vet = [0],\n p1,\n p2,\n p12,\n k,\n m1,\n m2,\n m12,\n max = (1 << bitsPerPixel) - 1;\n hist = computeHistogram(imageWrapper, bitsPerPixel);\n for (k = 1; k < max; k++) {\n p1 = px(0, k);\n p2 = px(k + 1, max);\n p12 = p1 * p2;\n if (p12 === 0) {\n p12 = 1;\n }\n m1 = mx(0, k) * p2;\n m2 = mx(k + 1, max) * p1;\n m12 = m1 - m2;\n vet[k] = m12 * m12 / p12;\n }\n return __WEBPACK_IMPORTED_MODULE_1__array_helper__[\"a\" /* default */].maxIndex(vet);\n }\n threshold = determineThreshold();\n return threshold << bitShift;\n }\n ;\n function otsuThreshold(imageWrapper, targetWrapper) {\n var threshold = determineOtsuThreshold(imageWrapper);\n thresholdImage(imageWrapper, threshold, targetWrapper);\n return threshold;\n }\n ;\n\n // local thresholding\n function computeBinaryImage(imageWrapper, integralWrapper, targetWrapper) {\n computeIntegralImage(imageWrapper, integralWrapper);\n if (!targetWrapper) {\n targetWrapper = imageWrapper;\n }\n var imageData = imageWrapper.data;\n var targetData = targetWrapper.data;\n var width = imageWrapper.size.x;\n var height = imageWrapper.size.y;\n var integralImageData = integralWrapper.data;\n var sum = 0,\n v,\n u,\n kernel = 3,\n A,\n B,\n C,\n D,\n avg,\n size = (kernel * 2 + 1) * (kernel * 2 + 1);\n\n // clear out top & bottom-border\n for (v = 0; v <= kernel; v++) {\n for (u = 0; u < width; u++) {\n targetData[v * width + u] = 0;\n targetData[(height - 1 - v) * width + u] = 0;\n }\n }\n\n // clear out left & right border\n for (v = kernel; v < height - kernel; v++) {\n for (u = 0; u <= kernel; u++) {\n targetData[v * width + u] = 0;\n targetData[v * width + (width - 1 - u)] = 0;\n }\n }\n for (v = kernel + 1; v < height - kernel - 1; v++) {\n for (u = kernel + 1; u < width - kernel; u++) {\n A = integralImageData[(v - kernel - 1) * width + (u - kernel - 1)];\n B = integralImageData[(v - kernel - 1) * width + (u + kernel)];\n C = integralImageData[(v + kernel) * width + (u - kernel - 1)];\n D = integralImageData[(v + kernel) * width + (u + kernel)];\n sum = D - C - B + A;\n avg = sum / size;\n targetData[v * width + u] = imageData[v * width + u] > avg + 5 ? 0 : 1;\n }\n }\n }\n ;\n function cluster(points, threshold, property) {\n var i,\n k,\n cluster,\n point,\n clusters = [];\n if (!property) {\n property = \"rad\";\n }\n function addToCluster(newPoint) {\n var found = false;\n for (k = 0; k < clusters.length; k++) {\n cluster = clusters[k];\n if (cluster.fits(newPoint)) {\n cluster.add(newPoint);\n found = true;\n }\n }\n return found;\n }\n\n // iterate over each cloud\n for (i = 0; i < points.length; i++) {\n point = __WEBPACK_IMPORTED_MODULE_0__cluster__[\"a\" /* default */].createPoint(points[i], i, property);\n if (!addToCluster(point)) {\n clusters.push(__WEBPACK_IMPORTED_MODULE_0__cluster__[\"a\" /* default */].create(point, threshold));\n }\n }\n return clusters;\n }\n ;\n var Tracer = {\n trace: function trace(points, vec) {\n var iteration,\n maxIterations = 10,\n top = [],\n result = [],\n centerPos = 0,\n currentPos = 0;\n function trace(idx, forward) {\n var from,\n to,\n toIdx,\n predictedPos,\n thresholdX = 1,\n thresholdY = Math.abs(vec[1] / 10),\n found = false;\n function match(pos, predicted) {\n if (pos.x > predicted.x - thresholdX && pos.x < predicted.x + thresholdX && pos.y > predicted.y - thresholdY && pos.y < predicted.y + thresholdY) {\n return true;\n } else {\n return false;\n }\n }\n\n // check if the next index is within the vec specifications\n // if not, check as long as the threshold is met\n\n from = points[idx];\n if (forward) {\n predictedPos = {\n x: from.x + vec[0],\n y: from.y + vec[1]\n };\n } else {\n predictedPos = {\n x: from.x - vec[0],\n y: from.y - vec[1]\n };\n }\n toIdx = forward ? idx + 1 : idx - 1;\n to = points[toIdx];\n while (to && (found = match(to, predictedPos)) !== true && Math.abs(to.y - from.y) < vec[1]) {\n toIdx = forward ? toIdx + 1 : toIdx - 1;\n to = points[toIdx];\n }\n return found ? toIdx : null;\n }\n for (iteration = 0; iteration < maxIterations; iteration++) {\n // randomly select point to start with\n centerPos = Math.floor(Math.random() * points.length);\n\n // trace forward\n top = [];\n currentPos = centerPos;\n top.push(points[currentPos]);\n while ((currentPos = trace(currentPos, true)) !== null) {\n top.push(points[currentPos]);\n }\n if (centerPos > 0) {\n currentPos = centerPos;\n while ((currentPos = trace(currentPos, false)) !== null) {\n top.push(points[currentPos]);\n }\n }\n if (top.length > result.length) {\n result = top;\n }\n }\n return result;\n }\n };\n var DILATE = 1;\n var ERODE = 2;\n function dilate(inImageWrapper, outImageWrapper) {\n var v,\n u,\n inImageData = inImageWrapper.data,\n outImageData = outImageWrapper.data,\n height = inImageWrapper.size.y,\n width = inImageWrapper.size.x,\n sum,\n yStart1,\n yStart2,\n xStart1,\n xStart2;\n for (v = 1; v < height - 1; v++) {\n for (u = 1; u < width - 1; u++) {\n yStart1 = v - 1;\n yStart2 = v + 1;\n xStart1 = u - 1;\n xStart2 = u + 1;\n sum = inImageData[yStart1 * width + xStart1] + inImageData[yStart1 * width + xStart2] + inImageData[v * width + u] + inImageData[yStart2 * width + xStart1] + inImageData[yStart2 * width + xStart2];\n outImageData[v * width + u] = sum > 0 ? 1 : 0;\n }\n }\n }\n ;\n function erode(inImageWrapper, outImageWrapper) {\n var v,\n u,\n inImageData = inImageWrapper.data,\n outImageData = outImageWrapper.data,\n height = inImageWrapper.size.y,\n width = inImageWrapper.size.x,\n sum,\n yStart1,\n yStart2,\n xStart1,\n xStart2;\n for (v = 1; v < height - 1; v++) {\n for (u = 1; u < width - 1; u++) {\n yStart1 = v - 1;\n yStart2 = v + 1;\n xStart1 = u - 1;\n xStart2 = u + 1;\n sum = inImageData[yStart1 * width + xStart1] + inImageData[yStart1 * width + xStart2] + inImageData[v * width + u] + inImageData[yStart2 * width + xStart1] + inImageData[yStart2 * width + xStart2];\n outImageData[v * width + u] = sum === 5 ? 1 : 0;\n }\n }\n }\n ;\n function subtract(aImageWrapper, bImageWrapper, resultImageWrapper) {\n if (!resultImageWrapper) {\n resultImageWrapper = aImageWrapper;\n }\n var length = aImageWrapper.data.length,\n aImageData = aImageWrapper.data,\n bImageData = bImageWrapper.data,\n cImageData = resultImageWrapper.data;\n while (length--) {\n cImageData[length] = aImageData[length] - bImageData[length];\n }\n }\n ;\n function bitwiseOr(aImageWrapper, bImageWrapper, resultImageWrapper) {\n if (!resultImageWrapper) {\n resultImageWrapper = aImageWrapper;\n }\n var length = aImageWrapper.data.length,\n aImageData = aImageWrapper.data,\n bImageData = bImageWrapper.data,\n cImageData = resultImageWrapper.data;\n while (length--) {\n cImageData[length] = aImageData[length] || bImageData[length];\n }\n }\n ;\n function countNonZero(imageWrapper) {\n var length = imageWrapper.data.length,\n data = imageWrapper.data,\n sum = 0;\n while (length--) {\n sum += data[length];\n }\n return sum;\n }\n ;\n function topGeneric(list, top, scoreFunc) {\n var i,\n minIdx = 0,\n min = 0,\n queue = [],\n score,\n hit,\n pos;\n for (i = 0; i < top; i++) {\n queue[i] = {\n score: 0,\n item: null\n };\n }\n for (i = 0; i < list.length; i++) {\n score = scoreFunc.apply(this, [list[i]]);\n if (score > min) {\n hit = queue[minIdx];\n hit.score = score;\n hit.item = list[i];\n min = Number.MAX_VALUE;\n for (pos = 0; pos < top; pos++) {\n if (queue[pos].score < min) {\n min = queue[pos].score;\n minIdx = pos;\n }\n }\n }\n }\n return queue;\n }\n ;\n function grayArrayFromImage(htmlImage, offsetX, ctx, array) {\n ctx.drawImage(htmlImage, offsetX, 0, htmlImage.width, htmlImage.height);\n var ctxData = ctx.getImageData(offsetX, 0, htmlImage.width, htmlImage.height).data;\n computeGray(ctxData, array);\n }\n ;\n function grayArrayFromContext(ctx, size, offset, array) {\n var ctxData = ctx.getImageData(offset.x, offset.y, size.x, size.y).data;\n computeGray(ctxData, array);\n }\n ;\n function grayAndHalfSampleFromCanvasData(canvasData, size, outArray) {\n var topRowIdx = 0;\n var bottomRowIdx = size.x;\n var endIdx = Math.floor(canvasData.length / 4);\n var outWidth = size.x / 2;\n var outImgIdx = 0;\n var inWidth = size.x;\n var i;\n while (bottomRowIdx < endIdx) {\n for (i = 0; i < outWidth; i++) {\n outArray[outImgIdx] = (0.299 * canvasData[topRowIdx * 4 + 0] + 0.587 * canvasData[topRowIdx * 4 + 1] + 0.114 * canvasData[topRowIdx * 4 + 2] + (0.299 * canvasData[(topRowIdx + 1) * 4 + 0] + 0.587 * canvasData[(topRowIdx + 1) * 4 + 1] + 0.114 * canvasData[(topRowIdx + 1) * 4 + 2]) + (0.299 * canvasData[bottomRowIdx * 4 + 0] + 0.587 * canvasData[bottomRowIdx * 4 + 1] + 0.114 * canvasData[bottomRowIdx * 4 + 2]) + (0.299 * canvasData[(bottomRowIdx + 1) * 4 + 0] + 0.587 * canvasData[(bottomRowIdx + 1) * 4 + 1] + 0.114 * canvasData[(bottomRowIdx + 1) * 4 + 2])) / 4;\n outImgIdx++;\n topRowIdx = topRowIdx + 2;\n bottomRowIdx = bottomRowIdx + 2;\n }\n topRowIdx = topRowIdx + inWidth;\n bottomRowIdx = bottomRowIdx + inWidth;\n }\n }\n ;\n function computeGray(imageData, outArray, config) {\n var l = imageData.length / 4 | 0,\n i,\n singleChannel = config && config.singleChannel === true;\n if (singleChannel) {\n for (i = 0; i < l; i++) {\n outArray[i] = imageData[i * 4 + 0];\n }\n } else {\n for (i = 0; i < l; i++) {\n outArray[i] = 0.299 * imageData[i * 4 + 0] + 0.587 * imageData[i * 4 + 1] + 0.114 * imageData[i * 4 + 2];\n }\n }\n }\n ;\n function loadImageArray(src, callback, canvas) {\n if (!canvas) {\n canvas = document.createElement('canvas');\n }\n var img = new Image();\n img.callback = callback;\n img.onload = function () {\n canvas.width = this.width;\n canvas.height = this.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(this, 0, 0);\n var array = new Uint8Array(this.width * this.height);\n ctx.drawImage(this, 0, 0);\n var data = ctx.getImageData(0, 0, this.width, this.height).data;\n computeGray(data, array);\n this.callback(array, {\n x: this.width,\n y: this.height\n }, this);\n };\n img.src = src;\n }\n ;\n\n /**\n * @param inImg {ImageWrapper} input image to be sampled\n * @param outImg {ImageWrapper} to be stored in\n */\n function halfSample(inImgWrapper, outImgWrapper) {\n var inImg = inImgWrapper.data;\n var inWidth = inImgWrapper.size.x;\n var outImg = outImgWrapper.data;\n var topRowIdx = 0;\n var bottomRowIdx = inWidth;\n var endIdx = inImg.length;\n var outWidth = inWidth / 2;\n var outImgIdx = 0;\n while (bottomRowIdx < endIdx) {\n for (var i = 0; i < outWidth; i++) {\n outImg[outImgIdx] = Math.floor((inImg[topRowIdx] + inImg[topRowIdx + 1] + inImg[bottomRowIdx] + inImg[bottomRowIdx + 1]) / 4);\n outImgIdx++;\n topRowIdx = topRowIdx + 2;\n bottomRowIdx = bottomRowIdx + 2;\n }\n topRowIdx = topRowIdx + inWidth;\n bottomRowIdx = bottomRowIdx + inWidth;\n }\n }\n ;\n function hsv2rgb(hsv, rgb) {\n var h = hsv[0],\n s = hsv[1],\n v = hsv[2],\n c = v * s,\n x = c * (1 - Math.abs(h / 60 % 2 - 1)),\n m = v - c,\n r = 0,\n g = 0,\n b = 0;\n rgb = rgb || [0, 0, 0];\n if (h < 60) {\n r = c;\n g = x;\n } else if (h < 120) {\n r = x;\n g = c;\n } else if (h < 180) {\n g = c;\n b = x;\n } else if (h < 240) {\n g = x;\n b = c;\n } else if (h < 300) {\n r = x;\n b = c;\n } else if (h < 360) {\n r = c;\n b = x;\n }\n rgb[0] = (r + m) * 255 | 0;\n rgb[1] = (g + m) * 255 | 0;\n rgb[2] = (b + m) * 255 | 0;\n return rgb;\n }\n ;\n function _computeDivisors(n) {\n var largeDivisors = [],\n divisors = [],\n i;\n for (i = 1; i < Math.sqrt(n) + 1; i++) {\n if (n % i === 0) {\n divisors.push(i);\n if (i !== n / i) {\n largeDivisors.unshift(Math.floor(n / i));\n }\n }\n }\n return divisors.concat(largeDivisors);\n }\n ;\n function _computeIntersection(arr1, arr2) {\n var i = 0,\n j = 0,\n result = [];\n while (i < arr1.length && j < arr2.length) {\n if (arr1[i] === arr2[j]) {\n result.push(arr1[i]);\n i++;\n j++;\n } else if (arr1[i] > arr2[j]) {\n j++;\n } else {\n i++;\n }\n }\n return result;\n }\n ;\n function calculatePatchSize(patchSize, imgSize) {\n var divisorsX = _computeDivisors(imgSize.x),\n divisorsY = _computeDivisors(imgSize.y),\n wideSide = Math.max(imgSize.x, imgSize.y),\n common = _computeIntersection(divisorsX, divisorsY),\n nrOfPatchesList = [8, 10, 15, 20, 32, 60, 80],\n nrOfPatchesMap = {\n \"x-small\": 5,\n \"small\": 4,\n \"medium\": 3,\n \"large\": 2,\n \"x-large\": 1\n },\n nrOfPatchesIdx = nrOfPatchesMap[patchSize] || nrOfPatchesMap.medium,\n nrOfPatches = nrOfPatchesList[nrOfPatchesIdx],\n desiredPatchSize = Math.floor(wideSide / nrOfPatches),\n optimalPatchSize;\n function findPatchSizeForDivisors(divisors) {\n var i = 0,\n found = divisors[Math.floor(divisors.length / 2)];\n while (i < divisors.length - 1 && divisors[i] < desiredPatchSize) {\n i++;\n }\n if (i > 0) {\n if (Math.abs(divisors[i] - desiredPatchSize) > Math.abs(divisors[i - 1] - desiredPatchSize)) {\n found = divisors[i - 1];\n } else {\n found = divisors[i];\n }\n }\n if (desiredPatchSize / found < nrOfPatchesList[nrOfPatchesIdx + 1] / nrOfPatchesList[nrOfPatchesIdx] && desiredPatchSize / found > nrOfPatchesList[nrOfPatchesIdx - 1] / nrOfPatchesList[nrOfPatchesIdx]) {\n return {\n x: found,\n y: found\n };\n }\n return null;\n }\n optimalPatchSize = findPatchSizeForDivisors(common);\n if (!optimalPatchSize) {\n optimalPatchSize = findPatchSizeForDivisors(_computeDivisors(wideSide));\n if (!optimalPatchSize) {\n optimalPatchSize = findPatchSizeForDivisors(_computeDivisors(desiredPatchSize * nrOfPatches));\n }\n }\n return optimalPatchSize;\n }\n ;\n function _parseCSSDimensionValues(value) {\n var dimension = {\n value: parseFloat(value),\n unit: value.indexOf(\"%\") === value.length - 1 ? \"%\" : \"%\"\n };\n return dimension;\n }\n ;\n var _dimensionsConverters = {\n top: function top(dimension, context) {\n if (dimension.unit === \"%\") {\n return Math.floor(context.height * (dimension.value / 100));\n }\n },\n right: function right(dimension, context) {\n if (dimension.unit === \"%\") {\n return Math.floor(context.width - context.width * (dimension.value / 100));\n }\n },\n bottom: function bottom(dimension, context) {\n if (dimension.unit === \"%\") {\n return Math.floor(context.height - context.height * (dimension.value / 100));\n }\n },\n left: function left(dimension, context) {\n if (dimension.unit === \"%\") {\n return Math.floor(context.width * (dimension.value / 100));\n }\n }\n };\n function computeImageArea(inputWidth, inputHeight, area) {\n var context = {\n width: inputWidth,\n height: inputHeight\n };\n var parsedArea = Object.keys(area).reduce(function (result, key) {\n var value = area[key],\n parsed = _parseCSSDimensionValues(value),\n calculated = _dimensionsConverters[key](parsed, context);\n result[key] = calculated;\n return result;\n }, {});\n return {\n sx: parsedArea.left,\n sy: parsedArea.top,\n sw: parsedArea.right - parsedArea.left,\n sh: parsedArea.bottom - parsedArea.top\n };\n }\n ;\n\n /***/\n }, /* 20 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__subImage__ = __webpack_require__(53);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(19);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(3);\n var vec2 = {\n clone: __webpack_require__(7)\n };\n\n /**\n * Represents a basic image combining the data and size.\n * In addition, some methods for manipulation are contained.\n * @param size {x,y} The size of the image in pixel\n * @param data {Array} If given, a flat array containing the pixel data\n * @param ArrayType {Type} If given, the desired DataType of the Array (may be typed/non-typed)\n * @param initialize {Boolean} Indicating if the array should be initialized on creation.\n * @returns {ImageWrapper}\n */\n function ImageWrapper(size, data, ArrayType, initialize) {\n if (!data) {\n if (ArrayType) {\n this.data = new ArrayType(size.x * size.y);\n if (ArrayType === Array && initialize) {\n __WEBPACK_IMPORTED_MODULE_2__common_array_helper__[\"a\" /* default */].init(this.data, 0);\n }\n } else {\n this.data = new Uint8Array(size.x * size.y);\n if (Uint8Array === Array && initialize) {\n __WEBPACK_IMPORTED_MODULE_2__common_array_helper__[\"a\" /* default */].init(this.data, 0);\n }\n }\n } else {\n this.data = data;\n }\n this.size = size;\n }\n\n /**\n * tests if a position is within the image with a given offset\n * @param imgRef {x, y} The location to test\n * @param border Number the padding value in pixel\n * @returns {Boolean} true if location inside the image's border, false otherwise\n * @see cvd/image.h\n */\n ImageWrapper.prototype.inImageWithBorder = function (imgRef, border) {\n return imgRef.x >= border && imgRef.y >= border && imgRef.x < this.size.x - border && imgRef.y < this.size.y - border;\n };\n\n /**\n * Performs bilinear sampling\n * @param inImg Image to extract sample from\n * @param x the x-coordinate\n * @param y the y-coordinate\n * @returns the sampled value\n * @see cvd/vision.h\n */\n ImageWrapper.sample = function (inImg, x, y) {\n var lx = Math.floor(x);\n var ly = Math.floor(y);\n var w = inImg.size.x;\n var base = ly * inImg.size.x + lx;\n var a = inImg.data[base + 0];\n var b = inImg.data[base + 1];\n var c = inImg.data[base + w];\n var d = inImg.data[base + w + 1];\n var e = a - b;\n x -= lx;\n y -= ly;\n var result = Math.floor(x * (y * (e - c + d) - e) + y * (c - a) + a);\n return result;\n };\n\n /**\n * Initializes a given array. Sets each element to zero.\n * @param array {Array} The array to initialize\n */\n ImageWrapper.clearArray = function (array) {\n var l = array.length;\n while (l--) {\n array[l] = 0;\n }\n };\n\n /**\n * Creates a {SubImage} from the current image ({this}).\n * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner)\n * @param size {ImageRef} The size of the resulting image\n * @returns {SubImage} A shared part of the original image\n */\n ImageWrapper.prototype.subImage = function (from, size) {\n return new __WEBPACK_IMPORTED_MODULE_0__subImage__[\"a\" /* default */](from, size, this);\n };\n\n /**\n * Creates an {ImageWrapper) and copies the needed underlying image-data area\n * @param imageWrapper {ImageWrapper} The target {ImageWrapper} where the data should be copied\n * @param from {ImageRef} The location where to copy from (top-left location)\n */\n ImageWrapper.prototype.subImageAsCopy = function (imageWrapper, from) {\n var sizeY = imageWrapper.size.y,\n sizeX = imageWrapper.size.x;\n var x, y;\n for (x = 0; x < sizeX; x++) {\n for (y = 0; y < sizeY; y++) {\n imageWrapper.data[y * sizeX + x] = this.data[(from.y + y) * this.size.x + from.x + x];\n }\n }\n };\n ImageWrapper.prototype.copyTo = function (imageWrapper) {\n var length = this.data.length,\n srcData = this.data,\n dstData = imageWrapper.data;\n while (length--) {\n dstData[length] = srcData[length];\n }\n };\n\n /**\n * Retrieves a given pixel position from the image\n * @param x {Number} The x-position\n * @param y {Number} The y-position\n * @returns {Number} The grayscale value at the pixel-position\n */\n ImageWrapper.prototype.get = function (x, y) {\n return this.data[y * this.size.x + x];\n };\n\n /**\n * Retrieves a given pixel position from the image\n * @param x {Number} The x-position\n * @param y {Number} The y-position\n * @returns {Number} The grayscale value at the pixel-position\n */\n ImageWrapper.prototype.getSafe = function (x, y) {\n var i;\n if (!this.indexMapping) {\n this.indexMapping = {\n x: [],\n y: []\n };\n for (i = 0; i < this.size.x; i++) {\n this.indexMapping.x[i] = i;\n this.indexMapping.x[i + this.size.x] = i;\n }\n for (i = 0; i < this.size.y; i++) {\n this.indexMapping.y[i] = i;\n this.indexMapping.y[i + this.size.y] = i;\n }\n }\n return this.data[this.indexMapping.y[y + this.size.y] * this.size.x + this.indexMapping.x[x + this.size.x]];\n };\n\n /**\n * Sets a given pixel position in the image\n * @param x {Number} The x-position\n * @param y {Number} The y-position\n * @param value {Number} The grayscale value to set\n * @returns {ImageWrapper} The Image itself (for possible chaining)\n */\n ImageWrapper.prototype.set = function (x, y, value) {\n this.data[y * this.size.x + x] = value;\n return this;\n };\n\n /**\n * Sets the border of the image (1 pixel) to zero\n */\n ImageWrapper.prototype.zeroBorder = function () {\n var i,\n width = this.size.x,\n height = this.size.y,\n data = this.data;\n for (i = 0; i < width; i++) {\n data[i] = data[(height - 1) * width + i] = 0;\n }\n for (i = 1; i < height - 1; i++) {\n data[i * width] = data[i * width + (width - 1)] = 0;\n }\n };\n\n /**\n * Inverts a binary image in place\n */\n ImageWrapper.prototype.invert = function () {\n var data = this.data,\n length = data.length;\n while (length--) {\n data[length] = data[length] ? 0 : 1;\n }\n };\n ImageWrapper.prototype.convolve = function (kernel) {\n var x,\n y,\n kx,\n ky,\n kSize = kernel.length / 2 | 0,\n accu = 0;\n for (y = 0; y < this.size.y; y++) {\n for (x = 0; x < this.size.x; x++) {\n accu = 0;\n for (ky = -kSize; ky <= kSize; ky++) {\n for (kx = -kSize; kx <= kSize; kx++) {\n accu += kernel[ky + kSize][kx + kSize] * this.getSafe(x + kx, y + ky);\n }\n }\n this.data[y * this.size.x + x] = accu;\n }\n }\n };\n ImageWrapper.prototype.moments = function (labelcount) {\n var data = this.data,\n x,\n y,\n height = this.size.y,\n width = this.size.x,\n val,\n ysq,\n labelsum = [],\n i,\n label,\n mu11,\n mu02,\n mu20,\n x_,\n y_,\n tmp,\n result = [],\n PI = Math.PI,\n PI_4 = PI / 4;\n if (labelcount <= 0) {\n return result;\n }\n for (i = 0; i < labelcount; i++) {\n labelsum[i] = {\n m00: 0,\n m01: 0,\n m10: 0,\n m11: 0,\n m02: 0,\n m20: 0,\n theta: 0,\n rad: 0\n };\n }\n for (y = 0; y < height; y++) {\n ysq = y * y;\n for (x = 0; x < width; x++) {\n val = data[y * width + x];\n if (val > 0) {\n label = labelsum[val - 1];\n label.m00 += 1;\n label.m01 += y;\n label.m10 += x;\n label.m11 += x * y;\n label.m02 += ysq;\n label.m20 += x * x;\n }\n }\n }\n for (i = 0; i < labelcount; i++) {\n label = labelsum[i];\n if (!isNaN(label.m00) && label.m00 !== 0) {\n x_ = label.m10 / label.m00;\n y_ = label.m01 / label.m00;\n mu11 = label.m11 / label.m00 - x_ * y_;\n mu02 = label.m02 / label.m00 - y_ * y_;\n mu20 = label.m20 / label.m00 - x_ * x_;\n tmp = (mu02 - mu20) / (2 * mu11);\n tmp = 0.5 * Math.atan(tmp) + (mu11 >= 0 ? PI_4 : -PI_4) + PI;\n label.theta = (tmp * 180 / PI + 90) % 180 - 90;\n if (label.theta < 0) {\n label.theta += 180;\n }\n label.rad = tmp > PI ? tmp - PI : tmp;\n label.vec = vec2.clone([Math.cos(tmp), Math.sin(tmp)]);\n result.push(label);\n }\n }\n return result;\n };\n\n /**\n * Displays the {ImageWrapper} in a given canvas\n * @param canvas {Canvas} The canvas element to write to\n * @param scale {Number} Scale which is applied to each pixel-value\n */\n ImageWrapper.prototype.show = function (canvas, scale) {\n var ctx, frame, data, current, pixel, x, y;\n if (!scale) {\n scale = 1.0;\n }\n ctx = canvas.getContext('2d');\n canvas.width = this.size.x;\n canvas.height = this.size.y;\n frame = ctx.getImageData(0, 0, canvas.width, canvas.height);\n data = frame.data;\n current = 0;\n for (y = 0; y < this.size.y; y++) {\n for (x = 0; x < this.size.x; x++) {\n pixel = y * this.size.x + x;\n current = this.get(x, y) * scale;\n data[pixel * 4 + 0] = current;\n data[pixel * 4 + 1] = current;\n data[pixel * 4 + 2] = current;\n data[pixel * 4 + 3] = 255;\n }\n }\n //frame.data = data;\n ctx.putImageData(frame, 0, 0);\n };\n\n /**\n * Displays the {SubImage} in a given canvas\n * @param canvas {Canvas} The canvas element to write to\n * @param scale {Number} Scale which is applied to each pixel-value\n */\n ImageWrapper.prototype.overlay = function (canvas, scale, from) {\n if (!scale || scale < 0 || scale > 360) {\n scale = 360;\n }\n var hsv = [0, 1, 1];\n var rgb = [0, 0, 0];\n var whiteRgb = [255, 255, 255];\n var blackRgb = [0, 0, 0];\n var result = [];\n var ctx = canvas.getContext('2d');\n var frame = ctx.getImageData(from.x, from.y, this.size.x, this.size.y);\n var data = frame.data;\n var length = this.data.length;\n while (length--) {\n hsv[0] = this.data[length] * scale;\n result = hsv[0] <= 0 ? whiteRgb : hsv[0] >= 360 ? blackRgb : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"a\" /* hsv2rgb */])(hsv, rgb);\n data[length * 4 + 0] = result[0];\n data[length * 4 + 1] = result[1];\n data[length * 4 + 2] = result[2];\n data[length * 4 + 3] = 255;\n }\n ctx.putImageData(frame, from.x, from.y);\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = ImageWrapper;\n\n /***/\n }, /* 21 */\n /***/function (module, exports, __webpack_require__) {\n var defineProperty = __webpack_require__(37);\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n module.exports = baseAssignValue;\n\n /***/\n }, /* 22 */\n /***/function (module, exports, __webpack_require__) {\n var baseIsNative = __webpack_require__(97),\n getValue = __webpack_require__(120);\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n module.exports = getNative;\n\n /***/\n }, /* 23 */\n /***/function (module, exports, __webpack_require__) {\n var isSymbol = __webpack_require__(27);\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0;\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n }\n module.exports = toKey;\n\n /***/\n }, /* 24 */\n /***/function (module, exports, __webpack_require__) {\n var isFunction = __webpack_require__(25),\n isLength = __webpack_require__(26);\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n module.exports = isArrayLike;\n\n /***/\n }, /* 25 */\n /***/function (module, exports, __webpack_require__) {\n var baseGetTag = __webpack_require__(8),\n isObject = __webpack_require__(0);\n\n /** `Object#toString` result references. */\n var asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n module.exports = isFunction;\n\n /***/\n }, /* 26 */\n /***/function (module, exports) {\n /** Used as references for various `Number` constants. */\n var MAX_SAFE_INTEGER = 9007199254740991;\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n module.exports = isLength;\n\n /***/\n }, /* 27 */\n /***/function (module, exports, __webpack_require__) {\n var baseGetTag = __webpack_require__(8),\n isObjectLike = __webpack_require__(6);\n\n /** `Object#toString` result references. */\n var symbolTag = '[object Symbol]';\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n }\n module.exports = isSymbol;\n\n /***/\n }, /* 28 */\n /***/function (module, exports, __webpack_require__) {\n var baseMerge = __webpack_require__(100),\n createAssigner = __webpack_require__(116);\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n module.exports = merge;\n\n /***/\n }, /* 29 */\n /***/function (module, exports) {\n module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n module.paths = [];\n // module.parent = undefined by default\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function () {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function () {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n return module;\n };\n\n /***/\n }, /* 30 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /**\n * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization\n */\n var Tracer = {\n searchDirections: [[0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1], [-1, 0], [-1, 1]],\n create: function create(imageWrapper, labelWrapper) {\n var imageData = imageWrapper.data,\n labelData = labelWrapper.data,\n searchDirections = this.searchDirections,\n width = imageWrapper.size.x,\n pos;\n function _trace(current, color, label, edgelabel) {\n var i, y, x;\n for (i = 0; i < 7; i++) {\n y = current.cy + searchDirections[current.dir][0];\n x = current.cx + searchDirections[current.dir][1];\n pos = y * width + x;\n if (imageData[pos] === color && (labelData[pos] === 0 || labelData[pos] === label)) {\n labelData[pos] = label;\n current.cy = y;\n current.cx = x;\n return true;\n } else {\n if (labelData[pos] === 0) {\n labelData[pos] = edgelabel;\n }\n current.dir = (current.dir + 1) % 8;\n }\n }\n return false;\n }\n function vertex2D(x, y, dir) {\n return {\n dir: dir,\n x: x,\n y: y,\n next: null,\n prev: null\n };\n }\n function _contourTracing(sy, sx, label, color, edgelabel) {\n var Fv = null,\n Cv,\n P,\n ldir,\n current = {\n cx: sx,\n cy: sy,\n dir: 0\n };\n if (_trace(current, color, label, edgelabel)) {\n Fv = vertex2D(sx, sy, current.dir);\n Cv = Fv;\n ldir = current.dir;\n P = vertex2D(current.cx, current.cy, 0);\n P.prev = Cv;\n Cv.next = P;\n P.next = null;\n Cv = P;\n do {\n current.dir = (current.dir + 6) % 8;\n _trace(current, color, label, edgelabel);\n if (ldir !== current.dir) {\n Cv.dir = current.dir;\n P = vertex2D(current.cx, current.cy, 0);\n P.prev = Cv;\n Cv.next = P;\n P.next = null;\n Cv = P;\n } else {\n Cv.dir = ldir;\n Cv.x = current.cx;\n Cv.y = current.cy;\n }\n ldir = current.dir;\n } while (current.cx !== sx || current.cy !== sy);\n Fv.prev = Cv.prev;\n Cv.prev.next = Fv;\n }\n return Fv;\n }\n return {\n trace: function trace(current, color, label, edgelabel) {\n return _trace(current, color, label, edgelabel);\n },\n contourTracing: function contourTracing(sy, sx, label, color, edgelabel) {\n return _contourTracing(sy, sx, label, color, edgelabel);\n }\n };\n }\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = Tracer;\n\n /***/\n }, /* 31 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__common_array_helper__ = __webpack_require__(3);\n function Code39Reader() {\n __WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].call(this);\n }\n var properties = {\n ALPHABETH_STRING: {\n value: \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%\"\n },\n ALPHABET: {\n value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 45, 46, 32, 42, 36, 47, 43, 37]\n },\n CHARACTER_ENCODINGS: {\n value: [0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064, 0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C, 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016, 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x094, 0x0A8, 0x0A2, 0x08A, 0x02A]\n },\n ASTERISK: {\n value: 0x094\n },\n FORMAT: {\n value: \"code_39\",\n writeable: false\n }\n };\n Code39Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].prototype, properties);\n Code39Reader.prototype.constructor = Code39Reader;\n Code39Reader.prototype._decode = function () {\n var self = this,\n counters = [0, 0, 0, 0, 0, 0, 0, 0, 0],\n result = [],\n start = self._findStart(),\n decodedChar,\n lastStart,\n pattern,\n nextStart;\n if (!start) {\n return null;\n }\n nextStart = self._nextSet(self._row, start.end);\n do {\n counters = self._toCounters(nextStart, counters);\n pattern = self._toPattern(counters);\n if (pattern < 0) {\n return null;\n }\n decodedChar = self._patternToChar(pattern);\n if (decodedChar < 0) {\n return null;\n }\n result.push(decodedChar);\n lastStart = nextStart;\n nextStart += __WEBPACK_IMPORTED_MODULE_1__common_array_helper__[\"a\" /* default */].sum(counters);\n nextStart = self._nextSet(self._row, nextStart);\n } while (decodedChar !== '*');\n result.pop();\n if (!result.length) {\n return null;\n }\n if (!self._verifyTrailingWhitespace(lastStart, nextStart, counters)) {\n return null;\n }\n return {\n code: result.join(\"\"),\n start: start.start,\n end: nextStart,\n startInfo: start,\n decodedCodes: result\n };\n };\n Code39Reader.prototype._verifyTrailingWhitespace = function (lastStart, nextStart, counters) {\n var trailingWhitespaceEnd,\n patternSize = __WEBPACK_IMPORTED_MODULE_1__common_array_helper__[\"a\" /* default */].sum(counters);\n trailingWhitespaceEnd = nextStart - lastStart - patternSize;\n if (trailingWhitespaceEnd * 3 >= patternSize) {\n return true;\n }\n return false;\n };\n Code39Reader.prototype._patternToChar = function (pattern) {\n var i,\n self = this;\n for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) {\n if (self.CHARACTER_ENCODINGS[i] === pattern) {\n return String.fromCharCode(self.ALPHABET[i]);\n }\n }\n return -1;\n };\n Code39Reader.prototype._findNextWidth = function (counters, current) {\n var i,\n minWidth = Number.MAX_VALUE;\n for (i = 0; i < counters.length; i++) {\n if (counters[i] < minWidth && counters[i] > current) {\n minWidth = counters[i];\n }\n }\n return minWidth;\n };\n Code39Reader.prototype._toPattern = function (counters) {\n var numCounters = counters.length,\n maxNarrowWidth = 0,\n numWideBars = numCounters,\n wideBarWidth = 0,\n self = this,\n pattern,\n i;\n while (numWideBars > 3) {\n maxNarrowWidth = self._findNextWidth(counters, maxNarrowWidth);\n numWideBars = 0;\n pattern = 0;\n for (i = 0; i < numCounters; i++) {\n if (counters[i] > maxNarrowWidth) {\n pattern |= 1 << numCounters - 1 - i;\n numWideBars++;\n wideBarWidth += counters[i];\n }\n }\n if (numWideBars === 3) {\n for (i = 0; i < numCounters && numWideBars > 0; i++) {\n if (counters[i] > maxNarrowWidth) {\n numWideBars--;\n if (counters[i] * 2 >= wideBarWidth) {\n return -1;\n }\n }\n }\n return pattern;\n }\n }\n return -1;\n };\n Code39Reader.prototype._findStart = function () {\n var self = this,\n offset = self._nextSet(self._row),\n patternStart = offset,\n counter = [0, 0, 0, 0, 0, 0, 0, 0, 0],\n counterPos = 0,\n isWhite = false,\n i,\n j,\n whiteSpaceMustStart;\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n // find start pattern\n if (self._toPattern(counter) === self.ASTERISK) {\n whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - (i - patternStart) / 4));\n if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) {\n return {\n start: patternStart,\n end: i\n };\n }\n }\n patternStart += counter[0] + counter[1];\n for (j = 0; j < 7; j++) {\n counter[j] = counter[j + 2];\n }\n counter[7] = 0;\n counter[8] = 0;\n counterPos--;\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = Code39Reader;\n\n /***/\n }, /* 32 */\n /***/function (module, exports) {\n module.exports = dot;\n\n /**\n * Calculates the dot product of two vec2's\n *\n * @param {vec2} a the first operand\n * @param {vec2} b the second operand\n * @returns {Number} dot product of a and b\n */\n function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n }\n\n /***/\n }, /* 33 */\n /***/function (module, exports, __webpack_require__) {\n var getNative = __webpack_require__(22),\n root = __webpack_require__(5);\n\n /* Built-in method references that are verified to be native. */\n var Map = getNative(root, 'Map');\n module.exports = Map;\n\n /***/\n }, /* 34 */\n /***/function (module, exports, __webpack_require__) {\n var mapCacheClear = __webpack_require__(138),\n mapCacheDelete = __webpack_require__(139),\n mapCacheGet = __webpack_require__(140),\n mapCacheHas = __webpack_require__(141),\n mapCacheSet = __webpack_require__(142);\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n module.exports = MapCache;\n\n /***/\n }, /* 35 */\n /***/function (module, exports, __webpack_require__) {\n var baseAssignValue = __webpack_require__(21),\n eq = __webpack_require__(17);\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n module.exports = assignMergeValue;\n\n /***/\n }, /* 36 */\n /***/function (module, exports, __webpack_require__) {\n var baseAssignValue = __webpack_require__(21),\n eq = __webpack_require__(17);\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n module.exports = assignValue;\n\n /***/\n }, /* 37 */\n /***/function (module, exports, __webpack_require__) {\n var getNative = __webpack_require__(22);\n var defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }();\n module.exports = defineProperty;\n\n /***/\n }, /* 38 */\n /***/function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */(function (global) {\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n module.exports = freeGlobal;\n\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(47));\n\n /***/\n }, /* 39 */\n /***/function (module, exports, __webpack_require__) {\n var overArg = __webpack_require__(147);\n\n /** Built-in value references. */\n var getPrototype = overArg(Object.getPrototypeOf, Object);\n module.exports = getPrototype;\n\n /***/\n }, /* 40 */\n /***/function (module, exports) {\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n }\n module.exports = isPrototype;\n\n /***/\n }, /* 41 */\n /***/function (module, exports, __webpack_require__) {\n var apply = __webpack_require__(87);\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeMax = Math.max;\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? func.length - 1 : start, 0);\n return function () {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n module.exports = overRest;\n\n /***/\n }, /* 42 */\n /***/function (module, exports, __webpack_require__) {\n var baseSetToString = __webpack_require__(106),\n shortOut = __webpack_require__(148);\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n module.exports = setToString;\n\n /***/\n }, /* 43 */\n /***/function (module, exports) {\n /**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\n function identity(value) {\n return value;\n }\n module.exports = identity;\n\n /***/\n }, /* 44 */\n /***/function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */(function (module) {\n var root = __webpack_require__(5),\n stubFalse = __webpack_require__(163);\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Built-in value references. */\n var Buffer = moduleExports ? root.Buffer : undefined;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n module.exports = isBuffer;\n\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(29)(module));\n\n /***/\n }, /* 45 */\n /***/function (module, exports, __webpack_require__) {\n var baseIsTypedArray = __webpack_require__(98),\n baseUnary = __webpack_require__(109),\n nodeUtil = __webpack_require__(145);\n\n /* Node.js helper references. */\n var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n module.exports = isTypedArray;\n\n /***/\n }, /* 46 */\n /***/function (module, exports, __webpack_require__) {\n var arrayLikeKeys = __webpack_require__(88),\n baseKeysIn = __webpack_require__(99),\n isArrayLike = __webpack_require__(24);\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n module.exports = keysIn;\n\n /***/\n }, /* 47 */\n /***/function (module, exports) {\n var g;\n\n // This works in non-strict mode\n g = function () {\n return this;\n }();\n try {\n // This works if eval is allowed (see CSP)\n g = g || Function(\"return this\")() || (1, eval)(\"this\");\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n }\n\n // g can still be undefined, but nothing to do about it...\n // We return undefined, instead of nothing here, so it's\n // easier to handle this case. if(!global) { ...}\n\n module.exports = g;\n\n /***/\n }, /* 48 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: true\n });\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__common_typedefs__ = __webpack_require__(54);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__common_typedefs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__common_typedefs__);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__ = __webpack_require__(20);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__ = __webpack_require__(64);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_4__decoder_barcode_decoder__ = __webpack_require__(57);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_5__common_events__ = __webpack_require__(51);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_6__input_camera_access__ = __webpack_require__(59);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_7__common_image_debug__ = __webpack_require__(9);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_8__analytics_result_collector__ = __webpack_require__(49);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_9__config_config__ = __webpack_require__(56);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_10_input_stream__ = __webpack_require__(63);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_11_frame_grabber__ = __webpack_require__(61);\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n\n // eslint-disable-line no-unused-vars\n\n var vec2 = {\n clone: __webpack_require__(7)\n };\n var _inputStream,\n _framegrabber,\n _stopped,\n _canvasContainer = {\n ctx: {\n image: null,\n overlay: null\n },\n dom: {\n image: null,\n overlay: null\n }\n },\n _inputImageWrapper,\n _boxSize,\n _decoder,\n _workerPool = [],\n _onUIThread = true,\n _resultCollector,\n _config = {};\n function initializeData(imageWrapper) {\n initBuffers(imageWrapper);\n _decoder = __WEBPACK_IMPORTED_MODULE_4__decoder_barcode_decoder__[\"a\" /* default */].create(_config.decoder, _inputImageWrapper);\n }\n function initInputStream(cb) {\n var video;\n if (_config.inputStream.type === \"VideoStream\") {\n video = document.createElement(\"video\");\n _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__[\"a\" /* default */].createVideoStream(video);\n } else if (_config.inputStream.type === \"ImageStream\") {\n _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__[\"a\" /* default */].createImageStream();\n } else if (_config.inputStream.type === \"LiveStream\") {\n var $viewport = getViewPort();\n if ($viewport) {\n video = $viewport.querySelector(\"video\");\n if (!video) {\n video = document.createElement(\"video\");\n $viewport.appendChild(video);\n }\n }\n _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__[\"a\" /* default */].createLiveStream(video);\n __WEBPACK_IMPORTED_MODULE_6__input_camera_access__[\"a\" /* default */].request(video, _config.inputStream.constraints).then(function () {\n _inputStream.trigger(\"canrecord\");\n }).catch(function (err) {\n return cb(err);\n });\n }\n _inputStream.setAttribute(\"preload\", \"auto\");\n _inputStream.setInputStream(_config.inputStream);\n _inputStream.addEventListener(\"canrecord\", canRecord.bind(undefined, cb));\n }\n function getViewPort() {\n var target = _config.inputStream.target;\n // Check if target is already a DOM element\n if (target && target.nodeName && target.nodeType === 1) {\n return target;\n } else {\n // Use '#interactive.viewport' as a fallback selector (backwards compatibility)\n var selector = typeof target === 'string' ? target : '#interactive.viewport';\n return document.querySelector(selector);\n }\n }\n function canRecord(cb) {\n __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__[\"a\" /* default */].checkImageConstraints(_inputStream, _config.locator);\n initCanvas(_config);\n _framegrabber = __WEBPACK_IMPORTED_MODULE_11_frame_grabber__[\"a\" /* default */].create(_inputStream, _canvasContainer.dom.image);\n adjustWorkerPool(_config.numOfWorkers, function () {\n if (_config.numOfWorkers === 0) {\n initializeData();\n }\n ready(cb);\n });\n }\n function ready(cb) {\n _inputStream.play();\n cb();\n }\n function initCanvas() {\n if (typeof document !== \"undefined\") {\n var $viewport = getViewPort();\n _canvasContainer.dom.image = document.querySelector(\"canvas.imgBuffer\");\n if (!_canvasContainer.dom.image) {\n _canvasContainer.dom.image = document.createElement(\"canvas\");\n _canvasContainer.dom.image.className = \"imgBuffer\";\n if ($viewport && _config.inputStream.type === \"ImageStream\") {\n $viewport.appendChild(_canvasContainer.dom.image);\n }\n }\n _canvasContainer.ctx.image = _canvasContainer.dom.image.getContext(\"2d\");\n _canvasContainer.dom.image.width = _inputStream.getCanvasSize().x;\n _canvasContainer.dom.image.height = _inputStream.getCanvasSize().y;\n _canvasContainer.dom.overlay = document.querySelector(\"canvas.drawingBuffer\");\n if (!_canvasContainer.dom.overlay) {\n _canvasContainer.dom.overlay = document.createElement(\"canvas\");\n _canvasContainer.dom.overlay.className = \"drawingBuffer\";\n if ($viewport) {\n $viewport.appendChild(_canvasContainer.dom.overlay);\n }\n var clearFix = document.createElement(\"br\");\n clearFix.setAttribute(\"clear\", \"all\");\n if ($viewport) {\n $viewport.appendChild(clearFix);\n }\n }\n _canvasContainer.ctx.overlay = _canvasContainer.dom.overlay.getContext(\"2d\");\n _canvasContainer.dom.overlay.width = _inputStream.getCanvasSize().x;\n _canvasContainer.dom.overlay.height = _inputStream.getCanvasSize().y;\n }\n }\n function initBuffers(imageWrapper) {\n if (imageWrapper) {\n _inputImageWrapper = imageWrapper;\n } else {\n _inputImageWrapper = new __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__[\"a\" /* default */]({\n x: _inputStream.getWidth(),\n y: _inputStream.getHeight()\n });\n }\n if (true) {\n console.log(_inputImageWrapper.size);\n }\n _boxSize = [vec2.clone([0, 0]), vec2.clone([0, _inputImageWrapper.size.y]), vec2.clone([_inputImageWrapper.size.x, _inputImageWrapper.size.y]), vec2.clone([_inputImageWrapper.size.x, 0])];\n __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__[\"a\" /* default */].init(_inputImageWrapper, _config.locator);\n }\n function getBoundingBoxes() {\n if (_config.locate) {\n return __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__[\"a\" /* default */].locate();\n } else {\n return [[vec2.clone(_boxSize[0]), vec2.clone(_boxSize[1]), vec2.clone(_boxSize[2]), vec2.clone(_boxSize[3])]];\n }\n }\n function transformResult(result) {\n var topRight = _inputStream.getTopRight(),\n xOffset = topRight.x,\n yOffset = topRight.y,\n i;\n if (xOffset === 0 && yOffset === 0) {\n return;\n }\n if (result.barcodes) {\n for (i = 0; i < result.barcodes.length; i++) {\n transformResult(result.barcodes[i]);\n }\n }\n if (result.line && result.line.length === 2) {\n moveLine(result.line);\n }\n if (result.box) {\n moveBox(result.box);\n }\n if (result.boxes && result.boxes.length > 0) {\n for (i = 0; i < result.boxes.length; i++) {\n moveBox(result.boxes[i]);\n }\n }\n function moveBox(box) {\n var corner = box.length;\n while (corner--) {\n box[corner][0] += xOffset;\n box[corner][1] += yOffset;\n }\n }\n function moveLine(line) {\n line[0].x += xOffset;\n line[0].y += yOffset;\n line[1].x += xOffset;\n line[1].y += yOffset;\n }\n }\n function addResult(result, imageData) {\n if (!imageData || !_resultCollector) {\n return;\n }\n if (result.barcodes) {\n result.barcodes.filter(function (barcode) {\n return barcode.codeResult;\n }).forEach(function (barcode) {\n return addResult(barcode, imageData);\n });\n } else if (result.codeResult) {\n _resultCollector.addResult(imageData, _inputStream.getCanvasSize(), result.codeResult);\n }\n }\n function hasCodeResult(result) {\n return result && (result.barcodes ? result.barcodes.some(function (barcode) {\n return barcode.codeResult;\n }) : result.codeResult);\n }\n function publishResult(result, imageData) {\n var resultToPublish = result;\n if (result && _onUIThread) {\n transformResult(result);\n addResult(result, imageData);\n resultToPublish = result.barcodes || result;\n }\n __WEBPACK_IMPORTED_MODULE_5__common_events__[\"a\" /* default */].publish(\"processed\", resultToPublish);\n if (hasCodeResult(result)) {\n __WEBPACK_IMPORTED_MODULE_5__common_events__[\"a\" /* default */].publish(\"detected\", resultToPublish);\n }\n }\n function locateAndDecode() {\n var result, boxes;\n boxes = getBoundingBoxes();\n if (boxes) {\n result = _decoder.decodeFromBoundingBoxes(boxes);\n result = result || {};\n result.boxes = boxes;\n publishResult(result, _inputImageWrapper.data);\n } else {\n publishResult();\n }\n }\n function update() {\n var availableWorker;\n if (_onUIThread) {\n if (_workerPool.length > 0) {\n availableWorker = _workerPool.filter(function (workerThread) {\n return !workerThread.busy;\n })[0];\n if (availableWorker) {\n _framegrabber.attachData(availableWorker.imageData);\n } else {\n return; // all workers are busy\n }\n } else {\n _framegrabber.attachData(_inputImageWrapper.data);\n }\n if (_framegrabber.grab()) {\n if (availableWorker) {\n availableWorker.busy = true;\n availableWorker.worker.postMessage({\n cmd: 'process',\n imageData: availableWorker.imageData\n }, [availableWorker.imageData.buffer]);\n } else {\n locateAndDecode();\n }\n }\n } else {\n locateAndDecode();\n }\n }\n function startContinuousUpdate() {\n var next = null,\n delay = 1000 / (_config.frequency || 60);\n _stopped = false;\n (function frame(timestamp) {\n next = next || timestamp;\n if (!_stopped) {\n if (timestamp >= next) {\n next += delay;\n update();\n }\n window.requestAnimFrame(frame);\n }\n })(performance.now());\n }\n function _start() {\n if (_onUIThread && _config.inputStream.type === \"LiveStream\") {\n startContinuousUpdate();\n } else {\n update();\n }\n }\n function initWorker(cb) {\n var blobURL,\n workerThread = {\n worker: undefined,\n imageData: new Uint8Array(_inputStream.getWidth() * _inputStream.getHeight()),\n busy: true\n };\n blobURL = generateWorkerBlob();\n workerThread.worker = new Worker(blobURL);\n workerThread.worker.onmessage = function (e) {\n if (e.data.event === 'initialized') {\n URL.revokeObjectURL(blobURL);\n workerThread.busy = false;\n workerThread.imageData = new Uint8Array(e.data.imageData);\n if (true) {\n console.log(\"Worker initialized\");\n }\n return cb(workerThread);\n } else if (e.data.event === 'processed') {\n workerThread.imageData = new Uint8Array(e.data.imageData);\n workerThread.busy = false;\n publishResult(e.data.result, workerThread.imageData);\n } else if (e.data.event === 'error') {\n if (true) {\n console.log(\"Worker error: \" + e.data.message);\n }\n }\n };\n workerThread.worker.postMessage({\n cmd: 'init',\n size: {\n x: _inputStream.getWidth(),\n y: _inputStream.getHeight()\n },\n imageData: workerThread.imageData,\n config: configForWorker(_config)\n }, [workerThread.imageData.buffer]);\n }\n function configForWorker(config) {\n return _extends({}, config, {\n inputStream: _extends({}, config.inputStream, {\n target: null\n })\n });\n }\n function workerInterface(factory) {\n /* eslint-disable no-undef*/\n if (factory) {\n var Quagga = factory().default;\n if (!Quagga) {\n self.postMessage({\n 'event': 'error',\n message: 'Quagga could not be created'\n });\n return;\n }\n }\n var imageWrapper;\n self.onmessage = function (e) {\n if (e.data.cmd === 'init') {\n var config = e.data.config;\n config.numOfWorkers = 0;\n imageWrapper = new Quagga.ImageWrapper({\n x: e.data.size.x,\n y: e.data.size.y\n }, new Uint8Array(e.data.imageData));\n Quagga.init(config, ready, imageWrapper);\n Quagga.onProcessed(onProcessed);\n } else if (e.data.cmd === 'process') {\n imageWrapper.data = new Uint8Array(e.data.imageData);\n Quagga.start();\n } else if (e.data.cmd === 'setReaders') {\n Quagga.setReaders(e.data.readers);\n }\n };\n function onProcessed(result) {\n self.postMessage({\n 'event': 'processed',\n imageData: imageWrapper.data,\n result: result\n }, [imageWrapper.data.buffer]);\n }\n function ready() {\n // eslint-disable-line\n self.postMessage({\n 'event': 'initialized',\n imageData: imageWrapper.data\n }, [imageWrapper.data.buffer]);\n }\n\n /* eslint-enable */\n }\n\n function generateWorkerBlob() {\n var blob, factorySource;\n\n /* jshint ignore:start */\n if (typeof __factorySource__ !== 'undefined') {\n factorySource = __factorySource__; // eslint-disable-line no-undef\n }\n /* jshint ignore:end */\n\n blob = new Blob(['(' + workerInterface.toString() + ')(' + factorySource + ');'], {\n type: 'text/javascript'\n });\n return window.URL.createObjectURL(blob);\n }\n function _setReaders(readers) {\n if (_decoder) {\n _decoder.setReaders(readers);\n } else if (_onUIThread && _workerPool.length > 0) {\n _workerPool.forEach(function (workerThread) {\n workerThread.worker.postMessage({\n cmd: 'setReaders',\n readers: readers\n });\n });\n }\n }\n function adjustWorkerPool(capacity, cb) {\n var increaseBy = capacity - _workerPool.length;\n if (increaseBy === 0) {\n return cb && cb();\n }\n if (increaseBy < 0) {\n var workersToTerminate = _workerPool.slice(increaseBy);\n workersToTerminate.forEach(function (workerThread) {\n workerThread.worker.terminate();\n if (true) {\n console.log(\"Worker terminated!\");\n }\n });\n _workerPool = _workerPool.slice(0, increaseBy);\n return cb && cb();\n } else {\n var workerInitialized = function workerInitialized(workerThread) {\n _workerPool.push(workerThread);\n if (_workerPool.length >= capacity) {\n cb && cb();\n }\n };\n for (var i = 0; i < increaseBy; i++) {\n initWorker(workerInitialized);\n }\n }\n }\n\n /* harmony default export */\n __webpack_exports__[\"default\"] = {\n init: function init(config, cb, imageWrapper) {\n _config = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()({}, __WEBPACK_IMPORTED_MODULE_9__config_config__[\"a\" /* default */], config);\n if (imageWrapper) {\n _onUIThread = false;\n initializeData(imageWrapper);\n return cb();\n } else {\n initInputStream(cb);\n }\n },\n start: function start() {\n _start();\n },\n stop: function stop() {\n _stopped = true;\n adjustWorkerPool(0);\n if (_config.inputStream.type === \"LiveStream\") {\n __WEBPACK_IMPORTED_MODULE_6__input_camera_access__[\"a\" /* default */].release();\n _inputStream.clearEventHandlers();\n }\n },\n pause: function pause() {\n _stopped = true;\n },\n onDetected: function onDetected(callback) {\n __WEBPACK_IMPORTED_MODULE_5__common_events__[\"a\" /* default */].subscribe(\"detected\", callback);\n },\n offDetected: function offDetected(callback) {\n __WEBPACK_IMPORTED_MODULE_5__common_events__[\"a\" /* default */].unsubscribe(\"detected\", callback);\n },\n onProcessed: function onProcessed(callback) {\n __WEBPACK_IMPORTED_MODULE_5__common_events__[\"a\" /* default */].subscribe(\"processed\", callback);\n },\n offProcessed: function offProcessed(callback) {\n __WEBPACK_IMPORTED_MODULE_5__common_events__[\"a\" /* default */].unsubscribe(\"processed\", callback);\n },\n setReaders: function setReaders(readers) {\n _setReaders(readers);\n },\n registerResultCollector: function registerResultCollector(resultCollector) {\n if (resultCollector && typeof resultCollector.addResult === 'function') {\n _resultCollector = resultCollector;\n }\n },\n canvas: _canvasContainer,\n decodeSingle: function decodeSingle(config, resultCallback) {\n var _this = this;\n config = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()({\n inputStream: {\n type: \"ImageStream\",\n sequence: false,\n size: 800,\n src: config.src\n },\n numOfWorkers: true && config.debug ? 0 : 1,\n locator: {\n halfSample: false\n }\n }, config);\n this.init(config, function () {\n __WEBPACK_IMPORTED_MODULE_5__common_events__[\"a\" /* default */].once(\"processed\", function (result) {\n _this.stop();\n resultCallback.call(null, result);\n }, true);\n _start();\n });\n },\n ImageWrapper: __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__[\"a\" /* default */],\n ImageDebug: __WEBPACK_IMPORTED_MODULE_7__common_image_debug__[\"a\" /* default */],\n ResultCollector: __WEBPACK_IMPORTED_MODULE_8__analytics_result_collector__[\"a\" /* default */],\n CameraAccess: __WEBPACK_IMPORTED_MODULE_6__input_camera_access__[\"a\" /* default */]\n };\n\n /***/\n }, /* 49 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__common_image_debug__ = __webpack_require__(9);\n function contains(codeResult, list) {\n if (list) {\n return list.some(function (item) {\n return Object.keys(item).every(function (key) {\n return item[key] === codeResult[key];\n });\n });\n }\n return false;\n }\n function passesFilter(codeResult, filter) {\n if (typeof filter === 'function') {\n return filter(codeResult);\n }\n return true;\n }\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = {\n create: function create(config) {\n var canvas = document.createElement(\"canvas\"),\n ctx = canvas.getContext(\"2d\"),\n results = [],\n capacity = config.capacity || 20,\n capture = config.capture === true;\n function matchesConstraints(codeResult) {\n return capacity && codeResult && !contains(codeResult, config.blacklist) && passesFilter(codeResult, config.filter);\n }\n return {\n addResult: function addResult(data, imageSize, codeResult) {\n var result = {};\n if (matchesConstraints(codeResult)) {\n capacity--;\n result.codeResult = codeResult;\n if (capture) {\n canvas.width = imageSize.x;\n canvas.height = imageSize.y;\n __WEBPACK_IMPORTED_MODULE_0__common_image_debug__[\"a\" /* default */].drawImage(data, imageSize, ctx);\n result.frame = canvas.toDataURL();\n }\n results.push(result);\n }\n },\n getResults: function getResults() {\n return results;\n }\n };\n }\n };\n\n /***/\n }, /* 50 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n var vec2 = {\n clone: __webpack_require__(7),\n dot: __webpack_require__(32)\n };\n /**\n * Creates a cluster for grouping similar orientations of datapoints\n */\n /* harmony default export */\n __webpack_exports__[\"a\"] = {\n create: function create(point, threshold) {\n var points = [],\n center = {\n rad: 0,\n vec: vec2.clone([0, 0])\n },\n pointMap = {};\n function init() {\n _add(point);\n updateCenter();\n }\n function _add(pointToAdd) {\n pointMap[pointToAdd.id] = pointToAdd;\n points.push(pointToAdd);\n }\n function updateCenter() {\n var i,\n sum = 0;\n for (i = 0; i < points.length; i++) {\n sum += points[i].rad;\n }\n center.rad = sum / points.length;\n center.vec = vec2.clone([Math.cos(center.rad), Math.sin(center.rad)]);\n }\n init();\n return {\n add: function add(pointToAdd) {\n if (!pointMap[pointToAdd.id]) {\n _add(pointToAdd);\n updateCenter();\n }\n },\n fits: function fits(otherPoint) {\n // check cosine similarity to center-angle\n var similarity = Math.abs(vec2.dot(otherPoint.point.vec, center.vec));\n if (similarity > threshold) {\n return true;\n }\n return false;\n },\n getPoints: function getPoints() {\n return points;\n },\n getCenter: function getCenter() {\n return center;\n }\n };\n },\n createPoint: function createPoint(newPoint, id, property) {\n return {\n rad: newPoint[property],\n point: newPoint,\n id: id\n };\n }\n };\n\n /***/\n }, /* 51 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = function () {\n var events = {};\n function getEvent(eventName) {\n if (!events[eventName]) {\n events[eventName] = {\n subscribers: []\n };\n }\n return events[eventName];\n }\n function clearEvents() {\n events = {};\n }\n function publishSubscription(subscription, data) {\n if (subscription.async) {\n setTimeout(function () {\n subscription.callback(data);\n }, 4);\n } else {\n subscription.callback(data);\n }\n }\n function _subscribe(event, callback, async) {\n var subscription;\n if (typeof callback === \"function\") {\n subscription = {\n callback: callback,\n async: async\n };\n } else {\n subscription = callback;\n if (!subscription.callback) {\n throw \"Callback was not specified on options\";\n }\n }\n getEvent(event).subscribers.push(subscription);\n }\n return {\n subscribe: function subscribe(event, callback, async) {\n return _subscribe(event, callback, async);\n },\n publish: function publish(eventName, data) {\n var event = getEvent(eventName),\n subscribers = event.subscribers;\n\n // Publish one-time subscriptions\n subscribers.filter(function (subscriber) {\n return !!subscriber.once;\n }).forEach(function (subscriber) {\n publishSubscription(subscriber, data);\n });\n\n // remove them from the subscriber\n event.subscribers = subscribers.filter(function (subscriber) {\n return !subscriber.once;\n });\n\n // publish the rest\n event.subscribers.forEach(function (subscriber) {\n publishSubscription(subscriber, data);\n });\n },\n once: function once(event, callback, async) {\n _subscribe(event, {\n callback: callback,\n async: async,\n once: true\n });\n },\n unsubscribe: function unsubscribe(eventName, callback) {\n var event;\n if (eventName) {\n event = getEvent(eventName);\n if (event && callback) {\n event.subscribers = event.subscribers.filter(function (subscriber) {\n return subscriber.callback !== callback;\n });\n } else {\n event.subscribers = [];\n }\n } else {\n clearEvents();\n }\n }\n };\n }();\n\n /***/\n }, /* 52 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony export (immutable) */\n __webpack_exports__[\"b\"] = enumerateDevices;\n /* harmony export (immutable) */\n __webpack_exports__[\"a\"] = getUserMedia;\n function enumerateDevices() {\n if (navigator.mediaDevices && typeof navigator.mediaDevices.enumerateDevices === 'function') {\n return navigator.mediaDevices.enumerateDevices();\n }\n return Promise.reject(new Error('enumerateDevices is not defined'));\n }\n ;\n function getUserMedia(constraints) {\n if (navigator.mediaDevices && typeof navigator.mediaDevices.getUserMedia === 'function') {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n return Promise.reject(new Error('getUserMedia is not defined'));\n }\n\n /***/\n }, /* 53 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /**\n * Construct representing a part of another {ImageWrapper}. Shares data\n * between the parent and the child.\n * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner)\n * @param size {ImageRef} The size of the resulting image\n * @param I {ImageWrapper} The {ImageWrapper} to share from\n * @returns {SubImage} A shared part of the original image\n */\n function SubImage(from, size, I) {\n if (!I) {\n I = {\n data: null,\n size: size\n };\n }\n this.data = I.data;\n this.originalSize = I.size;\n this.I = I;\n this.from = from;\n this.size = size;\n }\n\n /**\n * Displays the {SubImage} in a given canvas\n * @param canvas {Canvas} The canvas element to write to\n * @param scale {Number} Scale which is applied to each pixel-value\n */\n SubImage.prototype.show = function (canvas, scale) {\n var ctx, frame, data, current, y, x, pixel;\n if (!scale) {\n scale = 1.0;\n }\n ctx = canvas.getContext('2d');\n canvas.width = this.size.x;\n canvas.height = this.size.y;\n frame = ctx.getImageData(0, 0, canvas.width, canvas.height);\n data = frame.data;\n current = 0;\n for (y = 0; y < this.size.y; y++) {\n for (x = 0; x < this.size.x; x++) {\n pixel = y * this.size.x + x;\n current = this.get(x, y) * scale;\n data[pixel * 4 + 0] = current;\n data[pixel * 4 + 1] = current;\n data[pixel * 4 + 2] = current;\n data[pixel * 4 + 3] = 255;\n }\n }\n frame.data = data;\n ctx.putImageData(frame, 0, 0);\n };\n\n /**\n * Retrieves a given pixel position from the {SubImage}\n * @param x {Number} The x-position\n * @param y {Number} The y-position\n * @returns {Number} The grayscale value at the pixel-position\n */\n SubImage.prototype.get = function (x, y) {\n return this.data[(this.from.y + y) * this.originalSize.x + this.from.x + x];\n };\n\n /**\n * Updates the underlying data from a given {ImageWrapper}\n * @param image {ImageWrapper} The updated image\n */\n SubImage.prototype.updateData = function (image) {\n this.originalSize = image.size;\n this.data = image.data;\n };\n\n /**\n * Updates the position of the shared area\n * @param from {x,y} The new location\n * @returns {SubImage} returns {this} for possible chaining\n */\n SubImage.prototype.updateFrom = function (from) {\n this.from = from;\n return this;\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = SubImage;\n\n /***/\n }, /* 54 */\n /***/function (module, exports) {\n /*\n * typedefs.js\n * Normalizes browser-specific prefixes\n */\n\n if (typeof window !== 'undefined') {\n window.requestAnimFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function ( /* function FrameRequestCallback */callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n }();\n }\n Math.imul = Math.imul || function (a, b) {\n var ah = a >>> 16 & 0xffff,\n al = a & 0xffff,\n bh = b >>> 16 & 0xffff,\n bl = b & 0xffff;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return al * bl + (ah * bl + al * bh << 16 >>> 0) | 0;\n };\n if (typeof Object.assign !== 'function') {\n Object.assign = function (target) {\n // .length of function is 2\n 'use strict';\n\n if (target === null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n if (nextSource !== null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n };\n }\n\n /***/\n }, /* 55 */\n /***/function (module, exports) {\n module.exports = {\n inputStream: {\n name: \"Live\",\n type: \"LiveStream\",\n constraints: {\n width: 640,\n height: 480,\n // aspectRatio: 640/480, // optional\n facingMode: \"environment\"\n },\n area: {\n top: \"0%\",\n right: \"0%\",\n left: \"0%\",\n bottom: \"0%\"\n },\n singleChannel: false // true: only the red color-channel is read\n },\n\n locate: true,\n numOfWorkers: 0,\n decoder: {\n readers: ['code_128_reader'],\n debug: {\n drawBoundingBox: false,\n showFrequency: false,\n drawScanline: false,\n showPattern: false\n }\n },\n locator: {\n halfSample: true,\n patchSize: \"medium\",\n // x-small, small, medium, large, x-large\n debug: {\n showCanvas: false,\n showPatches: false,\n showFoundPatches: false,\n showSkeleton: false,\n showLabels: false,\n showPatchLabels: false,\n showRemainingPatchLabels: false,\n boxFromPatches: {\n showTransformed: false,\n showTransformedBox: false,\n showBB: false\n }\n }\n }\n };\n\n /***/\n }, /* 56 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n var config = void 0;\n if (true) {\n config = __webpack_require__(55);\n } else if (ENV.node) {\n config = require('./config.node.js');\n } else {\n config = require('./config.prod.js');\n }\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = config;\n\n /***/\n }, /* 57 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__bresenham__ = __webpack_require__(58);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__common_image_debug__ = __webpack_require__(9);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__ = __webpack_require__(69);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_3__reader_ean_reader__ = __webpack_require__(4);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__ = __webpack_require__(31);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__ = __webpack_require__(70);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__ = __webpack_require__(68);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__ = __webpack_require__(77);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__ = __webpack_require__(74);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__ = __webpack_require__(72);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__ = __webpack_require__(73);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__ = __webpack_require__(76);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__ = __webpack_require__(75);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_13__reader_2of5_reader__ = __webpack_require__(67);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_14__reader_code_93_reader__ = __webpack_require__(71);\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var READERS = {\n code_128_reader: __WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__[\"a\" /* default */],\n ean_reader: __WEBPACK_IMPORTED_MODULE_3__reader_ean_reader__[\"a\" /* default */],\n ean_5_reader: __WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__[\"a\" /* default */],\n ean_2_reader: __WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__[\"a\" /* default */],\n ean_8_reader: __WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__[\"a\" /* default */],\n code_39_reader: __WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__[\"a\" /* default */],\n code_39_vin_reader: __WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__[\"a\" /* default */],\n codabar_reader: __WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__[\"a\" /* default */],\n upc_reader: __WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__[\"a\" /* default */],\n upc_e_reader: __WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__[\"a\" /* default */],\n i2of5_reader: __WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__[\"a\" /* default */],\n '2of5_reader': __WEBPACK_IMPORTED_MODULE_13__reader_2of5_reader__[\"a\" /* default */],\n code_93_reader: __WEBPACK_IMPORTED_MODULE_14__reader_code_93_reader__[\"a\" /* default */]\n };\n /* harmony default export */\n __webpack_exports__[\"a\"] = {\n create: function create(config, inputImageWrapper) {\n var _canvas = {\n ctx: {\n frequency: null,\n pattern: null,\n overlay: null\n },\n dom: {\n frequency: null,\n pattern: null,\n overlay: null\n }\n },\n _barcodeReaders = [];\n initCanvas();\n initReaders();\n initConfig();\n function initCanvas() {\n if (true && typeof document !== 'undefined') {\n var $debug = document.querySelector(\"#debug.detection\");\n _canvas.dom.frequency = document.querySelector(\"canvas.frequency\");\n if (!_canvas.dom.frequency) {\n _canvas.dom.frequency = document.createElement(\"canvas\");\n _canvas.dom.frequency.className = \"frequency\";\n if ($debug) {\n $debug.appendChild(_canvas.dom.frequency);\n }\n }\n _canvas.ctx.frequency = _canvas.dom.frequency.getContext(\"2d\");\n _canvas.dom.pattern = document.querySelector(\"canvas.patternBuffer\");\n if (!_canvas.dom.pattern) {\n _canvas.dom.pattern = document.createElement(\"canvas\");\n _canvas.dom.pattern.className = \"patternBuffer\";\n if ($debug) {\n $debug.appendChild(_canvas.dom.pattern);\n }\n }\n _canvas.ctx.pattern = _canvas.dom.pattern.getContext(\"2d\");\n _canvas.dom.overlay = document.querySelector(\"canvas.drawingBuffer\");\n if (_canvas.dom.overlay) {\n _canvas.ctx.overlay = _canvas.dom.overlay.getContext(\"2d\");\n }\n }\n }\n function initReaders() {\n config.readers.forEach(function (readerConfig) {\n var reader,\n configuration = {},\n supplements = [];\n if ((typeof readerConfig === 'undefined' ? 'undefined' : _typeof(readerConfig)) === 'object') {\n reader = readerConfig.format;\n configuration = readerConfig.config;\n } else if (typeof readerConfig === 'string') {\n reader = readerConfig;\n }\n if (true) {\n console.log(\"Before registering reader: \", reader);\n }\n if (configuration.supplements) {\n supplements = configuration.supplements.map(function (supplement) {\n return new READERS[supplement]();\n });\n }\n _barcodeReaders.push(new READERS[reader](configuration, supplements));\n });\n if (true) {\n console.log(\"Registered Readers: \" + _barcodeReaders.map(function (reader) {\n return JSON.stringify({\n format: reader.FORMAT,\n config: reader.config\n });\n }).join(', '));\n }\n }\n function initConfig() {\n if (true && typeof document !== 'undefined') {\n var i,\n vis = [{\n node: _canvas.dom.frequency,\n prop: config.debug.showFrequency\n }, {\n node: _canvas.dom.pattern,\n prop: config.debug.showPattern\n }];\n for (i = 0; i < vis.length; i++) {\n if (vis[i].prop === true) {\n vis[i].node.style.display = \"block\";\n } else {\n vis[i].node.style.display = \"none\";\n }\n }\n }\n }\n\n /**\n * extend the line on both ends\n * @param {Array} line\n * @param {Number} angle\n */\n function getExtendedLine(line, angle, ext) {\n function extendLine(amount) {\n var extension = {\n y: amount * Math.sin(angle),\n x: amount * Math.cos(angle)\n };\n line[0].y -= extension.y;\n line[0].x -= extension.x;\n line[1].y += extension.y;\n line[1].x += extension.x;\n }\n\n // check if inside image\n extendLine(ext);\n while (ext > 1 && (!inputImageWrapper.inImageWithBorder(line[0], 0) || !inputImageWrapper.inImageWithBorder(line[1], 0))) {\n ext -= Math.ceil(ext / 2);\n extendLine(-ext);\n }\n return line;\n }\n function getLine(box) {\n return [{\n x: (box[1][0] - box[0][0]) / 2 + box[0][0],\n y: (box[1][1] - box[0][1]) / 2 + box[0][1]\n }, {\n x: (box[3][0] - box[2][0]) / 2 + box[2][0],\n y: (box[3][1] - box[2][1]) / 2 + box[2][1]\n }];\n }\n function tryDecode(line) {\n var result = null,\n i,\n barcodeLine = __WEBPACK_IMPORTED_MODULE_0__bresenham__[\"a\" /* default */].getBarcodeLine(inputImageWrapper, line[0], line[1]);\n if (true && config.debug.showFrequency) {\n __WEBPACK_IMPORTED_MODULE_1__common_image_debug__[\"a\" /* default */].drawPath(line, {\n x: 'x',\n y: 'y'\n }, _canvas.ctx.overlay, {\n color: 'red',\n lineWidth: 3\n });\n __WEBPACK_IMPORTED_MODULE_0__bresenham__[\"a\" /* default */].debug.printFrequency(barcodeLine.line, _canvas.dom.frequency);\n }\n __WEBPACK_IMPORTED_MODULE_0__bresenham__[\"a\" /* default */].toBinaryLine(barcodeLine);\n if (true && config.debug.showPattern) {\n __WEBPACK_IMPORTED_MODULE_0__bresenham__[\"a\" /* default */].debug.printPattern(barcodeLine.line, _canvas.dom.pattern);\n }\n for (i = 0; i < _barcodeReaders.length && result === null; i++) {\n result = _barcodeReaders[i].decodePattern(barcodeLine.line);\n }\n if (result === null) {\n return null;\n }\n return {\n codeResult: result,\n barcodeLine: barcodeLine\n };\n }\n\n /**\n * This method slices the given area apart and tries to detect a barcode-pattern\n * for each slice. It returns the decoded barcode, or null if nothing was found\n * @param {Array} box\n * @param {Array} line\n * @param {Number} lineAngle\n */\n function tryDecodeBruteForce(box, line, lineAngle) {\n var sideLength = Math.sqrt(Math.pow(box[1][0] - box[0][0], 2) + Math.pow(box[1][1] - box[0][1], 2)),\n i,\n slices = 16,\n result = null,\n dir,\n extension,\n xdir = Math.sin(lineAngle),\n ydir = Math.cos(lineAngle);\n for (i = 1; i < slices && result === null; i++) {\n // move line perpendicular to angle\n dir = sideLength / slices * i * (i % 2 === 0 ? -1 : 1);\n extension = {\n y: dir * xdir,\n x: dir * ydir\n };\n line[0].y += extension.x;\n line[0].x -= extension.y;\n line[1].y += extension.x;\n line[1].x -= extension.y;\n result = tryDecode(line);\n }\n return result;\n }\n function getLineLength(line) {\n return Math.sqrt(Math.pow(Math.abs(line[1].y - line[0].y), 2) + Math.pow(Math.abs(line[1].x - line[0].x), 2));\n }\n\n /**\n * With the help of the configured readers (Code128 or EAN) this function tries to detect a\n * valid barcode pattern within the given area.\n * @param {Object} box The area to search in\n * @returns {Object} the result {codeResult, line, angle, pattern, threshold}\n */\n function _decodeFromBoundingBox(box) {\n var line,\n lineAngle,\n ctx = _canvas.ctx.overlay,\n result,\n lineLength;\n if (true) {\n if (config.debug.drawBoundingBox && ctx) {\n __WEBPACK_IMPORTED_MODULE_1__common_image_debug__[\"a\" /* default */].drawPath(box, {\n x: 0,\n y: 1\n }, ctx, {\n color: \"blue\",\n lineWidth: 2\n });\n }\n }\n line = getLine(box);\n lineLength = getLineLength(line);\n lineAngle = Math.atan2(line[1].y - line[0].y, line[1].x - line[0].x);\n line = getExtendedLine(line, lineAngle, Math.floor(lineLength * 0.1));\n if (line === null) {\n return null;\n }\n result = tryDecode(line);\n if (result === null) {\n result = tryDecodeBruteForce(box, line, lineAngle);\n }\n if (result === null) {\n return null;\n }\n if (true && result && config.debug.drawScanline && ctx) {\n __WEBPACK_IMPORTED_MODULE_1__common_image_debug__[\"a\" /* default */].drawPath(line, {\n x: 'x',\n y: 'y'\n }, ctx, {\n color: 'red',\n lineWidth: 3\n });\n }\n return {\n codeResult: result.codeResult,\n line: line,\n angle: lineAngle,\n pattern: result.barcodeLine.line,\n threshold: result.barcodeLine.threshold\n };\n }\n return {\n decodeFromBoundingBox: function decodeFromBoundingBox(box) {\n return _decodeFromBoundingBox(box);\n },\n decodeFromBoundingBoxes: function decodeFromBoundingBoxes(boxes) {\n var i,\n result,\n barcodes = [],\n multiple = config.multiple;\n for (i = 0; i < boxes.length; i++) {\n var box = boxes[i];\n result = _decodeFromBoundingBox(box) || {};\n result.box = box;\n if (multiple) {\n barcodes.push(result);\n } else if (result.codeResult) {\n return result;\n }\n }\n if (multiple) {\n return {\n barcodes: barcodes\n };\n }\n },\n setReaders: function setReaders(readers) {\n config.readers = readers;\n _barcodeReaders.length = 0;\n initReaders();\n }\n };\n }\n };\n\n /***/\n }, /* 58 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__ = __webpack_require__(20);\n var Bresenham = {};\n var Slope = {\n DIR: {\n UP: 1,\n DOWN: -1\n }\n };\n /**\n * Scans a line of the given image from point p1 to p2 and returns a result object containing\n * gray-scale values (0-255) of the underlying pixels in addition to the min\n * and max values.\n * @param {Object} imageWrapper\n * @param {Object} p1 The start point {x,y}\n * @param {Object} p2 The end point {x,y}\n * @returns {line, min, max}\n */\n Bresenham.getBarcodeLine = function (imageWrapper, p1, p2) {\n var x0 = p1.x | 0,\n y0 = p1.y | 0,\n x1 = p2.x | 0,\n y1 = p2.y | 0,\n steep = Math.abs(y1 - y0) > Math.abs(x1 - x0),\n deltax,\n deltay,\n error,\n ystep,\n y,\n tmp,\n x,\n line = [],\n imageData = imageWrapper.data,\n width = imageWrapper.size.x,\n sum = 0,\n val,\n min = 255,\n max = 0;\n function read(a, b) {\n val = imageData[b * width + a];\n sum += val;\n min = val < min ? val : min;\n max = val > max ? val : max;\n line.push(val);\n }\n if (steep) {\n tmp = x0;\n x0 = y0;\n y0 = tmp;\n tmp = x1;\n x1 = y1;\n y1 = tmp;\n }\n if (x0 > x1) {\n tmp = x0;\n x0 = x1;\n x1 = tmp;\n tmp = y0;\n y0 = y1;\n y1 = tmp;\n }\n deltax = x1 - x0;\n deltay = Math.abs(y1 - y0);\n error = deltax / 2 | 0;\n y = y0;\n ystep = y0 < y1 ? 1 : -1;\n for (x = x0; x < x1; x++) {\n if (steep) {\n read(y, x);\n } else {\n read(x, y);\n }\n error = error - deltay;\n if (error < 0) {\n y = y + ystep;\n error = error + deltax;\n }\n }\n return {\n line: line,\n min: min,\n max: max\n };\n };\n\n /**\n * Converts the result from getBarcodeLine into a binary representation\n * also considering the frequency and slope of the signal for more robust results\n * @param {Object} result {line, min, max}\n */\n Bresenham.toBinaryLine = function (result) {\n var min = result.min,\n max = result.max,\n line = result.line,\n slope,\n slope2,\n center = min + (max - min) / 2,\n extrema = [],\n currentDir,\n dir,\n threshold = (max - min) / 12,\n rThreshold = -threshold,\n i,\n j;\n\n // 1. find extrema\n currentDir = line[0] > center ? Slope.DIR.UP : Slope.DIR.DOWN;\n extrema.push({\n pos: 0,\n val: line[0]\n });\n for (i = 0; i < line.length - 2; i++) {\n slope = line[i + 1] - line[i];\n slope2 = line[i + 2] - line[i + 1];\n if (slope + slope2 < rThreshold && line[i + 1] < center * 1.5) {\n dir = Slope.DIR.DOWN;\n } else if (slope + slope2 > threshold && line[i + 1] > center * 0.5) {\n dir = Slope.DIR.UP;\n } else {\n dir = currentDir;\n }\n if (currentDir !== dir) {\n extrema.push({\n pos: i,\n val: line[i]\n });\n currentDir = dir;\n }\n }\n extrema.push({\n pos: line.length,\n val: line[line.length - 1]\n });\n for (j = extrema[0].pos; j < extrema[1].pos; j++) {\n line[j] = line[j] > center ? 0 : 1;\n }\n\n // iterate over extrema and convert to binary based on avg between minmax\n for (i = 1; i < extrema.length - 1; i++) {\n if (extrema[i + 1].val > extrema[i].val) {\n threshold = extrema[i].val + (extrema[i + 1].val - extrema[i].val) / 3 * 2 | 0;\n } else {\n threshold = extrema[i + 1].val + (extrema[i].val - extrema[i + 1].val) / 3 | 0;\n }\n for (j = extrema[i].pos; j < extrema[i + 1].pos; j++) {\n line[j] = line[j] > threshold ? 0 : 1;\n }\n }\n return {\n line: line,\n threshold: threshold\n };\n };\n\n /**\n * Used for development only\n */\n Bresenham.debug = {\n printFrequency: function printFrequency(line, canvas) {\n var i,\n ctx = canvas.getContext(\"2d\");\n canvas.width = line.length;\n canvas.height = 256;\n ctx.beginPath();\n ctx.strokeStyle = \"blue\";\n for (i = 0; i < line.length; i++) {\n ctx.moveTo(i, 255);\n ctx.lineTo(i, 255 - line[i]);\n }\n ctx.stroke();\n ctx.closePath();\n },\n printPattern: function printPattern(line, canvas) {\n var ctx = canvas.getContext(\"2d\"),\n i;\n canvas.width = line.length;\n ctx.fillColor = \"black\";\n for (i = 0; i < line.length; i++) {\n if (line[i] === 1) {\n ctx.fillRect(i, 0, 1, 100);\n }\n }\n }\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = Bresenham;\n\n /***/\n }, /* 59 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0_lodash_pick__ = __webpack_require__(162);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0_lodash_pick___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_pick__);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1_mediaDevices__ = __webpack_require__(52);\n /* unused harmony export pickConstraints */\n\n var facingMatching = {\n \"user\": /front/i,\n \"environment\": /back/i\n };\n var streamRef;\n function waitForVideo(video) {\n return new Promise(function (resolve, reject) {\n var attempts = 10;\n function checkVideo() {\n if (attempts > 0) {\n if (video.videoWidth > 10 && video.videoHeight > 10) {\n if (true) {\n console.log(video.videoWidth + \"px x \" + video.videoHeight + \"px\");\n }\n resolve();\n } else {\n window.setTimeout(checkVideo, 500);\n }\n } else {\n reject('Unable to play video stream. Is webcam working?');\n }\n attempts--;\n }\n checkVideo();\n });\n }\n\n /**\n * Tries to attach the camera-stream to a given video-element\n * and calls the callback function when the content is ready\n * @param {Object} constraints\n * @param {Object} video\n */\n function initCamera(video, constraints) {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mediaDevices__[\"a\" /* getUserMedia */])(constraints).then(function (stream) {\n return new Promise(function (resolve) {\n streamRef = stream;\n video.setAttribute(\"autoplay\", true);\n video.setAttribute('muted', true);\n video.setAttribute('playsinline', true);\n video.srcObject = stream;\n video.addEventListener('loadedmetadata', function () {\n video.play();\n resolve();\n });\n });\n }).then(waitForVideo.bind(null, video));\n }\n function deprecatedConstraints(videoConstraints) {\n var normalized = __WEBPACK_IMPORTED_MODULE_0_lodash_pick___default()(videoConstraints, [\"width\", \"height\", \"facingMode\", \"aspectRatio\", \"deviceId\"]);\n if (typeof videoConstraints.minAspectRatio !== 'undefined' && videoConstraints.minAspectRatio > 0) {\n normalized.aspectRatio = videoConstraints.minAspectRatio;\n console.log(\"WARNING: Constraint 'minAspectRatio' is deprecated; Use 'aspectRatio' instead\");\n }\n if (typeof videoConstraints.facing !== 'undefined') {\n normalized.facingMode = videoConstraints.facing;\n console.log(\"WARNING: Constraint 'facing' is deprecated. Use 'facingMode' instead'\");\n }\n return normalized;\n }\n function pickConstraints(videoConstraints) {\n var normalizedConstraints = {\n audio: false,\n video: deprecatedConstraints(videoConstraints)\n };\n if (normalizedConstraints.video.deviceId && normalizedConstraints.video.facingMode) {\n delete normalizedConstraints.video.facingMode;\n }\n return Promise.resolve(normalizedConstraints);\n }\n function enumerateVideoDevices() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mediaDevices__[\"b\" /* enumerateDevices */])().then(function (devices) {\n return devices.filter(function (device) {\n return device.kind === 'videoinput';\n });\n });\n }\n function getActiveTrack() {\n if (streamRef) {\n var tracks = streamRef.getVideoTracks();\n if (tracks && tracks.length) {\n return tracks[0];\n }\n }\n }\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = {\n request: function request(video, videoConstraints) {\n return pickConstraints(videoConstraints).then(initCamera.bind(null, video));\n },\n release: function release() {\n var tracks = streamRef && streamRef.getVideoTracks();\n if (tracks && tracks.length) {\n tracks[0].stop();\n }\n streamRef = null;\n },\n enumerateVideoDevices: enumerateVideoDevices,\n getActiveStreamLabel: function getActiveStreamLabel() {\n var track = getActiveTrack();\n return track ? track.label : '';\n },\n getActiveTrack: getActiveTrack\n };\n\n /***/\n }, /* 60 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* unused harmony export AvailableTags */\n /* harmony export (immutable) */\n __webpack_exports__[\"a\"] = findTagsInObjectURL;\n /* unused harmony export base64ToArrayBuffer */\n /* unused harmony export findTagsInBuffer */\n // Scraped from https://github.com/exif-js/exif-js\n\n var ExifTags = {\n 0x0112: \"orientation\"\n };\n var AvailableTags = Object.keys(ExifTags).map(function (key) {\n return ExifTags[key];\n });\n function findTagsInObjectURL(src) {\n var tags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AvailableTags;\n if (/^blob\\:/i.test(src)) {\n return objectURLToBlob(src).then(readToBuffer).then(function (buffer) {\n return findTagsInBuffer(buffer, tags);\n });\n }\n return Promise.resolve(null);\n }\n function base64ToArrayBuffer(dataUrl) {\n var base64 = dataUrl.replace(/^data\\:([^\\;]+)\\;base64,/gmi, ''),\n binary = atob(base64),\n len = binary.length,\n buffer = new ArrayBuffer(len),\n view = new Uint8Array(buffer);\n for (var i = 0; i < len; i++) {\n view[i] = binary.charCodeAt(i);\n }\n return buffer;\n }\n function readToBuffer(blob) {\n return new Promise(function (resolve) {\n var fileReader = new FileReader();\n fileReader.onload = function (e) {\n return resolve(e.target.result);\n };\n fileReader.readAsArrayBuffer(blob);\n });\n }\n function objectURLToBlob(url) {\n return new Promise(function (resolve, reject) {\n var http = new XMLHttpRequest();\n http.open(\"GET\", url, true);\n http.responseType = \"blob\";\n http.onreadystatechange = function () {\n if (http.readyState === XMLHttpRequest.DONE && (http.status === 200 || http.status === 0)) {\n resolve(this.response);\n }\n };\n http.onerror = reject;\n http.send();\n });\n }\n function findTagsInBuffer(file) {\n var selectedTags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AvailableTags;\n var dataView = new DataView(file),\n length = file.byteLength,\n exifTags = selectedTags.reduce(function (result, selectedTag) {\n var exifTag = Object.keys(ExifTags).filter(function (tag) {\n return ExifTags[tag] === selectedTag;\n })[0];\n if (exifTag) {\n result[exifTag] = selectedTag;\n }\n return result;\n }, {});\n var offset = 2,\n marker = void 0;\n if (dataView.getUint8(0) !== 0xFF || dataView.getUint8(1) !== 0xD8) {\n return false;\n }\n while (offset < length) {\n if (dataView.getUint8(offset) !== 0xFF) {\n return false;\n }\n marker = dataView.getUint8(offset + 1);\n if (marker === 0xE1) {\n return readEXIFData(dataView, offset + 4, exifTags);\n } else {\n offset += 2 + dataView.getUint16(offset + 2);\n }\n }\n }\n function readEXIFData(file, start, exifTags) {\n if (getStringFromBuffer(file, start, 4) !== \"Exif\") {\n return false;\n }\n var tiffOffset = start + 6;\n var bigEnd = void 0,\n tags = void 0;\n if (file.getUint16(tiffOffset) === 0x4949) {\n bigEnd = false;\n } else if (file.getUint16(tiffOffset) === 0x4D4D) {\n bigEnd = true;\n } else {\n return false;\n }\n if (file.getUint16(tiffOffset + 2, !bigEnd) !== 0x002A) {\n return false;\n }\n var firstIFDOffset = file.getUint32(tiffOffset + 4, !bigEnd);\n if (firstIFDOffset < 0x00000008) {\n return false;\n }\n tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, exifTags, bigEnd);\n return tags;\n }\n function readTags(file, tiffStart, dirStart, strings, bigEnd) {\n var entries = file.getUint16(dirStart, !bigEnd),\n tags = {};\n for (var i = 0; i < entries; i++) {\n var entryOffset = dirStart + i * 12 + 2,\n tag = strings[file.getUint16(entryOffset, !bigEnd)];\n if (tag) {\n tags[tag] = readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd);\n }\n }\n return tags;\n }\n function readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd) {\n var type = file.getUint16(entryOffset + 2, !bigEnd),\n numValues = file.getUint32(entryOffset + 4, !bigEnd);\n switch (type) {\n case 3:\n if (numValues === 1) {\n return file.getUint16(entryOffset + 8, !bigEnd);\n }\n }\n }\n function getStringFromBuffer(buffer, start, length) {\n var outstr = \"\";\n for (var n = start; n < start + length; n++) {\n outstr += String.fromCharCode(buffer.getUint8(n));\n }\n return outstr;\n }\n\n /***/\n }, /* 61 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__common_cv_utils__ = __webpack_require__(19);\n var TO_RADIANS = Math.PI / 180;\n function adjustCanvasSize(canvas, targetSize) {\n if (canvas.width !== targetSize.x) {\n if (true) {\n console.log(\"WARNING: canvas-size needs to be adjusted\");\n }\n canvas.width = targetSize.x;\n }\n if (canvas.height !== targetSize.y) {\n if (true) {\n console.log(\"WARNING: canvas-size needs to be adjusted\");\n }\n canvas.height = targetSize.y;\n }\n }\n var FrameGrabber = {};\n FrameGrabber.create = function (inputStream, canvas) {\n var _that = {},\n _streamConfig = inputStream.getConfig(),\n _video_size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__[\"b\" /* imageRef */])(inputStream.getRealWidth(), inputStream.getRealHeight()),\n _canvasSize = inputStream.getCanvasSize(),\n _size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__[\"b\" /* imageRef */])(inputStream.getWidth(), inputStream.getHeight()),\n topRight = inputStream.getTopRight(),\n _sx = topRight.x,\n _sy = topRight.y,\n _canvas,\n _ctx = null,\n _data = null;\n _canvas = canvas ? canvas : document.createElement(\"canvas\");\n _canvas.width = _canvasSize.x;\n _canvas.height = _canvasSize.y;\n _ctx = _canvas.getContext(\"2d\");\n _data = new Uint8Array(_size.x * _size.y);\n if (true) {\n console.log(\"FrameGrabber\", JSON.stringify({\n size: _size,\n topRight: topRight,\n videoSize: _video_size,\n canvasSize: _canvasSize\n }));\n }\n\n /**\n * Uses the given array as frame-buffer\n */\n _that.attachData = function (data) {\n _data = data;\n };\n\n /**\n * Returns the used frame-buffer\n */\n _that.getData = function () {\n return _data;\n };\n\n /**\n * Fetches a frame from the input-stream and puts into the frame-buffer.\n * The image-data is converted to gray-scale and then half-sampled if configured.\n */\n _that.grab = function () {\n var doHalfSample = _streamConfig.halfSample,\n frame = inputStream.getFrame(),\n drawable = frame,\n drawAngle = 0,\n ctxData;\n if (drawable) {\n adjustCanvasSize(_canvas, _canvasSize);\n if (_streamConfig.type === 'ImageStream') {\n drawable = frame.img;\n if (frame.tags && frame.tags.orientation) {\n switch (frame.tags.orientation) {\n case 6:\n drawAngle = 90 * TO_RADIANS;\n break;\n case 8:\n drawAngle = -90 * TO_RADIANS;\n break;\n }\n }\n }\n if (drawAngle !== 0) {\n _ctx.translate(_canvasSize.x / 2, _canvasSize.y / 2);\n _ctx.rotate(drawAngle);\n _ctx.drawImage(drawable, -_canvasSize.y / 2, -_canvasSize.x / 2, _canvasSize.y, _canvasSize.x);\n _ctx.rotate(-drawAngle);\n _ctx.translate(-_canvasSize.x / 2, -_canvasSize.y / 2);\n } else {\n _ctx.drawImage(drawable, 0, 0, _canvasSize.x, _canvasSize.y);\n }\n ctxData = _ctx.getImageData(_sx, _sy, _size.x, _size.y).data;\n if (doHalfSample) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__[\"c\" /* grayAndHalfSampleFromCanvasData */])(ctxData, _size, _data);\n } else {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__[\"d\" /* computeGray */])(ctxData, _data, _streamConfig);\n }\n return true;\n } else {\n return false;\n }\n };\n _that.getSize = function () {\n return _size;\n };\n return _that;\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = FrameGrabber;\n\n /***/\n }, /* 62 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__exif_helper__ = __webpack_require__(60);\n var ImageLoader = {};\n ImageLoader.load = function (directory, callback, offset, size, sequence) {\n var htmlImagesSrcArray = new Array(size),\n htmlImagesArray = new Array(htmlImagesSrcArray.length),\n i,\n img,\n num;\n if (sequence === false) {\n htmlImagesSrcArray[0] = directory;\n } else {\n for (i = 0; i < htmlImagesSrcArray.length; i++) {\n num = offset + i;\n htmlImagesSrcArray[i] = directory + \"image-\" + (\"00\" + num).slice(-3) + \".jpg\";\n }\n }\n htmlImagesArray.notLoaded = [];\n htmlImagesArray.addImage = function (image) {\n htmlImagesArray.notLoaded.push(image);\n };\n htmlImagesArray.loaded = function (loadedImg) {\n var notloadedImgs = htmlImagesArray.notLoaded;\n for (var x = 0; x < notloadedImgs.length; x++) {\n if (notloadedImgs[x] === loadedImg) {\n notloadedImgs.splice(x, 1);\n for (var y = 0; y < htmlImagesSrcArray.length; y++) {\n var imgName = htmlImagesSrcArray[y].substr(htmlImagesSrcArray[y].lastIndexOf(\"/\"));\n if (loadedImg.src.lastIndexOf(imgName) !== -1) {\n htmlImagesArray[y] = {\n img: loadedImg\n };\n break;\n }\n }\n break;\n }\n }\n if (notloadedImgs.length === 0) {\n if (true) {\n console.log(\"Images loaded\");\n }\n if (sequence === false) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exif_helper__[\"a\" /* findTagsInObjectURL */])(directory, ['orientation']).then(function (tags) {\n htmlImagesArray[0].tags = tags;\n callback(htmlImagesArray);\n }).catch(function (e) {\n console.log(e);\n callback(htmlImagesArray);\n });\n } else {\n callback(htmlImagesArray);\n }\n }\n };\n for (i = 0; i < htmlImagesSrcArray.length; i++) {\n img = new Image();\n htmlImagesArray.addImage(img);\n addOnloadHandler(img, htmlImagesArray);\n img.src = htmlImagesSrcArray[i];\n }\n };\n function addOnloadHandler(img, htmlImagesArray) {\n img.onload = function () {\n htmlImagesArray.loaded(this);\n };\n }\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = ImageLoader;\n\n /***/\n }, /* 63 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__image_loader__ = __webpack_require__(62);\n var InputStream = {};\n InputStream.createVideoStream = function (video) {\n var that = {},\n _config = null,\n _eventNames = ['canrecord', 'ended'],\n _eventHandlers = {},\n _calculatedWidth,\n _calculatedHeight,\n _topRight = {\n x: 0,\n y: 0\n },\n _canvasSize = {\n x: 0,\n y: 0\n };\n function initSize() {\n var width = video.videoWidth,\n height = video.videoHeight;\n _calculatedWidth = _config.size ? width / height > 1 ? _config.size : Math.floor(width / height * _config.size) : width;\n _calculatedHeight = _config.size ? width / height > 1 ? Math.floor(height / width * _config.size) : _config.size : height;\n _canvasSize.x = _calculatedWidth;\n _canvasSize.y = _calculatedHeight;\n }\n that.getRealWidth = function () {\n return video.videoWidth;\n };\n that.getRealHeight = function () {\n return video.videoHeight;\n };\n that.getWidth = function () {\n return _calculatedWidth;\n };\n that.getHeight = function () {\n return _calculatedHeight;\n };\n that.setWidth = function (width) {\n _calculatedWidth = width;\n };\n that.setHeight = function (height) {\n _calculatedHeight = height;\n };\n that.setInputStream = function (config) {\n _config = config;\n video.src = typeof config.src !== 'undefined' ? config.src : '';\n };\n that.ended = function () {\n return video.ended;\n };\n that.getConfig = function () {\n return _config;\n };\n that.setAttribute = function (name, value) {\n video.setAttribute(name, value);\n };\n that.pause = function () {\n video.pause();\n };\n that.play = function () {\n video.play();\n };\n that.setCurrentTime = function (time) {\n if (_config.type !== \"LiveStream\") {\n video.currentTime = time;\n }\n };\n that.addEventListener = function (event, f, bool) {\n if (_eventNames.indexOf(event) !== -1) {\n if (!_eventHandlers[event]) {\n _eventHandlers[event] = [];\n }\n _eventHandlers[event].push(f);\n } else {\n video.addEventListener(event, f, bool);\n }\n };\n that.clearEventHandlers = function () {\n _eventNames.forEach(function (eventName) {\n var handlers = _eventHandlers[eventName];\n if (handlers && handlers.length > 0) {\n handlers.forEach(function (handler) {\n video.removeEventListener(eventName, handler);\n });\n }\n });\n };\n that.trigger = function (eventName, args) {\n var j,\n handlers = _eventHandlers[eventName];\n if (eventName === 'canrecord') {\n initSize();\n }\n if (handlers && handlers.length > 0) {\n for (j = 0; j < handlers.length; j++) {\n handlers[j].apply(that, args);\n }\n }\n };\n that.setTopRight = function (topRight) {\n _topRight.x = topRight.x;\n _topRight.y = topRight.y;\n };\n that.getTopRight = function () {\n return _topRight;\n };\n that.setCanvasSize = function (size) {\n _canvasSize.x = size.x;\n _canvasSize.y = size.y;\n };\n that.getCanvasSize = function () {\n return _canvasSize;\n };\n that.getFrame = function () {\n return video;\n };\n return that;\n };\n InputStream.createLiveStream = function (video) {\n video.setAttribute(\"autoplay\", true);\n var that = InputStream.createVideoStream(video);\n that.ended = function () {\n return false;\n };\n return that;\n };\n InputStream.createImageStream = function () {\n var that = {};\n var _config = null;\n var width = 0,\n height = 0,\n frameIdx = 0,\n paused = true,\n loaded = false,\n imgArray = null,\n size = 0,\n offset = 1,\n baseUrl = null,\n ended = false,\n calculatedWidth,\n calculatedHeight,\n _eventNames = ['canrecord', 'ended'],\n _eventHandlers = {},\n _topRight = {\n x: 0,\n y: 0\n },\n _canvasSize = {\n x: 0,\n y: 0\n };\n function loadImages() {\n loaded = false;\n __WEBPACK_IMPORTED_MODULE_0__image_loader__[\"a\" /* default */].load(baseUrl, function (imgs) {\n imgArray = imgs;\n if (imgs[0].tags && imgs[0].tags.orientation) {\n switch (imgs[0].tags.orientation) {\n case 6:\n case 8:\n width = imgs[0].img.height;\n height = imgs[0].img.width;\n break;\n default:\n width = imgs[0].img.width;\n height = imgs[0].img.height;\n }\n } else {\n width = imgs[0].img.width;\n height = imgs[0].img.height;\n }\n calculatedWidth = _config.size ? width / height > 1 ? _config.size : Math.floor(width / height * _config.size) : width;\n calculatedHeight = _config.size ? width / height > 1 ? Math.floor(height / width * _config.size) : _config.size : height;\n _canvasSize.x = calculatedWidth;\n _canvasSize.y = calculatedHeight;\n loaded = true;\n frameIdx = 0;\n setTimeout(function () {\n publishEvent(\"canrecord\", []);\n }, 0);\n }, offset, size, _config.sequence);\n }\n function publishEvent(eventName, args) {\n var j,\n handlers = _eventHandlers[eventName];\n if (handlers && handlers.length > 0) {\n for (j = 0; j < handlers.length; j++) {\n handlers[j].apply(that, args);\n }\n }\n }\n that.trigger = publishEvent;\n that.getWidth = function () {\n return calculatedWidth;\n };\n that.getHeight = function () {\n return calculatedHeight;\n };\n that.setWidth = function (newWidth) {\n calculatedWidth = newWidth;\n };\n that.setHeight = function (newHeight) {\n calculatedHeight = newHeight;\n };\n that.getRealWidth = function () {\n return width;\n };\n that.getRealHeight = function () {\n return height;\n };\n that.setInputStream = function (stream) {\n _config = stream;\n if (stream.sequence === false) {\n baseUrl = stream.src;\n size = 1;\n } else {\n baseUrl = stream.src;\n size = stream.length;\n }\n loadImages();\n };\n that.ended = function () {\n return ended;\n };\n that.setAttribute = function () {};\n that.getConfig = function () {\n return _config;\n };\n that.pause = function () {\n paused = true;\n };\n that.play = function () {\n paused = false;\n };\n that.setCurrentTime = function (time) {\n frameIdx = time;\n };\n that.addEventListener = function (event, f) {\n if (_eventNames.indexOf(event) !== -1) {\n if (!_eventHandlers[event]) {\n _eventHandlers[event] = [];\n }\n _eventHandlers[event].push(f);\n }\n };\n that.setTopRight = function (topRight) {\n _topRight.x = topRight.x;\n _topRight.y = topRight.y;\n };\n that.getTopRight = function () {\n return _topRight;\n };\n that.setCanvasSize = function (canvasSize) {\n _canvasSize.x = canvasSize.x;\n _canvasSize.y = canvasSize.y;\n };\n that.getCanvasSize = function () {\n return _canvasSize;\n };\n that.getFrame = function () {\n var frame;\n if (!loaded) {\n return null;\n }\n if (!paused) {\n frame = imgArray[frameIdx];\n if (frameIdx < size - 1) {\n frameIdx++;\n } else {\n setTimeout(function () {\n ended = true;\n publishEvent(\"ended\", []);\n }, 0);\n }\n }\n return frame;\n };\n return that;\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = InputStream;\n\n /***/\n }, /* 64 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* WEBPACK VAR INJECTION */\n (function (global) {\n /* harmony import */var __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__ = __webpack_require__(20);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(19);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(3);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_3__common_image_debug__ = __webpack_require__(9);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_4__rasterizer__ = __webpack_require__(65);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_5__tracer__ = __webpack_require__(30);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_6__skeletonizer__ = __webpack_require__(66);\n var vec2 = {\n clone: __webpack_require__(7),\n dot: __webpack_require__(32),\n scale: __webpack_require__(81),\n transformMat2: __webpack_require__(82)\n };\n var mat2 = {\n copy: __webpack_require__(78),\n create: __webpack_require__(79),\n invert: __webpack_require__(80)\n };\n var _config,\n _currentImageWrapper,\n _skelImageWrapper,\n _subImageWrapper,\n _labelImageWrapper,\n _patchGrid,\n _patchLabelGrid,\n _imageToPatchGrid,\n _binaryImageWrapper,\n _patchSize,\n _canvasContainer = {\n ctx: {\n binary: null\n },\n dom: {\n binary: null\n }\n },\n _numPatches = {\n x: 0,\n y: 0\n },\n _inputImageWrapper,\n _skeletonizer;\n function initBuffers() {\n var skeletonImageData;\n if (_config.halfSample) {\n _currentImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__[\"a\" /* default */]({\n x: _inputImageWrapper.size.x / 2 | 0,\n y: _inputImageWrapper.size.y / 2 | 0\n });\n } else {\n _currentImageWrapper = _inputImageWrapper;\n }\n _patchSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"e\" /* calculatePatchSize */])(_config.patchSize, _currentImageWrapper.size);\n _numPatches.x = _currentImageWrapper.size.x / _patchSize.x | 0;\n _numPatches.y = _currentImageWrapper.size.y / _patchSize.y | 0;\n _binaryImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__[\"a\" /* default */](_currentImageWrapper.size, undefined, Uint8Array, false);\n _labelImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__[\"a\" /* default */](_patchSize, undefined, Array, true);\n skeletonImageData = new ArrayBuffer(64 * 1024);\n _subImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__[\"a\" /* default */](_patchSize, new Uint8Array(skeletonImageData, 0, _patchSize.x * _patchSize.y));\n _skelImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__[\"a\" /* default */](_patchSize, new Uint8Array(skeletonImageData, _patchSize.x * _patchSize.y * 3, _patchSize.x * _patchSize.y), undefined, true);\n _skeletonizer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__skeletonizer__[\"a\" /* default */])(typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : global, {\n size: _patchSize.x\n }, skeletonImageData);\n _imageToPatchGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__[\"a\" /* default */]({\n x: _currentImageWrapper.size.x / _subImageWrapper.size.x | 0,\n y: _currentImageWrapper.size.y / _subImageWrapper.size.y | 0\n }, undefined, Array, true);\n _patchGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__[\"a\" /* default */](_imageToPatchGrid.size, undefined, undefined, true);\n _patchLabelGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__[\"a\" /* default */](_imageToPatchGrid.size, undefined, Int32Array, true);\n }\n function initCanvas() {\n if (_config.useWorker || typeof document === 'undefined') {\n return;\n }\n _canvasContainer.dom.binary = document.createElement(\"canvas\");\n _canvasContainer.dom.binary.className = \"binaryBuffer\";\n if (true && _config.debug.showCanvas === true) {\n document.querySelector(\"#debug\").appendChild(_canvasContainer.dom.binary);\n }\n _canvasContainer.ctx.binary = _canvasContainer.dom.binary.getContext(\"2d\");\n _canvasContainer.dom.binary.width = _binaryImageWrapper.size.x;\n _canvasContainer.dom.binary.height = _binaryImageWrapper.size.y;\n }\n\n /**\n * Creates a bounding box which encloses all the given patches\n * @returns {Array} The minimal bounding box\n */\n function boxFromPatches(patches) {\n var overAvg,\n i,\n j,\n patch,\n transMat,\n minx = _binaryImageWrapper.size.x,\n miny = _binaryImageWrapper.size.y,\n maxx = -_binaryImageWrapper.size.x,\n maxy = -_binaryImageWrapper.size.y,\n box,\n scale;\n\n // draw all patches which are to be taken into consideration\n overAvg = 0;\n for (i = 0; i < patches.length; i++) {\n patch = patches[i];\n overAvg += patch.rad;\n if (true && _config.debug.showPatches) {\n __WEBPACK_IMPORTED_MODULE_3__common_image_debug__[\"a\" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, {\n color: \"red\"\n });\n }\n }\n overAvg /= patches.length;\n overAvg = (overAvg * 180 / Math.PI + 90) % 180 - 90;\n if (overAvg < 0) {\n overAvg += 180;\n }\n overAvg = (180 - overAvg) * Math.PI / 180;\n transMat = mat2.copy(mat2.create(), [Math.cos(overAvg), Math.sin(overAvg), -Math.sin(overAvg), Math.cos(overAvg)]);\n\n // iterate over patches and rotate by angle\n for (i = 0; i < patches.length; i++) {\n patch = patches[i];\n for (j = 0; j < 4; j++) {\n vec2.transformMat2(patch.box[j], patch.box[j], transMat);\n }\n if (true && _config.debug.boxFromPatches.showTransformed) {\n __WEBPACK_IMPORTED_MODULE_3__common_image_debug__[\"a\" /* default */].drawPath(patch.box, {\n x: 0,\n y: 1\n }, _canvasContainer.ctx.binary, {\n color: '#99ff00',\n lineWidth: 2\n });\n }\n }\n\n // find bounding box\n for (i = 0; i < patches.length; i++) {\n patch = patches[i];\n for (j = 0; j < 4; j++) {\n if (patch.box[j][0] < minx) {\n minx = patch.box[j][0];\n }\n if (patch.box[j][0] > maxx) {\n maxx = patch.box[j][0];\n }\n if (patch.box[j][1] < miny) {\n miny = patch.box[j][1];\n }\n if (patch.box[j][1] > maxy) {\n maxy = patch.box[j][1];\n }\n }\n }\n box = [[minx, miny], [maxx, miny], [maxx, maxy], [minx, maxy]];\n if (true && _config.debug.boxFromPatches.showTransformedBox) {\n __WEBPACK_IMPORTED_MODULE_3__common_image_debug__[\"a\" /* default */].drawPath(box, {\n x: 0,\n y: 1\n }, _canvasContainer.ctx.binary, {\n color: '#ff0000',\n lineWidth: 2\n });\n }\n scale = _config.halfSample ? 2 : 1;\n // reverse rotation;\n transMat = mat2.invert(transMat, transMat);\n for (j = 0; j < 4; j++) {\n vec2.transformMat2(box[j], box[j], transMat);\n }\n if (true && _config.debug.boxFromPatches.showBB) {\n __WEBPACK_IMPORTED_MODULE_3__common_image_debug__[\"a\" /* default */].drawPath(box, {\n x: 0,\n y: 1\n }, _canvasContainer.ctx.binary, {\n color: '#ff0000',\n lineWidth: 2\n });\n }\n for (j = 0; j < 4; j++) {\n vec2.scale(box[j], box[j], scale);\n }\n return box;\n }\n\n /**\n * Creates a binary image of the current image\n */\n function binarizeImage() {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"f\" /* otsuThreshold */])(_currentImageWrapper, _binaryImageWrapper);\n _binaryImageWrapper.zeroBorder();\n if (true && _config.debug.showCanvas) {\n _binaryImageWrapper.show(_canvasContainer.dom.binary, 255);\n }\n }\n\n /**\n * Iterate over the entire image\n * extract patches\n */\n function findPatches() {\n var i,\n j,\n x,\n y,\n moments,\n patchesFound = [],\n rasterizer,\n rasterResult,\n patch;\n for (i = 0; i < _numPatches.x; i++) {\n for (j = 0; j < _numPatches.y; j++) {\n x = _subImageWrapper.size.x * i;\n y = _subImageWrapper.size.y * j;\n\n // seperate parts\n skeletonize(x, y);\n\n // Rasterize, find individual bars\n _skelImageWrapper.zeroBorder();\n __WEBPACK_IMPORTED_MODULE_2__common_array_helper__[\"a\" /* default */].init(_labelImageWrapper.data, 0);\n rasterizer = __WEBPACK_IMPORTED_MODULE_4__rasterizer__[\"a\" /* default */].create(_skelImageWrapper, _labelImageWrapper);\n rasterResult = rasterizer.rasterize(0);\n if (true && _config.debug.showLabels) {\n _labelImageWrapper.overlay(_canvasContainer.dom.binary, Math.floor(360 / rasterResult.count), {\n x: x,\n y: y\n });\n }\n\n // calculate moments from the skeletonized patch\n moments = _labelImageWrapper.moments(rasterResult.count);\n\n // extract eligible patches\n patchesFound = patchesFound.concat(describePatch(moments, [i, j], x, y));\n }\n }\n if (true && _config.debug.showFoundPatches) {\n for (i = 0; i < patchesFound.length; i++) {\n patch = patchesFound[i];\n __WEBPACK_IMPORTED_MODULE_3__common_image_debug__[\"a\" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, {\n color: \"#99ff00\",\n lineWidth: 2\n });\n }\n }\n return patchesFound;\n }\n\n /**\n * Finds those connected areas which contain at least 6 patches\n * and returns them ordered DESC by the number of contained patches\n * @param {Number} maxLabel\n */\n function findBiggestConnectedAreas(maxLabel) {\n var i,\n sum,\n labelHist = [],\n topLabels = [];\n for (i = 0; i < maxLabel; i++) {\n labelHist.push(0);\n }\n sum = _patchLabelGrid.data.length;\n while (sum--) {\n if (_patchLabelGrid.data[sum] > 0) {\n labelHist[_patchLabelGrid.data[sum] - 1]++;\n }\n }\n labelHist = labelHist.map(function (val, idx) {\n return {\n val: val,\n label: idx + 1\n };\n });\n labelHist.sort(function (a, b) {\n return b.val - a.val;\n });\n\n // extract top areas with at least 6 patches present\n topLabels = labelHist.filter(function (el) {\n return el.val >= 5;\n });\n return topLabels;\n }\n\n /**\n *\n */\n function findBoxes(topLabels, maxLabel) {\n var i,\n j,\n sum,\n patches = [],\n patch,\n box,\n boxes = [],\n hsv = [0, 1, 1],\n rgb = [0, 0, 0];\n for (i = 0; i < topLabels.length; i++) {\n sum = _patchLabelGrid.data.length;\n patches.length = 0;\n while (sum--) {\n if (_patchLabelGrid.data[sum] === topLabels[i].label) {\n patch = _imageToPatchGrid.data[sum];\n patches.push(patch);\n }\n }\n box = boxFromPatches(patches);\n if (box) {\n boxes.push(box);\n\n // draw patch-labels if requested\n if (true && _config.debug.showRemainingPatchLabels) {\n for (j = 0; j < patches.length; j++) {\n patch = patches[j];\n hsv[0] = topLabels[i].label / (maxLabel + 1) * 360;\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"a\" /* hsv2rgb */])(hsv, rgb);\n __WEBPACK_IMPORTED_MODULE_3__common_image_debug__[\"a\" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, {\n color: \"rgb(\" + rgb.join(\",\") + \")\",\n lineWidth: 2\n });\n }\n }\n }\n }\n return boxes;\n }\n\n /**\n * Find similar moments (via cluster)\n * @param {Object} moments\n */\n function similarMoments(moments) {\n var clusters = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"g\" /* cluster */])(moments, 0.90);\n var topCluster = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"h\" /* topGeneric */])(clusters, 1, function (e) {\n return e.getPoints().length;\n });\n var points = [],\n result = [];\n if (topCluster.length === 1) {\n points = topCluster[0].item.getPoints();\n for (var i = 0; i < points.length; i++) {\n result.push(points[i].point);\n }\n }\n return result;\n }\n function skeletonize(x, y) {\n _binaryImageWrapper.subImageAsCopy(_subImageWrapper, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"b\" /* imageRef */])(x, y));\n _skeletonizer.skeletonize();\n\n // Show skeleton if requested\n if (true && _config.debug.showSkeleton) {\n _skelImageWrapper.overlay(_canvasContainer.dom.binary, 360, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"b\" /* imageRef */])(x, y));\n }\n }\n\n /**\n * Extracts and describes those patches which seem to contain a barcode pattern\n * @param {Array} moments\n * @param {Object} patchPos,\n * @param {Number} x\n * @param {Number} y\n * @returns {Array} list of patches\n */\n function describePatch(moments, patchPos, x, y) {\n var k,\n avg,\n eligibleMoments = [],\n matchingMoments,\n patch,\n patchesFound = [],\n minComponentWeight = Math.ceil(_patchSize.x / 3);\n if (moments.length >= 2) {\n // only collect moments which's area covers at least minComponentWeight pixels.\n for (k = 0; k < moments.length; k++) {\n if (moments[k].m00 > minComponentWeight) {\n eligibleMoments.push(moments[k]);\n }\n }\n\n // if at least 2 moments are found which have at least minComponentWeights covered\n if (eligibleMoments.length >= 2) {\n matchingMoments = similarMoments(eligibleMoments);\n avg = 0;\n // determine the similarity of the moments\n for (k = 0; k < matchingMoments.length; k++) {\n avg += matchingMoments[k].rad;\n }\n\n // Only two of the moments are allowed not to fit into the equation\n // add the patch to the set\n if (matchingMoments.length > 1 && matchingMoments.length >= eligibleMoments.length / 4 * 3 && matchingMoments.length > moments.length / 4) {\n avg /= matchingMoments.length;\n patch = {\n index: patchPos[1] * _numPatches.x + patchPos[0],\n pos: {\n x: x,\n y: y\n },\n box: [vec2.clone([x, y]), vec2.clone([x + _subImageWrapper.size.x, y]), vec2.clone([x + _subImageWrapper.size.x, y + _subImageWrapper.size.y]), vec2.clone([x, y + _subImageWrapper.size.y])],\n moments: matchingMoments,\n rad: avg,\n vec: vec2.clone([Math.cos(avg), Math.sin(avg)])\n };\n patchesFound.push(patch);\n }\n }\n }\n return patchesFound;\n }\n\n /**\n * finds patches which are connected and share the same orientation\n * @param {Object} patchesFound\n */\n function rasterizeAngularSimilarity(patchesFound) {\n var label = 0,\n threshold = 0.95,\n currIdx = 0,\n j,\n patch,\n hsv = [0, 1, 1],\n rgb = [0, 0, 0];\n function notYetProcessed() {\n var i;\n for (i = 0; i < _patchLabelGrid.data.length; i++) {\n if (_patchLabelGrid.data[i] === 0 && _patchGrid.data[i] === 1) {\n return i;\n }\n }\n return _patchLabelGrid.length;\n }\n function trace(currentIdx) {\n var x,\n y,\n currentPatch,\n idx,\n dir,\n current = {\n x: currentIdx % _patchLabelGrid.size.x,\n y: currentIdx / _patchLabelGrid.size.x | 0\n },\n similarity;\n if (currentIdx < _patchLabelGrid.data.length) {\n currentPatch = _imageToPatchGrid.data[currentIdx];\n // assign label\n _patchLabelGrid.data[currentIdx] = label;\n for (dir = 0; dir < __WEBPACK_IMPORTED_MODULE_5__tracer__[\"a\" /* default */].searchDirections.length; dir++) {\n y = current.y + __WEBPACK_IMPORTED_MODULE_5__tracer__[\"a\" /* default */].searchDirections[dir][0];\n x = current.x + __WEBPACK_IMPORTED_MODULE_5__tracer__[\"a\" /* default */].searchDirections[dir][1];\n idx = y * _patchLabelGrid.size.x + x;\n\n // continue if patch empty\n if (_patchGrid.data[idx] === 0) {\n _patchLabelGrid.data[idx] = Number.MAX_VALUE;\n continue;\n }\n if (_patchLabelGrid.data[idx] === 0) {\n similarity = Math.abs(vec2.dot(_imageToPatchGrid.data[idx].vec, currentPatch.vec));\n if (similarity > threshold) {\n trace(idx);\n }\n }\n }\n }\n }\n\n // prepare for finding the right patches\n __WEBPACK_IMPORTED_MODULE_2__common_array_helper__[\"a\" /* default */].init(_patchGrid.data, 0);\n __WEBPACK_IMPORTED_MODULE_2__common_array_helper__[\"a\" /* default */].init(_patchLabelGrid.data, 0);\n __WEBPACK_IMPORTED_MODULE_2__common_array_helper__[\"a\" /* default */].init(_imageToPatchGrid.data, null);\n for (j = 0; j < patchesFound.length; j++) {\n patch = patchesFound[j];\n _imageToPatchGrid.data[patch.index] = patch;\n _patchGrid.data[patch.index] = 1;\n }\n\n // rasterize the patches found to determine area\n _patchGrid.zeroBorder();\n while ((currIdx = notYetProcessed()) < _patchLabelGrid.data.length) {\n label++;\n trace(currIdx);\n }\n\n // draw patch-labels if requested\n if (true && _config.debug.showPatchLabels) {\n for (j = 0; j < _patchLabelGrid.data.length; j++) {\n if (_patchLabelGrid.data[j] > 0 && _patchLabelGrid.data[j] <= label) {\n patch = _imageToPatchGrid.data[j];\n hsv[0] = _patchLabelGrid.data[j] / (label + 1) * 360;\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"a\" /* hsv2rgb */])(hsv, rgb);\n __WEBPACK_IMPORTED_MODULE_3__common_image_debug__[\"a\" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, {\n color: \"rgb(\" + rgb.join(\",\") + \")\",\n lineWidth: 2\n });\n }\n }\n }\n return label;\n }\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = {\n init: function init(inputImageWrapper, config) {\n _config = config;\n _inputImageWrapper = inputImageWrapper;\n initBuffers();\n initCanvas();\n },\n locate: function locate() {\n var patchesFound, topLabels, boxes;\n if (_config.halfSample) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"i\" /* halfSample */])(_inputImageWrapper, _currentImageWrapper);\n }\n binarizeImage();\n patchesFound = findPatches();\n // return unless 5% or more patches are found\n if (patchesFound.length < _numPatches.x * _numPatches.y * 0.05) {\n return null;\n }\n\n // rasterrize area by comparing angular similarity;\n var maxLabel = rasterizeAngularSimilarity(patchesFound);\n if (maxLabel < 1) {\n return null;\n }\n\n // search for area with the most patches (biggest connected area)\n topLabels = findBiggestConnectedAreas(maxLabel);\n if (topLabels.length === 0) {\n return null;\n }\n boxes = findBoxes(topLabels, maxLabel);\n return boxes;\n },\n checkImageConstraints: function checkImageConstraints(inputStream, config) {\n var patchSize,\n width = inputStream.getWidth(),\n height = inputStream.getHeight(),\n halfSample = config.halfSample ? 0.5 : 1,\n size,\n area;\n\n // calculate width and height based on area\n if (inputStream.getConfig().area) {\n area = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"j\" /* computeImageArea */])(width, height, inputStream.getConfig().area);\n inputStream.setTopRight({\n x: area.sx,\n y: area.sy\n });\n inputStream.setCanvasSize({\n x: width,\n y: height\n });\n width = area.sw;\n height = area.sh;\n }\n size = {\n x: Math.floor(width * halfSample),\n y: Math.floor(height * halfSample)\n };\n patchSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__[\"e\" /* calculatePatchSize */])(config.patchSize, size);\n if (true) {\n console.log(\"Patch-Size: \" + JSON.stringify(patchSize));\n }\n inputStream.setWidth(Math.floor(Math.floor(size.x / patchSize.x) * (1 / halfSample) * patchSize.x));\n inputStream.setHeight(Math.floor(Math.floor(size.y / patchSize.y) * (1 / halfSample) * patchSize.y));\n if (inputStream.getWidth() % patchSize.x === 0 && inputStream.getHeight() % patchSize.y === 0) {\n return true;\n }\n throw new Error(\"Image dimensions do not comply with the current settings: Width (\" + width + \" )and height (\" + height + \") must a multiple of \" + patchSize.x);\n }\n };\n /* WEBPACK VAR INJECTION */\n }).call(__webpack_exports__, __webpack_require__(47));\n\n /***/\n }, /* 65 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__tracer__ = __webpack_require__(30);\n\n /**\n * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization\n */\n var Rasterizer = {\n createContour2D: function createContour2D() {\n return {\n dir: null,\n index: null,\n firstVertex: null,\n insideContours: null,\n nextpeer: null,\n prevpeer: null\n };\n },\n CONTOUR_DIR: {\n CW_DIR: 0,\n CCW_DIR: 1,\n UNKNOWN_DIR: 2\n },\n DIR: {\n OUTSIDE_EDGE: -32767,\n INSIDE_EDGE: -32766\n },\n create: function create(imageWrapper, labelWrapper) {\n var imageData = imageWrapper.data,\n labelData = labelWrapper.data,\n width = imageWrapper.size.x,\n height = imageWrapper.size.y,\n tracer = __WEBPACK_IMPORTED_MODULE_0__tracer__[\"a\" /* default */].create(imageWrapper, labelWrapper);\n return {\n rasterize: function rasterize(depthlabel) {\n var color,\n bc,\n lc,\n labelindex,\n cx,\n cy,\n colorMap = [],\n vertex,\n p,\n cc,\n sc,\n pos,\n connectedCount = 0,\n i;\n for (i = 0; i < 400; i++) {\n colorMap[i] = 0;\n }\n colorMap[0] = imageData[0];\n cc = null;\n for (cy = 1; cy < height - 1; cy++) {\n labelindex = 0;\n bc = colorMap[0];\n for (cx = 1; cx < width - 1; cx++) {\n pos = cy * width + cx;\n if (labelData[pos] === 0) {\n color = imageData[pos];\n if (color !== bc) {\n if (labelindex === 0) {\n lc = connectedCount + 1;\n colorMap[lc] = color;\n bc = color;\n vertex = tracer.contourTracing(cy, cx, lc, color, Rasterizer.DIR.OUTSIDE_EDGE);\n if (vertex !== null) {\n connectedCount++;\n labelindex = lc;\n p = Rasterizer.createContour2D();\n p.dir = Rasterizer.CONTOUR_DIR.CW_DIR;\n p.index = labelindex;\n p.firstVertex = vertex;\n p.nextpeer = cc;\n p.insideContours = null;\n if (cc !== null) {\n cc.prevpeer = p;\n }\n cc = p;\n }\n } else {\n vertex = tracer.contourTracing(cy, cx, Rasterizer.DIR.INSIDE_EDGE, color, labelindex);\n if (vertex !== null) {\n p = Rasterizer.createContour2D();\n p.firstVertex = vertex;\n p.insideContours = null;\n if (depthlabel === 0) {\n p.dir = Rasterizer.CONTOUR_DIR.CCW_DIR;\n } else {\n p.dir = Rasterizer.CONTOUR_DIR.CW_DIR;\n }\n p.index = depthlabel;\n sc = cc;\n while (sc !== null && sc.index !== labelindex) {\n sc = sc.nextpeer;\n }\n if (sc !== null) {\n p.nextpeer = sc.insideContours;\n if (sc.insideContours !== null) {\n sc.insideContours.prevpeer = p;\n }\n sc.insideContours = p;\n }\n }\n }\n } else {\n labelData[pos] = labelindex;\n }\n } else if (labelData[pos] === Rasterizer.DIR.OUTSIDE_EDGE || labelData[pos] === Rasterizer.DIR.INSIDE_EDGE) {\n labelindex = 0;\n if (labelData[pos] === Rasterizer.DIR.INSIDE_EDGE) {\n bc = imageData[pos];\n } else {\n bc = colorMap[0];\n }\n } else {\n labelindex = labelData[pos];\n bc = colorMap[labelindex];\n }\n }\n }\n sc = cc;\n while (sc !== null) {\n sc.index = depthlabel;\n sc = sc.nextpeer;\n }\n return {\n cc: cc,\n count: connectedCount\n };\n },\n debug: {\n drawContour: function drawContour(canvas, firstContour) {\n var ctx = canvas.getContext(\"2d\"),\n pq = firstContour,\n iq,\n q,\n p;\n ctx.strokeStyle = \"red\";\n ctx.fillStyle = \"red\";\n ctx.lineWidth = 1;\n if (pq !== null) {\n iq = pq.insideContours;\n } else {\n iq = null;\n }\n while (pq !== null) {\n if (iq !== null) {\n q = iq;\n iq = iq.nextpeer;\n } else {\n q = pq;\n pq = pq.nextpeer;\n if (pq !== null) {\n iq = pq.insideContours;\n } else {\n iq = null;\n }\n }\n switch (q.dir) {\n case Rasterizer.CONTOUR_DIR.CW_DIR:\n ctx.strokeStyle = \"red\";\n break;\n case Rasterizer.CONTOUR_DIR.CCW_DIR:\n ctx.strokeStyle = \"blue\";\n break;\n case Rasterizer.CONTOUR_DIR.UNKNOWN_DIR:\n ctx.strokeStyle = \"green\";\n break;\n }\n p = q.firstVertex;\n ctx.beginPath();\n ctx.moveTo(p.x, p.y);\n do {\n p = p.next;\n ctx.lineTo(p.x, p.y);\n } while (p !== q.firstVertex);\n ctx.stroke();\n }\n }\n }\n };\n }\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = Rasterizer;\n\n /***/\n }, /* 66 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* @preserve ASM BEGIN */\n /* eslint-disable eqeqeq*/\n function Skeletonizer(stdlib, foreign, buffer) {\n \"use asm\";\n\n var images = new stdlib.Uint8Array(buffer),\n size = foreign.size | 0,\n imul = stdlib.Math.imul;\n function erode(inImagePtr, outImagePtr) {\n inImagePtr = inImagePtr | 0;\n outImagePtr = outImagePtr | 0;\n var v = 0,\n u = 0,\n sum = 0,\n yStart1 = 0,\n yStart2 = 0,\n xStart1 = 0,\n xStart2 = 0,\n offset = 0;\n for (v = 1; (v | 0) < (size - 1 | 0); v = v + 1 | 0) {\n offset = offset + size | 0;\n for (u = 1; (u | 0) < (size - 1 | 0); u = u + 1 | 0) {\n yStart1 = offset - size | 0;\n yStart2 = offset + size | 0;\n xStart1 = u - 1 | 0;\n xStart2 = u + 1 | 0;\n sum = (images[inImagePtr + yStart1 + xStart1 | 0] | 0) + (images[inImagePtr + yStart1 + xStart2 | 0] | 0) + (images[inImagePtr + offset + u | 0] | 0) + (images[inImagePtr + yStart2 + xStart1 | 0] | 0) + (images[inImagePtr + yStart2 + xStart2 | 0] | 0) | 0;\n if ((sum | 0) == (5 | 0)) {\n images[outImagePtr + offset + u | 0] = 1;\n } else {\n images[outImagePtr + offset + u | 0] = 0;\n }\n }\n }\n return;\n }\n function subtract(aImagePtr, bImagePtr, outImagePtr) {\n aImagePtr = aImagePtr | 0;\n bImagePtr = bImagePtr | 0;\n outImagePtr = outImagePtr | 0;\n var length = 0;\n length = imul(size, size) | 0;\n while ((length | 0) > 0) {\n length = length - 1 | 0;\n images[outImagePtr + length | 0] = (images[aImagePtr + length | 0] | 0) - (images[bImagePtr + length | 0] | 0) | 0;\n }\n }\n function bitwiseOr(aImagePtr, bImagePtr, outImagePtr) {\n aImagePtr = aImagePtr | 0;\n bImagePtr = bImagePtr | 0;\n outImagePtr = outImagePtr | 0;\n var length = 0;\n length = imul(size, size) | 0;\n while ((length | 0) > 0) {\n length = length - 1 | 0;\n images[outImagePtr + length | 0] = images[aImagePtr + length | 0] | 0 | (images[bImagePtr + length | 0] | 0) | 0;\n }\n }\n function countNonZero(imagePtr) {\n imagePtr = imagePtr | 0;\n var sum = 0,\n length = 0;\n length = imul(size, size) | 0;\n while ((length | 0) > 0) {\n length = length - 1 | 0;\n sum = (sum | 0) + (images[imagePtr + length | 0] | 0) | 0;\n }\n return sum | 0;\n }\n function init(imagePtr, value) {\n imagePtr = imagePtr | 0;\n value = value | 0;\n var length = 0;\n length = imul(size, size) | 0;\n while ((length | 0) > 0) {\n length = length - 1 | 0;\n images[imagePtr + length | 0] = value;\n }\n }\n function dilate(inImagePtr, outImagePtr) {\n inImagePtr = inImagePtr | 0;\n outImagePtr = outImagePtr | 0;\n var v = 0,\n u = 0,\n sum = 0,\n yStart1 = 0,\n yStart2 = 0,\n xStart1 = 0,\n xStart2 = 0,\n offset = 0;\n for (v = 1; (v | 0) < (size - 1 | 0); v = v + 1 | 0) {\n offset = offset + size | 0;\n for (u = 1; (u | 0) < (size - 1 | 0); u = u + 1 | 0) {\n yStart1 = offset - size | 0;\n yStart2 = offset + size | 0;\n xStart1 = u - 1 | 0;\n xStart2 = u + 1 | 0;\n sum = (images[inImagePtr + yStart1 + xStart1 | 0] | 0) + (images[inImagePtr + yStart1 + xStart2 | 0] | 0) + (images[inImagePtr + offset + u | 0] | 0) + (images[inImagePtr + yStart2 + xStart1 | 0] | 0) + (images[inImagePtr + yStart2 + xStart2 | 0] | 0) | 0;\n if ((sum | 0) > (0 | 0)) {\n images[outImagePtr + offset + u | 0] = 1;\n } else {\n images[outImagePtr + offset + u | 0] = 0;\n }\n }\n }\n return;\n }\n function memcpy(srcImagePtr, dstImagePtr) {\n srcImagePtr = srcImagePtr | 0;\n dstImagePtr = dstImagePtr | 0;\n var length = 0;\n length = imul(size, size) | 0;\n while ((length | 0) > 0) {\n length = length - 1 | 0;\n images[dstImagePtr + length | 0] = images[srcImagePtr + length | 0] | 0;\n }\n }\n function zeroBorder(imagePtr) {\n imagePtr = imagePtr | 0;\n var x = 0,\n y = 0;\n for (x = 0; (x | 0) < (size - 1 | 0); x = x + 1 | 0) {\n images[imagePtr + x | 0] = 0;\n images[imagePtr + y | 0] = 0;\n y = y + size - 1 | 0;\n images[imagePtr + y | 0] = 0;\n y = y + 1 | 0;\n }\n for (x = 0; (x | 0) < (size | 0); x = x + 1 | 0) {\n images[imagePtr + y | 0] = 0;\n y = y + 1 | 0;\n }\n }\n function skeletonize() {\n var subImagePtr = 0,\n erodedImagePtr = 0,\n tempImagePtr = 0,\n skelImagePtr = 0,\n sum = 0,\n done = 0;\n erodedImagePtr = imul(size, size) | 0;\n tempImagePtr = erodedImagePtr + erodedImagePtr | 0;\n skelImagePtr = tempImagePtr + erodedImagePtr | 0;\n\n // init skel-image\n init(skelImagePtr, 0);\n zeroBorder(subImagePtr);\n do {\n erode(subImagePtr, erodedImagePtr);\n dilate(erodedImagePtr, tempImagePtr);\n subtract(subImagePtr, tempImagePtr, tempImagePtr);\n bitwiseOr(skelImagePtr, tempImagePtr, skelImagePtr);\n memcpy(erodedImagePtr, subImagePtr);\n sum = countNonZero(subImagePtr) | 0;\n done = (sum | 0) == 0 | 0;\n } while (!done);\n }\n return {\n skeletonize: skeletonize\n };\n }\n /* @preserve ASM END */\n /* harmony default export */\n __webpack_exports__[\"a\"] = Skeletonizer;\n /* eslint-enable eqeqeq*/\n\n /***/\n }, /* 67 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1);\n function TwoOfFiveReader(opts) {\n __WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].call(this, opts);\n this.barSpaceRatio = [1, 1];\n }\n var N = 1,\n W = 3,\n properties = {\n START_PATTERN: {\n value: [W, N, W, N, N, N]\n },\n STOP_PATTERN: {\n value: [W, N, N, N, W]\n },\n CODE_PATTERN: {\n value: [[N, N, W, W, N], [W, N, N, N, W], [N, W, N, N, W], [W, W, N, N, N], [N, N, W, N, W], [W, N, W, N, N], [N, W, W, N, N], [N, N, N, W, W], [W, N, N, W, N], [N, W, N, W, N]]\n },\n SINGLE_CODE_ERROR: {\n value: 0.78,\n writable: true\n },\n AVG_CODE_ERROR: {\n value: 0.30,\n writable: true\n },\n FORMAT: {\n value: \"2of5\"\n }\n };\n var startPatternLength = properties.START_PATTERN.value.reduce(function (sum, val) {\n return sum + val;\n }, 0);\n TwoOfFiveReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].prototype, properties);\n TwoOfFiveReader.prototype.constructor = TwoOfFiveReader;\n TwoOfFiveReader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder) {\n var counter = [],\n self = this,\n i,\n counterPos = 0,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0\n },\n error,\n j,\n sum,\n epsilon = self.AVG_CODE_ERROR;\n isWhite = isWhite || false;\n tryHarder = tryHarder || false;\n if (!offset) {\n offset = self._nextSet(self._row);\n }\n for (i = 0; i < pattern.length; i++) {\n counter[i] = 0;\n }\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n sum = 0;\n for (j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n error = self._matchPattern(counter, pattern);\n if (error < epsilon) {\n bestMatch.error = error;\n bestMatch.start = i - sum;\n bestMatch.end = i;\n return bestMatch;\n }\n if (tryHarder) {\n for (j = 0; j < counter.length - 2; j++) {\n counter[j] = counter[j + 2];\n }\n counter[counter.length - 2] = 0;\n counter[counter.length - 1] = 0;\n counterPos--;\n } else {\n return null;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n TwoOfFiveReader.prototype._findStart = function () {\n var self = this,\n leadingWhitespaceStart,\n offset = self._nextSet(self._row),\n startInfo,\n narrowBarWidth = 1;\n while (!startInfo) {\n startInfo = self._findPattern(self.START_PATTERN, offset, false, true);\n if (!startInfo) {\n return null;\n }\n narrowBarWidth = Math.floor((startInfo.end - startInfo.start) / startPatternLength);\n leadingWhitespaceStart = startInfo.start - narrowBarWidth * 5;\n if (leadingWhitespaceStart >= 0) {\n if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) {\n return startInfo;\n }\n }\n offset = startInfo.end;\n startInfo = null;\n }\n };\n TwoOfFiveReader.prototype._verifyTrailingWhitespace = function (endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2;\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n return null;\n };\n TwoOfFiveReader.prototype._findEnd = function () {\n var self = this,\n endInfo,\n tmp,\n offset;\n self._row.reverse();\n offset = self._nextSet(self._row);\n endInfo = self._findPattern(self.STOP_PATTERN, offset, false, true);\n self._row.reverse();\n if (endInfo === null) {\n return null;\n }\n\n // reverse numbers\n tmp = endInfo.start;\n endInfo.start = self._row.length - endInfo.end;\n endInfo.end = self._row.length - tmp;\n return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null;\n };\n TwoOfFiveReader.prototype._decodeCode = function (counter) {\n var j,\n self = this,\n sum = 0,\n normalized,\n error,\n epsilon = self.AVG_CODE_ERROR,\n code,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0\n };\n for (j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n for (code = 0; code < self.CODE_PATTERN.length; code++) {\n error = self._matchPattern(counter, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n if (bestMatch.error < epsilon) {\n return bestMatch;\n }\n };\n TwoOfFiveReader.prototype._decodePayload = function (counters, result, decodedCodes) {\n var i,\n self = this,\n pos = 0,\n counterLength = counters.length,\n counter = [0, 0, 0, 0, 0],\n code;\n while (pos < counterLength) {\n for (i = 0; i < 5; i++) {\n counter[i] = counters[pos] * this.barSpaceRatio[0];\n pos += 2;\n }\n code = self._decodeCode(counter);\n if (!code) {\n return null;\n }\n result.push(code.code + \"\");\n decodedCodes.push(code);\n }\n return code;\n };\n TwoOfFiveReader.prototype._verifyCounterLength = function (counters) {\n return counters.length % 10 === 0;\n };\n TwoOfFiveReader.prototype._decode = function () {\n var startInfo,\n endInfo,\n self = this,\n code,\n result = [],\n decodedCodes = [],\n counters;\n startInfo = self._findStart();\n if (!startInfo) {\n return null;\n }\n decodedCodes.push(startInfo);\n endInfo = self._findEnd();\n if (!endInfo) {\n return null;\n }\n counters = self._fillCounters(startInfo.end, endInfo.start, false);\n if (!self._verifyCounterLength(counters)) {\n return null;\n }\n code = self._decodePayload(counters, result, decodedCodes);\n if (!code) {\n return null;\n }\n if (result.length < 5) {\n return null;\n }\n decodedCodes.push(endInfo);\n return {\n code: result.join(\"\"),\n start: startInfo.start,\n end: endInfo.end,\n startInfo: startInfo,\n decodedCodes: decodedCodes\n };\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = TwoOfFiveReader;\n\n /***/\n }, /* 68 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1);\n function CodabarReader() {\n __WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].call(this);\n this._counters = [];\n }\n var properties = {\n ALPHABETH_STRING: {\n value: \"0123456789-$:/.+ABCD\"\n },\n ALPHABET: {\n value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 45, 36, 58, 47, 46, 43, 65, 66, 67, 68]\n },\n CHARACTER_ENCODINGS: {\n value: [0x003, 0x006, 0x009, 0x060, 0x012, 0x042, 0x021, 0x024, 0x030, 0x048, 0x00c, 0x018, 0x045, 0x051, 0x054, 0x015, 0x01A, 0x029, 0x00B, 0x00E]\n },\n START_END: {\n value: [0x01A, 0x029, 0x00B, 0x00E]\n },\n MIN_ENCODED_CHARS: {\n value: 4\n },\n MAX_ACCEPTABLE: {\n value: 2.0\n },\n PADDING: {\n value: 1.5\n },\n FORMAT: {\n value: \"codabar\",\n writeable: false\n }\n };\n CodabarReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].prototype, properties);\n CodabarReader.prototype.constructor = CodabarReader;\n CodabarReader.prototype._decode = function () {\n var self = this,\n result = [],\n start,\n decodedChar,\n pattern,\n nextStart,\n end;\n this._counters = self._fillCounters();\n start = self._findStart();\n if (!start) {\n return null;\n }\n nextStart = start.startCounter;\n do {\n pattern = self._toPattern(nextStart);\n if (pattern < 0) {\n return null;\n }\n decodedChar = self._patternToChar(pattern);\n if (decodedChar < 0) {\n return null;\n }\n result.push(decodedChar);\n nextStart += 8;\n if (result.length > 1 && self._isStartEnd(pattern)) {\n break;\n }\n } while (nextStart < self._counters.length);\n\n // verify end\n if (result.length - 2 < self.MIN_ENCODED_CHARS || !self._isStartEnd(pattern)) {\n return null;\n }\n\n // verify end white space\n if (!self._verifyWhitespace(start.startCounter, nextStart - 8)) {\n return null;\n }\n if (!self._validateResult(result, start.startCounter)) {\n return null;\n }\n nextStart = nextStart > self._counters.length ? self._counters.length : nextStart;\n end = start.start + self._sumCounters(start.startCounter, nextStart - 8);\n return {\n code: result.join(\"\"),\n start: start.start,\n end: end,\n startInfo: start,\n decodedCodes: result\n };\n };\n CodabarReader.prototype._verifyWhitespace = function (startCounter, endCounter) {\n if (startCounter - 1 <= 0 || this._counters[startCounter - 1] >= this._calculatePatternLength(startCounter) / 2.0) {\n if (endCounter + 8 >= this._counters.length || this._counters[endCounter + 7] >= this._calculatePatternLength(endCounter) / 2.0) {\n return true;\n }\n }\n return false;\n };\n CodabarReader.prototype._calculatePatternLength = function (offset) {\n var i,\n sum = 0;\n for (i = offset; i < offset + 7; i++) {\n sum += this._counters[i];\n }\n return sum;\n };\n CodabarReader.prototype._thresholdResultPattern = function (result, startCounter) {\n var self = this,\n categorization = {\n space: {\n narrow: {\n size: 0,\n counts: 0,\n min: 0,\n max: Number.MAX_VALUE\n },\n wide: {\n size: 0,\n counts: 0,\n min: 0,\n max: Number.MAX_VALUE\n }\n },\n bar: {\n narrow: {\n size: 0,\n counts: 0,\n min: 0,\n max: Number.MAX_VALUE\n },\n wide: {\n size: 0,\n counts: 0,\n min: 0,\n max: Number.MAX_VALUE\n }\n }\n },\n kind,\n cat,\n i,\n j,\n pos = startCounter,\n pattern;\n for (i = 0; i < result.length; i++) {\n pattern = self._charToPattern(result[i]);\n for (j = 6; j >= 0; j--) {\n kind = (j & 1) === 2 ? categorization.bar : categorization.space;\n cat = (pattern & 1) === 1 ? kind.wide : kind.narrow;\n cat.size += self._counters[pos + j];\n cat.counts++;\n pattern >>= 1;\n }\n pos += 8;\n }\n [\"space\", \"bar\"].forEach(function (key) {\n var newkind = categorization[key];\n newkind.wide.min = Math.floor((newkind.narrow.size / newkind.narrow.counts + newkind.wide.size / newkind.wide.counts) / 2);\n newkind.narrow.max = Math.ceil(newkind.wide.min);\n newkind.wide.max = Math.ceil((newkind.wide.size * self.MAX_ACCEPTABLE + self.PADDING) / newkind.wide.counts);\n });\n return categorization;\n };\n CodabarReader.prototype._charToPattern = function (char) {\n var self = this,\n charCode = char.charCodeAt(0),\n i;\n for (i = 0; i < self.ALPHABET.length; i++) {\n if (self.ALPHABET[i] === charCode) {\n return self.CHARACTER_ENCODINGS[i];\n }\n }\n return 0x0;\n };\n CodabarReader.prototype._validateResult = function (result, startCounter) {\n var self = this,\n thresholds = self._thresholdResultPattern(result, startCounter),\n i,\n j,\n kind,\n cat,\n size,\n pos = startCounter,\n pattern;\n for (i = 0; i < result.length; i++) {\n pattern = self._charToPattern(result[i]);\n for (j = 6; j >= 0; j--) {\n kind = (j & 1) === 0 ? thresholds.bar : thresholds.space;\n cat = (pattern & 1) === 1 ? kind.wide : kind.narrow;\n size = self._counters[pos + j];\n if (size < cat.min || size > cat.max) {\n return false;\n }\n pattern >>= 1;\n }\n pos += 8;\n }\n return true;\n };\n CodabarReader.prototype._patternToChar = function (pattern) {\n var i,\n self = this;\n for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) {\n if (self.CHARACTER_ENCODINGS[i] === pattern) {\n return String.fromCharCode(self.ALPHABET[i]);\n }\n }\n return -1;\n };\n CodabarReader.prototype._computeAlternatingThreshold = function (offset, end) {\n var i,\n min = Number.MAX_VALUE,\n max = 0,\n counter;\n for (i = offset; i < end; i += 2) {\n counter = this._counters[i];\n if (counter > max) {\n max = counter;\n }\n if (counter < min) {\n min = counter;\n }\n }\n return (min + max) / 2.0 | 0;\n };\n CodabarReader.prototype._toPattern = function (offset) {\n var numCounters = 7,\n end = offset + numCounters,\n barThreshold,\n spaceThreshold,\n bitmask = 1 << numCounters - 1,\n pattern = 0,\n i,\n threshold;\n if (end > this._counters.length) {\n return -1;\n }\n barThreshold = this._computeAlternatingThreshold(offset, end);\n spaceThreshold = this._computeAlternatingThreshold(offset + 1, end);\n for (i = 0; i < numCounters; i++) {\n threshold = (i & 1) === 0 ? barThreshold : spaceThreshold;\n if (this._counters[offset + i] > threshold) {\n pattern |= bitmask;\n }\n bitmask >>= 1;\n }\n return pattern;\n };\n CodabarReader.prototype._isStartEnd = function (pattern) {\n var i;\n for (i = 0; i < this.START_END.length; i++) {\n if (this.START_END[i] === pattern) {\n return true;\n }\n }\n return false;\n };\n CodabarReader.prototype._sumCounters = function (start, end) {\n var i,\n sum = 0;\n for (i = start; i < end; i++) {\n sum += this._counters[i];\n }\n return sum;\n };\n CodabarReader.prototype._findStart = function () {\n var self = this,\n i,\n pattern,\n start = self._nextUnset(self._row),\n end;\n for (i = 1; i < this._counters.length; i++) {\n pattern = self._toPattern(i);\n if (pattern !== -1 && self._isStartEnd(pattern)) {\n // TODO: Look for whitespace ahead\n start += self._sumCounters(0, i);\n end = start + self._sumCounters(i, i + 8);\n return {\n start: start,\n end: end,\n startCounter: i,\n endCounter: i + 8\n };\n }\n }\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = CodabarReader;\n\n /***/\n }, /* 69 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1);\n function Code128Reader() {\n __WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].call(this);\n }\n var properties = {\n CODE_SHIFT: {\n value: 98\n },\n CODE_C: {\n value: 99\n },\n CODE_B: {\n value: 100\n },\n CODE_A: {\n value: 101\n },\n START_CODE_A: {\n value: 103\n },\n START_CODE_B: {\n value: 104\n },\n START_CODE_C: {\n value: 105\n },\n STOP_CODE: {\n value: 106\n },\n CODE_PATTERN: {\n value: [[2, 1, 2, 2, 2, 2], [2, 2, 2, 1, 2, 2], [2, 2, 2, 2, 2, 1], [1, 2, 1, 2, 2, 3], [1, 2, 1, 3, 2, 2], [1, 3, 1, 2, 2, 2], [1, 2, 2, 2, 1, 3], [1, 2, 2, 3, 1, 2], [1, 3, 2, 2, 1, 2], [2, 2, 1, 2, 1, 3], [2, 2, 1, 3, 1, 2], [2, 3, 1, 2, 1, 2], [1, 1, 2, 2, 3, 2], [1, 2, 2, 1, 3, 2], [1, 2, 2, 2, 3, 1], [1, 1, 3, 2, 2, 2], [1, 2, 3, 1, 2, 2], [1, 2, 3, 2, 2, 1], [2, 2, 3, 2, 1, 1], [2, 2, 1, 1, 3, 2], [2, 2, 1, 2, 3, 1], [2, 1, 3, 2, 1, 2], [2, 2, 3, 1, 1, 2], [3, 1, 2, 1, 3, 1], [3, 1, 1, 2, 2, 2], [3, 2, 1, 1, 2, 2], [3, 2, 1, 2, 2, 1], [3, 1, 2, 2, 1, 2], [3, 2, 2, 1, 1, 2], [3, 2, 2, 2, 1, 1], [2, 1, 2, 1, 2, 3], [2, 1, 2, 3, 2, 1], [2, 3, 2, 1, 2, 1], [1, 1, 1, 3, 2, 3], [1, 3, 1, 1, 2, 3], [1, 3, 1, 3, 2, 1], [1, 1, 2, 3, 1, 3], [1, 3, 2, 1, 1, 3], [1, 3, 2, 3, 1, 1], [2, 1, 1, 3, 1, 3], [2, 3, 1, 1, 1, 3], [2, 3, 1, 3, 1, 1], [1, 1, 2, 1, 3, 3], [1, 1, 2, 3, 3, 1], [1, 3, 2, 1, 3, 1], [1, 1, 3, 1, 2, 3], [1, 1, 3, 3, 2, 1], [1, 3, 3, 1, 2, 1], [3, 1, 3, 1, 2, 1], [2, 1, 1, 3, 3, 1], [2, 3, 1, 1, 3, 1], [2, 1, 3, 1, 1, 3], [2, 1, 3, 3, 1, 1], [2, 1, 3, 1, 3, 1], [3, 1, 1, 1, 2, 3], [3, 1, 1, 3, 2, 1], [3, 3, 1, 1, 2, 1], [3, 1, 2, 1, 1, 3], [3, 1, 2, 3, 1, 1], [3, 3, 2, 1, 1, 1], [3, 1, 4, 1, 1, 1], [2, 2, 1, 4, 1, 1], [4, 3, 1, 1, 1, 1], [1, 1, 1, 2, 2, 4], [1, 1, 1, 4, 2, 2], [1, 2, 1, 1, 2, 4], [1, 2, 1, 4, 2, 1], [1, 4, 1, 1, 2, 2], [1, 4, 1, 2, 2, 1], [1, 1, 2, 2, 1, 4], [1, 1, 2, 4, 1, 2], [1, 2, 2, 1, 1, 4], [1, 2, 2, 4, 1, 1], [1, 4, 2, 1, 1, 2], [1, 4, 2, 2, 1, 1], [2, 4, 1, 2, 1, 1], [2, 2, 1, 1, 1, 4], [4, 1, 3, 1, 1, 1], [2, 4, 1, 1, 1, 2], [1, 3, 4, 1, 1, 1], [1, 1, 1, 2, 4, 2], [1, 2, 1, 1, 4, 2], [1, 2, 1, 2, 4, 1], [1, 1, 4, 2, 1, 2], [1, 2, 4, 1, 1, 2], [1, 2, 4, 2, 1, 1], [4, 1, 1, 2, 1, 2], [4, 2, 1, 1, 1, 2], [4, 2, 1, 2, 1, 1], [2, 1, 2, 1, 4, 1], [2, 1, 4, 1, 2, 1], [4, 1, 2, 1, 2, 1], [1, 1, 1, 1, 4, 3], [1, 1, 1, 3, 4, 1], [1, 3, 1, 1, 4, 1], [1, 1, 4, 1, 1, 3], [1, 1, 4, 3, 1, 1], [4, 1, 1, 1, 1, 3], [4, 1, 1, 3, 1, 1], [1, 1, 3, 1, 4, 1], [1, 1, 4, 1, 3, 1], [3, 1, 1, 1, 4, 1], [4, 1, 1, 1, 3, 1], [2, 1, 1, 4, 1, 2], [2, 1, 1, 2, 1, 4], [2, 1, 1, 2, 3, 2], [2, 3, 3, 1, 1, 1, 2]]\n },\n SINGLE_CODE_ERROR: {\n value: 0.64\n },\n AVG_CODE_ERROR: {\n value: 0.30\n },\n FORMAT: {\n value: \"code_128\",\n writeable: false\n },\n MODULE_INDICES: {\n value: {\n bar: [0, 2, 4],\n space: [1, 3, 5]\n }\n }\n };\n Code128Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].prototype, properties);\n Code128Reader.prototype.constructor = Code128Reader;\n Code128Reader.prototype._decodeCode = function (start, correction) {\n var counter = [0, 0, 0, 0, 0, 0],\n i,\n self = this,\n offset = start,\n isWhite = !self._row[offset],\n counterPos = 0,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: start,\n end: start,\n correction: {\n bar: 1,\n space: 1\n }\n },\n code,\n error;\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n if (correction) {\n self._correct(counter, correction);\n }\n for (code = 0; code < self.CODE_PATTERN.length; code++) {\n error = self._matchPattern(counter, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n bestMatch.end = i;\n if (bestMatch.code === -1 || bestMatch.error > self.AVG_CODE_ERROR) {\n return null;\n }\n if (self.CODE_PATTERN[bestMatch.code]) {\n bestMatch.correction.bar = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.bar);\n bestMatch.correction.space = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.space);\n }\n return bestMatch;\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n Code128Reader.prototype._correct = function (counter, correction) {\n this._correctBars(counter, correction.bar, this.MODULE_INDICES.bar);\n this._correctBars(counter, correction.space, this.MODULE_INDICES.space);\n };\n Code128Reader.prototype._findStart = function () {\n var counter = [0, 0, 0, 0, 0, 0],\n i,\n self = this,\n offset = self._nextSet(self._row),\n isWhite = false,\n counterPos = 0,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0,\n correction: {\n bar: 1,\n space: 1\n }\n },\n code,\n error,\n j,\n sum;\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n sum = 0;\n for (j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n for (code = self.START_CODE_A; code <= self.START_CODE_C; code++) {\n error = self._matchPattern(counter, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n if (bestMatch.error < self.AVG_CODE_ERROR) {\n bestMatch.start = i - sum;\n bestMatch.end = i;\n bestMatch.correction.bar = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.bar);\n bestMatch.correction.space = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.space);\n return bestMatch;\n }\n for (j = 0; j < 4; j++) {\n counter[j] = counter[j + 2];\n }\n counter[4] = 0;\n counter[5] = 0;\n counterPos--;\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n Code128Reader.prototype._decode = function () {\n var self = this,\n startInfo = self._findStart(),\n code = null,\n done = false,\n result = [],\n multiplier = 0,\n checksum = 0,\n codeset,\n rawResult = [],\n decodedCodes = [],\n shiftNext = false,\n unshift,\n removeLastCharacter = true;\n if (startInfo === null) {\n return null;\n }\n code = {\n code: startInfo.code,\n start: startInfo.start,\n end: startInfo.end,\n correction: {\n bar: startInfo.correction.bar,\n space: startInfo.correction.space\n }\n };\n decodedCodes.push(code);\n checksum = code.code;\n switch (code.code) {\n case self.START_CODE_A:\n codeset = self.CODE_A;\n break;\n case self.START_CODE_B:\n codeset = self.CODE_B;\n break;\n case self.START_CODE_C:\n codeset = self.CODE_C;\n break;\n default:\n return null;\n }\n while (!done) {\n unshift = shiftNext;\n shiftNext = false;\n code = self._decodeCode(code.end, code.correction);\n if (code !== null) {\n if (code.code !== self.STOP_CODE) {\n removeLastCharacter = true;\n }\n if (code.code !== self.STOP_CODE) {\n rawResult.push(code.code);\n multiplier++;\n checksum += multiplier * code.code;\n }\n decodedCodes.push(code);\n switch (codeset) {\n case self.CODE_A:\n if (code.code < 64) {\n result.push(String.fromCharCode(32 + code.code));\n } else if (code.code < 96) {\n result.push(String.fromCharCode(code.code - 64));\n } else {\n if (code.code !== self.STOP_CODE) {\n removeLastCharacter = false;\n }\n switch (code.code) {\n case self.CODE_SHIFT:\n shiftNext = true;\n codeset = self.CODE_B;\n break;\n case self.CODE_B:\n codeset = self.CODE_B;\n break;\n case self.CODE_C:\n codeset = self.CODE_C;\n break;\n case self.STOP_CODE:\n done = true;\n break;\n }\n }\n break;\n case self.CODE_B:\n if (code.code < 96) {\n result.push(String.fromCharCode(32 + code.code));\n } else {\n if (code.code !== self.STOP_CODE) {\n removeLastCharacter = false;\n }\n switch (code.code) {\n case self.CODE_SHIFT:\n shiftNext = true;\n codeset = self.CODE_A;\n break;\n case self.CODE_A:\n codeset = self.CODE_A;\n break;\n case self.CODE_C:\n codeset = self.CODE_C;\n break;\n case self.STOP_CODE:\n done = true;\n break;\n }\n }\n break;\n case self.CODE_C:\n if (code.code < 100) {\n result.push(code.code < 10 ? \"0\" + code.code : code.code);\n } else {\n if (code.code !== self.STOP_CODE) {\n removeLastCharacter = false;\n }\n switch (code.code) {\n case self.CODE_A:\n codeset = self.CODE_A;\n break;\n case self.CODE_B:\n codeset = self.CODE_B;\n break;\n case self.STOP_CODE:\n done = true;\n break;\n }\n }\n break;\n }\n } else {\n done = true;\n }\n if (unshift) {\n codeset = codeset === self.CODE_A ? self.CODE_B : self.CODE_A;\n }\n }\n if (code === null) {\n return null;\n }\n code.end = self._nextUnset(self._row, code.end);\n if (!self._verifyTrailingWhitespace(code)) {\n return null;\n }\n checksum -= multiplier * rawResult[rawResult.length - 1];\n if (checksum % 103 !== rawResult[rawResult.length - 1]) {\n return null;\n }\n if (!result.length) {\n return null;\n }\n\n // remove last code from result (checksum)\n if (removeLastCharacter) {\n result.splice(result.length - 1, 1);\n }\n return {\n code: result.join(\"\"),\n start: startInfo.start,\n end: code.end,\n codeset: codeset,\n startInfo: startInfo,\n decodedCodes: decodedCodes,\n endInfo: code\n };\n };\n __WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].prototype._verifyTrailingWhitespace = function (endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2;\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n return null;\n };\n function calculateCorrection(expected, normalized, indices) {\n var length = indices.length,\n sumNormalized = 0,\n sumExpected = 0;\n while (length--) {\n sumExpected += expected[indices[length]];\n sumNormalized += normalized[indices[length]];\n }\n return sumExpected / sumNormalized;\n }\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = Code128Reader;\n\n /***/\n }, /* 70 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__code_39_reader__ = __webpack_require__(31);\n function Code39VINReader() {\n __WEBPACK_IMPORTED_MODULE_0__code_39_reader__[\"a\" /* default */].call(this);\n }\n var patterns = {\n IOQ: /[IOQ]/g,\n AZ09: /[A-Z0-9]{17}/\n };\n Code39VINReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__code_39_reader__[\"a\" /* default */].prototype);\n Code39VINReader.prototype.constructor = Code39VINReader;\n\n // Cribbed from:\n // https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/client/result/VINResultParser.java\n Code39VINReader.prototype._decode = function () {\n var result = __WEBPACK_IMPORTED_MODULE_0__code_39_reader__[\"a\" /* default */].prototype._decode.apply(this);\n if (!result) {\n return null;\n }\n var code = result.code;\n if (!code) {\n return null;\n }\n code = code.replace(patterns.IOQ, '');\n if (!code.match(patterns.AZ09)) {\n if (true) {\n console.log('Failed AZ09 pattern code:', code);\n }\n return null;\n }\n if (!this._checkChecksum(code)) {\n return null;\n }\n result.code = code;\n return result;\n };\n Code39VINReader.prototype._checkChecksum = function (code) {\n // TODO\n return !!code;\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = Code39VINReader;\n\n /***/\n }, /* 71 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__common_array_helper__ = __webpack_require__(3);\n function Code93Reader() {\n __WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].call(this);\n }\n var ALPHABETH_STRING = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*\";\n var properties = {\n ALPHABETH_STRING: {\n value: ALPHABETH_STRING\n },\n ALPHABET: {\n value: ALPHABETH_STRING.split('').map(function (char) {\n return char.charCodeAt(0);\n })\n },\n CHARACTER_ENCODINGS: {\n value: [0x114, 0x148, 0x144, 0x142, 0x128, 0x124, 0x122, 0x150, 0x112, 0x10A, 0x1A8, 0x1A4, 0x1A2, 0x194, 0x192, 0x18A, 0x168, 0x164, 0x162, 0x134, 0x11A, 0x158, 0x14C, 0x146, 0x12C, 0x116, 0x1B4, 0x1B2, 0x1AC, 0x1A6, 0x196, 0x19A, 0x16C, 0x166, 0x136, 0x13A, 0x12E, 0x1D4, 0x1D2, 0x1CA, 0x16E, 0x176, 0x1AE, 0x126, 0x1DA, 0x1D6, 0x132, 0x15E]\n },\n ASTERISK: {\n value: 0x15E\n },\n FORMAT: {\n value: \"code_93\",\n writeable: false\n }\n };\n Code93Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__[\"a\" /* default */].prototype, properties);\n Code93Reader.prototype.constructor = Code93Reader;\n Code93Reader.prototype._decode = function () {\n var self = this,\n counters = [0, 0, 0, 0, 0, 0],\n result = [],\n start = self._findStart(),\n decodedChar,\n lastStart,\n pattern,\n nextStart;\n if (!start) {\n return null;\n }\n nextStart = self._nextSet(self._row, start.end);\n do {\n counters = self._toCounters(nextStart, counters);\n pattern = self._toPattern(counters);\n if (pattern < 0) {\n return null;\n }\n decodedChar = self._patternToChar(pattern);\n if (decodedChar < 0) {\n return null;\n }\n result.push(decodedChar);\n lastStart = nextStart;\n nextStart += __WEBPACK_IMPORTED_MODULE_1__common_array_helper__[\"a\" /* default */].sum(counters);\n nextStart = self._nextSet(self._row, nextStart);\n } while (decodedChar !== '*');\n result.pop();\n if (!result.length) {\n return null;\n }\n if (!self._verifyEnd(lastStart, nextStart, counters)) {\n return null;\n }\n if (!self._verifyChecksums(result)) {\n return null;\n }\n result = result.slice(0, result.length - 2);\n if ((result = self._decodeExtended(result)) === null) {\n return null;\n }\n ;\n return {\n code: result.join(\"\"),\n start: start.start,\n end: nextStart,\n startInfo: start,\n decodedCodes: result\n };\n };\n Code93Reader.prototype._verifyEnd = function (lastStart, nextStart) {\n if (lastStart === nextStart || !this._row[nextStart]) {\n return false;\n }\n return true;\n };\n Code93Reader.prototype._patternToChar = function (pattern) {\n var i,\n self = this;\n for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) {\n if (self.CHARACTER_ENCODINGS[i] === pattern) {\n return String.fromCharCode(self.ALPHABET[i]);\n }\n }\n return -1;\n };\n Code93Reader.prototype._toPattern = function (counters) {\n var numCounters = counters.length;\n var pattern = 0;\n var sum = 0;\n for (var i = 0; i < numCounters; i++) {\n sum += counters[i];\n }\n for (var _i = 0; _i < numCounters; _i++) {\n var normalized = Math.round(counters[_i] * 9 / sum);\n if (normalized < 1 || normalized > 4) {\n return -1;\n }\n if ((_i & 1) === 0) {\n for (var j = 0; j < normalized; j++) {\n pattern = pattern << 1 | 1;\n }\n } else {\n pattern <<= normalized;\n }\n }\n return pattern;\n };\n Code93Reader.prototype._findStart = function () {\n var self = this,\n offset = self._nextSet(self._row),\n patternStart = offset,\n counter = [0, 0, 0, 0, 0, 0],\n counterPos = 0,\n isWhite = false,\n i,\n j,\n whiteSpaceMustStart;\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n // find start pattern\n if (self._toPattern(counter) === self.ASTERISK) {\n whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - (i - patternStart) / 4));\n if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) {\n return {\n start: patternStart,\n end: i\n };\n }\n }\n patternStart += counter[0] + counter[1];\n for (j = 0; j < 4; j++) {\n counter[j] = counter[j + 2];\n }\n counter[4] = 0;\n counter[5] = 0;\n counterPos--;\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n Code93Reader.prototype._decodeExtended = function (charArray) {\n var length = charArray.length;\n var result = [];\n for (var i = 0; i < length; i++) {\n var char = charArray[i];\n if (char >= 'a' && char <= 'd') {\n if (i > length - 2) {\n return null;\n }\n var nextChar = charArray[++i];\n var nextCharCode = nextChar.charCodeAt(0);\n var decodedChar = void 0;\n switch (char) {\n case 'a':\n if (nextChar >= 'A' && nextChar <= 'Z') {\n decodedChar = String.fromCharCode(nextCharCode - 64);\n } else {\n return null;\n }\n break;\n case 'b':\n if (nextChar >= 'A' && nextChar <= 'E') {\n decodedChar = String.fromCharCode(nextCharCode - 38);\n } else if (nextChar >= 'F' && nextChar <= 'J') {\n decodedChar = String.fromCharCode(nextCharCode - 11);\n } else if (nextChar >= 'K' && nextChar <= 'O') {\n decodedChar = String.fromCharCode(nextCharCode + 16);\n } else if (nextChar >= 'P' && nextChar <= 'S') {\n decodedChar = String.fromCharCode(nextCharCode + 43);\n } else if (nextChar >= 'T' && nextChar <= 'Z') {\n decodedChar = String.fromCharCode(127);\n } else {\n return null;\n }\n break;\n case 'c':\n if (nextChar >= 'A' && nextChar <= 'O') {\n decodedChar = String.fromCharCode(nextCharCode - 32);\n } else if (nextChar === 'Z') {\n decodedChar = ':';\n } else {\n return null;\n }\n break;\n case 'd':\n if (nextChar >= 'A' && nextChar <= 'Z') {\n decodedChar = String.fromCharCode(nextCharCode + 32);\n } else {\n return null;\n }\n break;\n }\n result.push(decodedChar);\n } else {\n result.push(char);\n }\n }\n return result;\n };\n Code93Reader.prototype._verifyChecksums = function (charArray) {\n return this._matchCheckChar(charArray, charArray.length - 2, 20) && this._matchCheckChar(charArray, charArray.length - 1, 15);\n };\n Code93Reader.prototype._matchCheckChar = function (charArray, index, maxWeight) {\n var _this = this;\n var arrayToCheck = charArray.slice(0, index);\n var length = arrayToCheck.length;\n var weightedSums = arrayToCheck.reduce(function (sum, char, i) {\n var weight = (i * -1 + (length - 1)) % maxWeight + 1;\n var value = _this.ALPHABET.indexOf(char.charCodeAt(0));\n return sum + weight * value;\n }, 0);\n var checkChar = this.ALPHABET[weightedSums % 47];\n return checkChar === charArray[index].charCodeAt(0);\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = Code93Reader;\n\n /***/\n }, /* 72 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4);\n function EAN2Reader() {\n __WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].call(this);\n }\n var properties = {\n FORMAT: {\n value: \"ean_2\",\n writeable: false\n }\n };\n EAN2Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].prototype, properties);\n EAN2Reader.prototype.constructor = EAN2Reader;\n EAN2Reader.prototype.decode = function (row, start) {\n this._row = row;\n var counters = [0, 0, 0, 0],\n codeFrequency = 0,\n i = 0,\n offset = start,\n end = this._row.length,\n code,\n result = [],\n decodedCodes = [];\n for (i = 0; i < 2 && offset < end; i++) {\n code = this._decodeCode(offset);\n if (!code) {\n return null;\n }\n decodedCodes.push(code);\n result.push(code.code % 10);\n if (code.code >= this.CODE_G_START) {\n codeFrequency |= 1 << 1 - i;\n }\n if (i != 1) {\n offset = this._nextSet(this._row, code.end);\n offset = this._nextUnset(this._row, offset);\n }\n }\n if (result.length != 2 || parseInt(result.join(\"\")) % 4 !== codeFrequency) {\n return null;\n }\n return {\n code: result.join(\"\"),\n decodedCodes: decodedCodes,\n end: code.end\n };\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = EAN2Reader;\n\n /***/\n }, /* 73 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4);\n function EAN5Reader() {\n __WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].call(this);\n }\n var properties = {\n FORMAT: {\n value: \"ean_5\",\n writeable: false\n }\n };\n var CHECK_DIGIT_ENCODINGS = [24, 20, 18, 17, 12, 6, 3, 10, 9, 5];\n EAN5Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].prototype, properties);\n EAN5Reader.prototype.constructor = EAN5Reader;\n EAN5Reader.prototype.decode = function (row, start) {\n this._row = row;\n var counters = [0, 0, 0, 0],\n codeFrequency = 0,\n i = 0,\n offset = start,\n end = this._row.length,\n code,\n result = [],\n decodedCodes = [];\n for (i = 0; i < 5 && offset < end; i++) {\n code = this._decodeCode(offset);\n if (!code) {\n return null;\n }\n decodedCodes.push(code);\n result.push(code.code % 10);\n if (code.code >= this.CODE_G_START) {\n codeFrequency |= 1 << 4 - i;\n }\n if (i != 4) {\n offset = this._nextSet(this._row, code.end);\n offset = this._nextUnset(this._row, offset);\n }\n }\n if (result.length != 5) {\n return null;\n }\n if (extensionChecksum(result) !== determineCheckDigit(codeFrequency)) {\n return null;\n }\n return {\n code: result.join(\"\"),\n decodedCodes: decodedCodes,\n end: code.end\n };\n };\n function determineCheckDigit(codeFrequency) {\n var i;\n for (i = 0; i < 10; i++) {\n if (codeFrequency === CHECK_DIGIT_ENCODINGS[i]) {\n return i;\n }\n }\n return null;\n }\n function extensionChecksum(result) {\n var length = result.length,\n sum = 0,\n i;\n for (i = length - 2; i >= 0; i -= 2) {\n sum += result[i];\n }\n sum *= 3;\n for (i = length - 1; i >= 0; i -= 2) {\n sum += result[i];\n }\n sum *= 3;\n return sum % 10;\n }\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = EAN5Reader;\n\n /***/\n }, /* 74 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4);\n function EAN8Reader(opts, supplements) {\n __WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].call(this, opts, supplements);\n }\n var properties = {\n FORMAT: {\n value: \"ean_8\",\n writeable: false\n }\n };\n EAN8Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].prototype, properties);\n EAN8Reader.prototype.constructor = EAN8Reader;\n EAN8Reader.prototype._decodePayload = function (code, result, decodedCodes) {\n var i,\n self = this;\n for (i = 0; i < 4; i++) {\n code = self._decodeCode(code.end, self.CODE_G_START);\n if (!code) {\n return null;\n }\n result.push(code.code);\n decodedCodes.push(code);\n }\n code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false);\n if (code === null) {\n return null;\n }\n decodedCodes.push(code);\n for (i = 0; i < 4; i++) {\n code = self._decodeCode(code.end, self.CODE_G_START);\n if (!code) {\n return null;\n }\n decodedCodes.push(code);\n result.push(code.code);\n }\n return code;\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = EAN8Reader;\n\n /***/\n }, /* 75 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__);\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(1);\n function I2of5Reader(opts) {\n opts = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()(getDefaulConfig(), opts);\n __WEBPACK_IMPORTED_MODULE_1__barcode_reader__[\"a\" /* default */].call(this, opts);\n this.barSpaceRatio = [1, 1];\n if (opts.normalizeBarSpaceWidth) {\n this.SINGLE_CODE_ERROR = 0.38;\n this.AVG_CODE_ERROR = 0.09;\n }\n }\n function getDefaulConfig() {\n var config = {};\n Object.keys(I2of5Reader.CONFIG_KEYS).forEach(function (key) {\n config[key] = I2of5Reader.CONFIG_KEYS[key].default;\n });\n return config;\n }\n var N = 1,\n W = 3,\n properties = {\n START_PATTERN: {\n value: [N, N, N, N]\n },\n STOP_PATTERN: {\n value: [N, N, W]\n },\n CODE_PATTERN: {\n value: [[N, N, W, W, N], [W, N, N, N, W], [N, W, N, N, W], [W, W, N, N, N], [N, N, W, N, W], [W, N, W, N, N], [N, W, W, N, N], [N, N, N, W, W], [W, N, N, W, N], [N, W, N, W, N]]\n },\n SINGLE_CODE_ERROR: {\n value: 0.78,\n writable: true\n },\n AVG_CODE_ERROR: {\n value: 0.38,\n writable: true\n },\n MAX_CORRECTION_FACTOR: {\n value: 5\n },\n FORMAT: {\n value: \"i2of5\"\n }\n };\n I2of5Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_1__barcode_reader__[\"a\" /* default */].prototype, properties);\n I2of5Reader.prototype.constructor = I2of5Reader;\n I2of5Reader.prototype._matchPattern = function (counter, code) {\n if (this.config.normalizeBarSpaceWidth) {\n var i,\n counterSum = [0, 0],\n codeSum = [0, 0],\n correction = [0, 0],\n correctionRatio = this.MAX_CORRECTION_FACTOR,\n correctionRatioInverse = 1 / correctionRatio;\n for (i = 0; i < counter.length; i++) {\n counterSum[i % 2] += counter[i];\n codeSum[i % 2] += code[i];\n }\n correction[0] = codeSum[0] / counterSum[0];\n correction[1] = codeSum[1] / counterSum[1];\n correction[0] = Math.max(Math.min(correction[0], correctionRatio), correctionRatioInverse);\n correction[1] = Math.max(Math.min(correction[1], correctionRatio), correctionRatioInverse);\n this.barSpaceRatio = correction;\n for (i = 0; i < counter.length; i++) {\n counter[i] *= this.barSpaceRatio[i % 2];\n }\n }\n return __WEBPACK_IMPORTED_MODULE_1__barcode_reader__[\"a\" /* default */].prototype._matchPattern.call(this, counter, code);\n };\n I2of5Reader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder) {\n var counter = [],\n self = this,\n i,\n counterPos = 0,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0\n },\n error,\n j,\n sum,\n normalized,\n epsilon = self.AVG_CODE_ERROR;\n isWhite = isWhite || false;\n tryHarder = tryHarder || false;\n if (!offset) {\n offset = self._nextSet(self._row);\n }\n for (i = 0; i < pattern.length; i++) {\n counter[i] = 0;\n }\n for (i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n sum = 0;\n for (j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n error = self._matchPattern(counter, pattern);\n if (error < epsilon) {\n bestMatch.error = error;\n bestMatch.start = i - sum;\n bestMatch.end = i;\n return bestMatch;\n }\n if (tryHarder) {\n for (j = 0; j < counter.length - 2; j++) {\n counter[j] = counter[j + 2];\n }\n counter[counter.length - 2] = 0;\n counter[counter.length - 1] = 0;\n counterPos--;\n } else {\n return null;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n I2of5Reader.prototype._findStart = function () {\n var self = this,\n leadingWhitespaceStart,\n offset = self._nextSet(self._row),\n startInfo,\n narrowBarWidth = 1;\n while (!startInfo) {\n startInfo = self._findPattern(self.START_PATTERN, offset, false, true);\n if (!startInfo) {\n return null;\n }\n narrowBarWidth = Math.floor((startInfo.end - startInfo.start) / 4);\n leadingWhitespaceStart = startInfo.start - narrowBarWidth * 10;\n if (leadingWhitespaceStart >= 0) {\n if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) {\n return startInfo;\n }\n }\n offset = startInfo.end;\n startInfo = null;\n }\n };\n I2of5Reader.prototype._verifyTrailingWhitespace = function (endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2;\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n return null;\n };\n I2of5Reader.prototype._findEnd = function () {\n var self = this,\n endInfo,\n tmp;\n self._row.reverse();\n endInfo = self._findPattern(self.STOP_PATTERN);\n self._row.reverse();\n if (endInfo === null) {\n return null;\n }\n\n // reverse numbers\n tmp = endInfo.start;\n endInfo.start = self._row.length - endInfo.end;\n endInfo.end = self._row.length - tmp;\n return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null;\n };\n I2of5Reader.prototype._decodePair = function (counterPair) {\n var i,\n code,\n codes = [],\n self = this;\n for (i = 0; i < counterPair.length; i++) {\n code = self._decodeCode(counterPair[i]);\n if (!code) {\n return null;\n }\n codes.push(code);\n }\n return codes;\n };\n I2of5Reader.prototype._decodeCode = function (counter) {\n var j,\n self = this,\n sum = 0,\n normalized,\n error,\n epsilon = self.AVG_CODE_ERROR,\n code,\n bestMatch = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0\n };\n for (j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n for (code = 0; code < self.CODE_PATTERN.length; code++) {\n error = self._matchPattern(counter, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n if (bestMatch.error < epsilon) {\n return bestMatch;\n }\n };\n I2of5Reader.prototype._decodePayload = function (counters, result, decodedCodes) {\n var i,\n self = this,\n pos = 0,\n counterLength = counters.length,\n counterPair = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]],\n codes;\n while (pos < counterLength) {\n for (i = 0; i < 5; i++) {\n counterPair[0][i] = counters[pos] * this.barSpaceRatio[0];\n counterPair[1][i] = counters[pos + 1] * this.barSpaceRatio[1];\n pos += 2;\n }\n codes = self._decodePair(counterPair);\n if (!codes) {\n return null;\n }\n for (i = 0; i < codes.length; i++) {\n result.push(codes[i].code + \"\");\n decodedCodes.push(codes[i]);\n }\n }\n return codes;\n };\n I2of5Reader.prototype._verifyCounterLength = function (counters) {\n return counters.length % 10 === 0;\n };\n I2of5Reader.prototype._decode = function () {\n var startInfo,\n endInfo,\n self = this,\n code,\n result = [],\n decodedCodes = [],\n counters;\n startInfo = self._findStart();\n if (!startInfo) {\n return null;\n }\n decodedCodes.push(startInfo);\n endInfo = self._findEnd();\n if (!endInfo) {\n return null;\n }\n counters = self._fillCounters(startInfo.end, endInfo.start, false);\n if (!self._verifyCounterLength(counters)) {\n return null;\n }\n code = self._decodePayload(counters, result, decodedCodes);\n if (!code) {\n return null;\n }\n if (result.length % 2 !== 0 || result.length < 6) {\n return null;\n }\n decodedCodes.push(endInfo);\n return {\n code: result.join(\"\"),\n start: startInfo.start,\n end: endInfo.end,\n startInfo: startInfo,\n decodedCodes: decodedCodes\n };\n };\n I2of5Reader.CONFIG_KEYS = {\n normalizeBarSpaceWidth: {\n 'type': 'boolean',\n 'default': false,\n 'description': 'If true, the reader tries to normalize the' + 'width-difference between bars and spaces'\n }\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = I2of5Reader;\n\n /***/\n }, /* 76 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4);\n function UPCEReader(opts, supplements) {\n __WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].call(this, opts, supplements);\n }\n var properties = {\n CODE_FREQUENCY: {\n value: [[56, 52, 50, 49, 44, 38, 35, 42, 41, 37], [7, 11, 13, 14, 19, 25, 28, 21, 22, 26]]\n },\n STOP_PATTERN: {\n value: [1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7]\n },\n FORMAT: {\n value: \"upc_e\",\n writeable: false\n }\n };\n UPCEReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].prototype, properties);\n UPCEReader.prototype.constructor = UPCEReader;\n UPCEReader.prototype._decodePayload = function (code, result, decodedCodes) {\n var i,\n self = this,\n codeFrequency = 0x0;\n for (i = 0; i < 6; i++) {\n code = self._decodeCode(code.end);\n if (!code) {\n return null;\n }\n if (code.code >= self.CODE_G_START) {\n code.code = code.code - self.CODE_G_START;\n codeFrequency |= 1 << 5 - i;\n }\n result.push(code.code);\n decodedCodes.push(code);\n }\n if (!self._determineParity(codeFrequency, result)) {\n return null;\n }\n return code;\n };\n UPCEReader.prototype._determineParity = function (codeFrequency, result) {\n var i, nrSystem;\n for (nrSystem = 0; nrSystem < this.CODE_FREQUENCY.length; nrSystem++) {\n for (i = 0; i < this.CODE_FREQUENCY[nrSystem].length; i++) {\n if (codeFrequency === this.CODE_FREQUENCY[nrSystem][i]) {\n result.unshift(nrSystem);\n result.push(i);\n return true;\n }\n }\n }\n return false;\n };\n UPCEReader.prototype._convertToUPCA = function (result) {\n var upca = [result[0]],\n lastDigit = result[result.length - 2];\n if (lastDigit <= 2) {\n upca = upca.concat(result.slice(1, 3)).concat([lastDigit, 0, 0, 0, 0]).concat(result.slice(3, 6));\n } else if (lastDigit === 3) {\n upca = upca.concat(result.slice(1, 4)).concat([0, 0, 0, 0, 0]).concat(result.slice(4, 6));\n } else if (lastDigit === 4) {\n upca = upca.concat(result.slice(1, 5)).concat([0, 0, 0, 0, 0, result[5]]);\n } else {\n upca = upca.concat(result.slice(1, 6)).concat([0, 0, 0, 0, lastDigit]);\n }\n upca.push(result[result.length - 1]);\n return upca;\n };\n UPCEReader.prototype._checksum = function (result) {\n return __WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].prototype._checksum.call(this, this._convertToUPCA(result));\n };\n UPCEReader.prototype._findEnd = function (offset, isWhite) {\n isWhite = true;\n return __WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].prototype._findEnd.call(this, offset, isWhite);\n };\n UPCEReader.prototype._verifyTrailingWhitespace = function (endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2;\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = UPCEReader;\n\n /***/\n }, /* 77 */\n /***/function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n /* harmony import */\n var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4);\n function UPCReader(opts, supplements) {\n __WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].call(this, opts, supplements);\n }\n var properties = {\n FORMAT: {\n value: \"upc_a\",\n writeable: false\n }\n };\n UPCReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].prototype, properties);\n UPCReader.prototype.constructor = UPCReader;\n UPCReader.prototype._decode = function () {\n var result = __WEBPACK_IMPORTED_MODULE_0__ean_reader__[\"a\" /* default */].prototype._decode.call(this);\n if (result && result.code && result.code.length === 13 && result.code.charAt(0) === \"0\") {\n result.code = result.code.substring(1);\n return result;\n }\n return null;\n };\n\n /* harmony default export */\n __webpack_exports__[\"a\"] = UPCReader;\n\n /***/\n }, /* 78 */\n /***/function (module, exports) {\n module.exports = copy;\n\n /**\n * Copy the values from one mat2 to another\n *\n * @alias mat2.copy\n * @param {mat2} out the receiving matrix\n * @param {mat2} a the source matrix\n * @returns {mat2} out\n */\n function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n }\n\n /***/\n }, /* 79 */\n /***/function (module, exports) {\n module.exports = create;\n\n /**\n * Creates a new identity mat2\n *\n * @alias mat2.create\n * @returns {mat2} a new 2x2 matrix\n */\n function create() {\n var out = new Float32Array(4);\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n }\n\n /***/\n }, /* 80 */\n /***/function (module, exports) {\n module.exports = invert;\n\n /**\n * Inverts a mat2\n *\n * @alias mat2.invert\n * @param {mat2} out the receiving matrix\n * @param {mat2} a the source matrix\n * @returns {mat2} out\n */\n function invert(out, a) {\n var a0 = a[0];\n var a1 = a[1];\n var a2 = a[2];\n var a3 = a[3];\n var det = a0 * a3 - a2 * a1;\n if (!det) return null;\n det = 1.0 / det;\n out[0] = a3 * det;\n out[1] = -a1 * det;\n out[2] = -a2 * det;\n out[3] = a0 * det;\n return out;\n }\n\n /***/\n }, /* 81 */\n /***/function (module, exports) {\n module.exports = scale;\n\n /**\n * Scales a vec2 by a scalar number\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec2} out\n */\n function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n }\n\n /***/\n }, /* 82 */\n /***/function (module, exports) {\n module.exports = transformMat2;\n\n /**\n * Transforms the vec2 with a mat2\n *\n * @param {vec2} out the receiving vector\n * @param {vec2} a the vector to transform\n * @param {mat2} m matrix to transform with\n * @returns {vec2} out\n */\n function transformMat2(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n }\n\n /***/\n }, /* 83 */\n /***/function (module, exports) {\n module.exports = clone;\n\n /**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {vec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n function clone(a) {\n var out = new Float32Array(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n }\n\n /***/\n }, /* 84 */\n /***/function (module, exports, __webpack_require__) {\n var hashClear = __webpack_require__(122),\n hashDelete = __webpack_require__(123),\n hashGet = __webpack_require__(124),\n hashHas = __webpack_require__(125),\n hashSet = __webpack_require__(126);\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n module.exports = Hash;\n\n /***/\n }, /* 85 */\n /***/function (module, exports, __webpack_require__) {\n var ListCache = __webpack_require__(10),\n stackClear = __webpack_require__(149),\n stackDelete = __webpack_require__(150),\n stackGet = __webpack_require__(151),\n stackHas = __webpack_require__(152),\n stackSet = __webpack_require__(153);\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n module.exports = Stack;\n\n /***/\n }, /* 86 */\n /***/function (module, exports, __webpack_require__) {\n var root = __webpack_require__(5);\n\n /** Built-in value references. */\n var Uint8Array = root.Uint8Array;\n module.exports = Uint8Array;\n\n /***/\n }, /* 87 */\n /***/function (module, exports) {\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n module.exports = apply;\n\n /***/\n }, /* 88 */\n /***/function (module, exports, __webpack_require__) {\n var baseTimes = __webpack_require__(107),\n isArguments = __webpack_require__(18),\n isArray = __webpack_require__(2),\n isBuffer = __webpack_require__(44),\n isIndex = __webpack_require__(15),\n isTypedArray = __webpack_require__(45);\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') ||\n // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n }\n module.exports = arrayLikeKeys;\n\n /***/\n }, /* 89 */\n /***/function (module, exports) {\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n module.exports = arrayMap;\n\n /***/\n }, /* 90 */\n /***/function (module, exports) {\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n module.exports = arrayPush;\n\n /***/\n }, /* 91 */\n /***/function (module, exports, __webpack_require__) {\n var isObject = __webpack_require__(0);\n\n /** Built-in value references. */\n var objectCreate = Object.create;\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = function () {\n function object() {}\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined;\n return result;\n };\n }();\n module.exports = baseCreate;\n\n /***/\n }, /* 92 */\n /***/function (module, exports, __webpack_require__) {\n var arrayPush = __webpack_require__(90),\n isFlattenable = __webpack_require__(128);\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n predicate || (predicate = isFlattenable);\n result || (result = []);\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n module.exports = baseFlatten;\n\n /***/\n }, /* 93 */\n /***/function (module, exports, __webpack_require__) {\n var createBaseFor = __webpack_require__(117);\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n module.exports = baseFor;\n\n /***/\n }, /* 94 */\n /***/function (module, exports, __webpack_require__) {\n var castPath = __webpack_require__(13),\n toKey = __webpack_require__(23);\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n var index = 0,\n length = path.length;\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return index && index == length ? object : undefined;\n }\n module.exports = baseGet;\n\n /***/\n }, /* 95 */\n /***/function (module, exports) {\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n module.exports = baseHasIn;\n\n /***/\n }, /* 96 */\n /***/function (module, exports, __webpack_require__) {\n var baseGetTag = __webpack_require__(8),\n isObjectLike = __webpack_require__(6);\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]';\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n module.exports = baseIsArguments;\n\n /***/\n }, /* 97 */\n /***/function (module, exports, __webpack_require__) {\n var isFunction = __webpack_require__(25),\n isMasked = __webpack_require__(132),\n isObject = __webpack_require__(0),\n toSource = __webpack_require__(155);\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used for built-in method references. */\n var funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n module.exports = baseIsNative;\n\n /***/\n }, /* 98 */\n /***/function (module, exports, __webpack_require__) {\n var baseGetTag = __webpack_require__(8),\n isLength = __webpack_require__(26),\n isObjectLike = __webpack_require__(6);\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n module.exports = baseIsTypedArray;\n\n /***/\n }, /* 99 */\n /***/function (module, exports, __webpack_require__) {\n var isObject = __webpack_require__(0),\n isPrototype = __webpack_require__(40),\n nativeKeysIn = __webpack_require__(144);\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n module.exports = baseKeysIn;\n\n /***/\n }, /* 100 */\n /***/function (module, exports, __webpack_require__) {\n var Stack = __webpack_require__(85),\n assignMergeValue = __webpack_require__(35),\n baseFor = __webpack_require__(93),\n baseMergeDeep = __webpack_require__(101),\n isObject = __webpack_require__(0),\n keysIn = __webpack_require__(46);\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function (srcValue, key) {\n if (isObject(srcValue)) {\n stack || (stack = new Stack());\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(object[key], srcValue, key + '', object, source, stack) : undefined;\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n module.exports = baseMerge;\n\n /***/\n }, /* 101 */\n /***/function (module, exports, __webpack_require__) {\n var assignMergeValue = __webpack_require__(35),\n cloneBuffer = __webpack_require__(111),\n cloneTypedArray = __webpack_require__(112),\n copyArray = __webpack_require__(113),\n initCloneObject = __webpack_require__(127),\n isArguments = __webpack_require__(18),\n isArray = __webpack_require__(2),\n isArrayLikeObject = __webpack_require__(159),\n isBuffer = __webpack_require__(44),\n isFunction = __webpack_require__(25),\n isObject = __webpack_require__(0),\n isPlainObject = __webpack_require__(160),\n isTypedArray = __webpack_require__(45),\n toPlainObject = __webpack_require__(164);\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = object[key],\n srcValue = source[key],\n stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;\n var isCommon = newValue === undefined;\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || srcIndex && isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n module.exports = baseMergeDeep;\n\n /***/\n }, /* 102 */\n /***/function (module, exports, __webpack_require__) {\n var basePickBy = __webpack_require__(103),\n hasIn = __webpack_require__(158);\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function (value, path) {\n return hasIn(object, path);\n });\n }\n module.exports = basePick;\n\n /***/\n }, /* 103 */\n /***/function (module, exports, __webpack_require__) {\n var baseGet = __webpack_require__(94),\n baseSet = __webpack_require__(105),\n castPath = __webpack_require__(13);\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n module.exports = basePickBy;\n\n /***/\n }, /* 104 */\n /***/function (module, exports, __webpack_require__) {\n var identity = __webpack_require__(43),\n overRest = __webpack_require__(41),\n setToString = __webpack_require__(42);\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n module.exports = baseRest;\n\n /***/\n }, /* 105 */\n /***/function (module, exports, __webpack_require__) {\n var assignValue = __webpack_require__(36),\n castPath = __webpack_require__(13),\n isIndex = __webpack_require__(15),\n isObject = __webpack_require__(0),\n toKey = __webpack_require__(23);\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n module.exports = baseSet;\n\n /***/\n }, /* 106 */\n /***/function (module, exports, __webpack_require__) {\n var constant = __webpack_require__(156),\n defineProperty = __webpack_require__(37),\n identity = __webpack_require__(43);\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function (func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n module.exports = baseSetToString;\n\n /***/\n }, /* 107 */\n /***/function (module, exports) {\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n module.exports = baseTimes;\n\n /***/\n }, /* 108 */\n /***/function (module, exports, __webpack_require__) {\n var Symbol = __webpack_require__(11),\n arrayMap = __webpack_require__(89),\n isArray = __webpack_require__(2),\n isSymbol = __webpack_require__(27);\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0;\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n }\n module.exports = baseToString;\n\n /***/\n }, /* 109 */\n /***/function (module, exports) {\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function (value) {\n return func(value);\n };\n }\n module.exports = baseUnary;\n\n /***/\n }, /* 110 */\n /***/function (module, exports, __webpack_require__) {\n var Uint8Array = __webpack_require__(86);\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n module.exports = cloneArrayBuffer;\n\n /***/\n }, /* 111 */\n /***/function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */(function (module) {\n var root = __webpack_require__(5);\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Built-in value references. */\n var Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n }\n module.exports = cloneBuffer;\n\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(29)(module));\n\n /***/\n }, /* 112 */\n /***/function (module, exports, __webpack_require__) {\n var cloneArrayBuffer = __webpack_require__(110);\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n module.exports = cloneTypedArray;\n\n /***/\n }, /* 113 */\n /***/function (module, exports) {\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n module.exports = copyArray;\n\n /***/\n }, /* 114 */\n /***/function (module, exports, __webpack_require__) {\n var assignValue = __webpack_require__(36),\n baseAssignValue = __webpack_require__(21);\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n module.exports = copyObject;\n\n /***/\n }, /* 115 */\n /***/function (module, exports, __webpack_require__) {\n var root = __webpack_require__(5);\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = root['__core-js_shared__'];\n module.exports = coreJsData;\n\n /***/\n }, /* 116 */\n /***/function (module, exports, __webpack_require__) {\n var baseRest = __webpack_require__(104),\n isIterateeCall = __webpack_require__(129);\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function (object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n module.exports = createAssigner;\n\n /***/\n }, /* 117 */\n /***/function (module, exports) {\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function (object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n module.exports = createBaseFor;\n\n /***/\n }, /* 118 */\n /***/function (module, exports, __webpack_require__) {\n var flatten = __webpack_require__(157),\n overRest = __webpack_require__(41),\n setToString = __webpack_require__(42);\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n module.exports = flatRest;\n\n /***/\n }, /* 119 */\n /***/function (module, exports, __webpack_require__) {\n var Symbol = __webpack_require__(11);\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var 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 */\n var nativeObjectToString = objectProto.toString;\n\n /** Built-in value references. */\n var 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 */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\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 module.exports = getRawTag;\n\n /***/\n }, /* 120 */\n /***/function (module, exports) {\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n module.exports = getValue;\n\n /***/\n }, /* 121 */\n /***/function (module, exports, __webpack_require__) {\n var castPath = __webpack_require__(13),\n isArguments = __webpack_require__(18),\n isArray = __webpack_require__(2),\n isIndex = __webpack_require__(15),\n isLength = __webpack_require__(26),\n toKey = __webpack_require__(23);\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1,\n length = path.length,\n result = false;\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n }\n module.exports = hasPath;\n\n /***/\n }, /* 122 */\n /***/function (module, exports, __webpack_require__) {\n var nativeCreate = __webpack_require__(16);\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n module.exports = hashClear;\n\n /***/\n }, /* 123 */\n /***/function (module, exports) {\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n module.exports = hashDelete;\n\n /***/\n }, /* 124 */\n /***/function (module, exports, __webpack_require__) {\n var nativeCreate = __webpack_require__(16);\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n module.exports = hashGet;\n\n /***/\n }, /* 125 */\n /***/function (module, exports, __webpack_require__) {\n var nativeCreate = __webpack_require__(16);\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n }\n module.exports = hashHas;\n\n /***/\n }, /* 126 */\n /***/function (module, exports, __webpack_require__) {\n var nativeCreate = __webpack_require__(16);\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n }\n module.exports = hashSet;\n\n /***/\n }, /* 127 */\n /***/function (module, exports, __webpack_require__) {\n var baseCreate = __webpack_require__(91),\n getPrototype = __webpack_require__(39),\n isPrototype = __webpack_require__(40);\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n }\n module.exports = initCloneObject;\n\n /***/\n }, /* 128 */\n /***/function (module, exports, __webpack_require__) {\n var Symbol = __webpack_require__(11),\n isArguments = __webpack_require__(18),\n isArray = __webpack_require__(2);\n\n /** Built-in value references. */\n var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n module.exports = isFlattenable;\n\n /***/\n }, /* 129 */\n /***/function (module, exports, __webpack_require__) {\n var eq = __webpack_require__(17),\n isArrayLike = __webpack_require__(24),\n isIndex = __webpack_require__(15),\n isObject = __webpack_require__(0);\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n return false;\n }\n module.exports = isIterateeCall;\n\n /***/\n }, /* 130 */\n /***/function (module, exports, __webpack_require__) {\n var isArray = __webpack_require__(2),\n isSymbol = __webpack_require__(27);\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n }\n module.exports = isKey;\n\n /***/\n }, /* 131 */\n /***/function (module, exports) {\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n }\n module.exports = isKeyable;\n\n /***/\n }, /* 132 */\n /***/function (module, exports, __webpack_require__) {\n var coreJsData = __webpack_require__(115);\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n }();\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n }\n module.exports = isMasked;\n\n /***/\n }, /* 133 */\n /***/function (module, exports) {\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n module.exports = listCacheClear;\n\n /***/\n }, /* 134 */\n /***/function (module, exports, __webpack_require__) {\n var assocIndexOf = __webpack_require__(12);\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype;\n\n /** Built-in value references. */\n var splice = arrayProto.splice;\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n module.exports = listCacheDelete;\n\n /***/\n }, /* 135 */\n /***/function (module, exports, __webpack_require__) {\n var assocIndexOf = __webpack_require__(12);\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n }\n module.exports = listCacheGet;\n\n /***/\n }, /* 136 */\n /***/function (module, exports, __webpack_require__) {\n var assocIndexOf = __webpack_require__(12);\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n module.exports = listCacheHas;\n\n /***/\n }, /* 137 */\n /***/function (module, exports, __webpack_require__) {\n var assocIndexOf = __webpack_require__(12);\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n module.exports = listCacheSet;\n\n /***/\n }, /* 138 */\n /***/function (module, exports, __webpack_require__) {\n var Hash = __webpack_require__(84),\n ListCache = __webpack_require__(10),\n Map = __webpack_require__(33);\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n }\n module.exports = mapCacheClear;\n\n /***/\n }, /* 139 */\n /***/function (module, exports, __webpack_require__) {\n var getMapData = __webpack_require__(14);\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n module.exports = mapCacheDelete;\n\n /***/\n }, /* 140 */\n /***/function (module, exports, __webpack_require__) {\n var getMapData = __webpack_require__(14);\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n module.exports = mapCacheGet;\n\n /***/\n }, /* 141 */\n /***/function (module, exports, __webpack_require__) {\n var getMapData = __webpack_require__(14);\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n module.exports = mapCacheHas;\n\n /***/\n }, /* 142 */\n /***/function (module, exports, __webpack_require__) {\n var getMapData = __webpack_require__(14);\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n module.exports = mapCacheSet;\n\n /***/\n }, /* 143 */\n /***/function (module, exports, __webpack_require__) {\n var memoize = __webpack_require__(161);\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function (key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result.cache;\n return result;\n }\n module.exports = memoizeCapped;\n\n /***/\n }, /* 144 */\n /***/function (module, exports) {\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n module.exports = nativeKeysIn;\n\n /***/\n }, /* 145 */\n /***/function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */(function (module) {\n var freeGlobal = __webpack_require__(38);\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = function () {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }();\n module.exports = nodeUtil;\n\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(29)(module));\n\n /***/\n }, /* 146 */\n /***/function (module, exports) {\n /** Used for built-in method references. */\n var 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 */\n var 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 */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n module.exports = objectToString;\n\n /***/\n }, /* 147 */\n /***/function (module, exports) {\n /**\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 */\n function overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n }\n module.exports = overArg;\n\n /***/\n }, /* 148 */\n /***/function (module, exports) {\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeNow = Date.now;\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n return function () {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n module.exports = shortOut;\n\n /***/\n }, /* 149 */\n /***/function (module, exports, __webpack_require__) {\n var ListCache = __webpack_require__(10);\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n }\n module.exports = stackClear;\n\n /***/\n }, /* 150 */\n /***/function (module, exports) {\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\n }\n module.exports = stackDelete;\n\n /***/\n }, /* 151 */\n /***/function (module, exports) {\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n module.exports = stackGet;\n\n /***/\n }, /* 152 */\n /***/function (module, exports) {\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n module.exports = stackHas;\n\n /***/\n }, /* 153 */\n /***/function (module, exports, __webpack_require__) {\n var ListCache = __webpack_require__(10),\n Map = __webpack_require__(33),\n MapCache = __webpack_require__(34);\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n module.exports = stackSet;\n\n /***/\n }, /* 154 */\n /***/function (module, exports, __webpack_require__) {\n var memoizeCapped = __webpack_require__(143);\n\n /** Used to match property names within property paths. */\n var reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function (string) {\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function (match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : number || match);\n });\n return result;\n });\n module.exports = stringToPath;\n\n /***/\n }, /* 155 */\n /***/function (module, exports) {\n /** Used for built-in method references. */\n var funcProto = Function.prototype;\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return func + '';\n } catch (e) {}\n }\n return '';\n }\n module.exports = toSource;\n\n /***/\n }, /* 156 */\n /***/function (module, exports) {\n /**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\n function constant(value) {\n return function () {\n return value;\n };\n }\n module.exports = constant;\n\n /***/\n }, /* 157 */\n /***/function (module, exports, __webpack_require__) {\n var baseFlatten = __webpack_require__(92);\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n module.exports = flatten;\n\n /***/\n }, /* 158 */\n /***/function (module, exports, __webpack_require__) {\n var baseHasIn = __webpack_require__(95),\n hasPath = __webpack_require__(121);\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n module.exports = hasIn;\n\n /***/\n }, /* 159 */\n /***/function (module, exports, __webpack_require__) {\n var isArrayLike = __webpack_require__(24),\n isObjectLike = __webpack_require__(6);\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n module.exports = isArrayLikeObject;\n\n /***/\n }, /* 160 */\n /***/function (module, exports, __webpack_require__) {\n var baseGetTag = __webpack_require__(8),\n getPrototype = __webpack_require__(39),\n isObjectLike = __webpack_require__(6);\n\n /** `Object#toString` result references. */\n var objectTag = '[object Object]';\n\n /** Used for built-in method references. */\n var funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to infer the `Object` constructor. */\n var 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 */\n function 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 && funcToString.call(Ctor) == objectCtorString;\n }\n module.exports = isPlainObject;\n\n /***/\n }, /* 161 */\n /***/function (module, exports, __webpack_require__) {\n var MapCache = __webpack_require__(34);\n\n /** Error message constants. */\n var FUNC_ERROR_TEXT = 'Expected a function';\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || resolver != null && typeof resolver != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function () {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n module.exports = memoize;\n\n /***/\n }, /* 162 */\n /***/function (module, exports, __webpack_require__) {\n var basePick = __webpack_require__(102),\n flatRest = __webpack_require__(118);\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function (object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n module.exports = pick;\n\n /***/\n }, /* 163 */\n /***/function (module, exports) {\n /**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\n function stubFalse() {\n return false;\n }\n module.exports = stubFalse;\n\n /***/\n }, /* 164 */\n /***/function (module, exports, __webpack_require__) {\n var copyObject = __webpack_require__(114),\n keysIn = __webpack_require__(46);\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n module.exports = toPlainObject;\n\n /***/\n }, /* 165 */\n /***/function (module, exports, __webpack_require__) {\n var baseToString = __webpack_require__(108);\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n module.exports = toString;\n\n /***/\n }, /* 166 */\n /***/function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(48);\n\n /***/\n }\n /******/])\n );\n});\n\n;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n};\nimport { useCallback, useEffect, useState } from \"react\";\nvar EMPTY_ARRAY = [];\nexport function useUnmount(fn) {\n useEffect(function () {\n return fn;\n }, EMPTY_ARRAY);\n}\nexport function useForceUpdate() {\n var _a = __read(useState(0), 2),\n setTick = _a[1];\n var update = useCallback(function () {\n setTick(function (tick) {\n return tick + 1;\n });\n }, []);\n return update;\n}\nexport function isPlainObject(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n return !proto || proto === Object.prototype;\n}\nexport function getSymbol(name) {\n if (typeof Symbol === \"function\") {\n return Symbol.for(name);\n }\n return \"__$mobx-react \" + name + \"__\";\n}\nvar mockGlobal = {};\nexport function getGlobal() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}","import { types as schema, getSnapshot } from \"mobx-state-tree\"\n\nimport Member from \"../member\"\n\nimport graph from \"../../graph\"\nimport loadDisplays from \"../../dynamic/displays\"\n\nconst Record = schema.model('record', {\n id: schema.identifier,\n genre: 'unclassed',\n name: schema.maybeNull(schema.string),\n byline: schema.maybeNull(schema.string),\n summary: schema.maybeNull(schema.string),\n imageAddress: schema.maybeNull(schema.string),\n language: \"English\",\n member: schema.maybeNull(schema.late(() => Member)),\n\n search_responses: schema.array(schema.model({\n name: '',\n byline: '',\n imageAddress: '',\n summary: '',\n })),\n}).actions(model => ({\n claim: (key, value) => { model[key] = value },\n\n change: (key, value) => {\n if(model.id !== '') {\n graph(`query ($id: ID!, $${key}: String!) {\n changeRecord (id: $id, ${key}: $${key}) {\n ${key}\n }\n }`)({ [key]: value, id: model.id })\n .then(response => model.claim(key, response.changeRecord.record[key]))\n } else {\n model.claim(key, value)\n }\n },\n\n record: () => {\n if(model.id === '') {\n return graph(`query (\n $name: String,\n $byline: String,\n $summary: String,\n $imageAddress: String,\n $genre: String,\n ) {\n addRecord (\n name: $name,\n byline: $byline,\n summary: $summary,\n imageAddress: $imageAddress,\n genre: $genre,\n ) {\n id\n }\n }`)(getSnapshot(model))\n .then(response => {\n if(response.id) {\n memory.claim('adding', null)\n memory.acquire_records()\n }\n })\n }\n },\n\n run_book_search: () => {\n model.claim('search_responses', [])\n\n fetch(`https://www.googleapis.com/books/v1/volumes?q=${\n `${model.author} ${model.name}`\n }`)\n .then(response => response.json())\n .then(response => {\n model.claim('search_responses', response.items.map((book) => ({\n id: '',\n name: book.volumeInfo.title,\n byline: book.volumeInfo.authors && book.volumeInfo.authors.join(\", \"),\n imageAddress: book.volumeInfo.imageLinks && book.volumeInfo.imageLinks.thumbnail,\n summary: book.volumeInfo.description,\n })))\n })\n },\n}))\n.views(model => ({\n get hash_address() {\n return model.genre + '/' +\n model\n .name\n .replaceAll(',', '')\n .replaceAll(':', '')\n .replaceAll('(', '')\n .replaceAll(')', '')\n .replaceAll('\\'', '')\n .replaceAll(' ', '-')\n .toLowerCase()\n },\n\n summarize(num_symbols) {\n var summary = model.summary || ''\n return summary.length < num_symbols\n ? summary\n : summary.slice(0, num_symbols) + \"...\"\n }\n}))\n\nexport default loadDisplays(Record)\n","import React from \"react\"\nimport BaseModal from \"styled-react-modal\"\n\nconst Modal = BaseModal.styled`\nbackground-color: #fbeed1;\npadding: 1rem;\nmax-height: 60vh;\nmax-width: calc(4 * 180px);\nborder: 2px solid black;\nborder-radius: 4px;\noverflow-y: scroll;\nfont-family: 'DM Mono', monospace;\n`\n\nexport default (props) => \n","import React from 'react';\nimport styled from \"styled-components\"\nimport { types as schema, getSnapshot } from \"mobx-state-tree\"\nimport { observable, runInAction } from 'mobx';\nimport { Observer, observer } from \"mobx-react\"\nimport loadable from \"@loadable/component\"\n\nconst display_cache = observable.map({});\n\nconst render = (record, model, display) => (\n {() => {\n var in_cache = false;\n try { in_cache = display_cache.get(model).get(display) }\n catch (e) { in_cache = false; }\n\n return (\n in_cache\n ? React.createElement(\n display_cache.get(model).get(display),\n { record, key: `${record.$treenode.path}:${display}` },\n )\n : null\n )\n }}\n)\n\nvar snake_case = (str) => (\n str && str\n .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n .map(s => s.toLowerCase())\n .join('_')\n)\n\nvar loadDisplays = (model) => {\n var name = snake_case(model.name)\n\n const displays = require\n .context('../models/', true, /\\.js$/)\n .keys()\n .map(node => new RegExp(`^\\./${name}/(.+)\\.display\\.js$`).exec(node)?.[1])\n .filter(node => node !== 'index')\n .filter(node => node !== null);\n\n displays.forEach(display => {\n var node = loadable(() => import(`../models/${name}/${display}.display`))\n if (!display_cache.get(name)) display_cache.set(name, observable.map({}))\n display_cache.get(name).set(display, node)\n });\n\n var displayable = schema\n .model({ _display: 'primary' })\n .actions(record => ({ claim: (key, assign) => record[key] = assign }))\n .views(record => {\n var screens = {}\n\n displays.forEach(display => screens[display] =\n () => render(record, model.name, display)\n )\n\n screens.display = ({ inicial = null, ...remaining }) => (\n typeof(record[record._display]) === 'function'\n ? record[record._display](remaining)\n : \n )\n\n return screens\n })\n\n return schema.compose(model.name, model, displayable)\n};\n\nvar NoDisplay = observer(({ record }) => (\n \n No display: {record.$treenode.type.name}:{record._display}.
\n Model:
{JSON.stringify(getSnapshot(record), null, 2)}
\n
\n))\n\nvar Red = styled.div`\n border: 2px solid #c91515;\n color: #c91515;\n background: #edb1b1;\n width: 40vw;\n`\n\nexport default loadDisplays\n","import { types as schema } from \"mobx-state-tree\"\n\nimport loadDisplays from \"../../dynamic/displays\"\n\nimport graph from \"../../graph\"\nimport ShippingCharge from \"../shipping_charge\"\n\nconst Member = schema.model('member', {\n id: schema.identifier,\n email: schema.string,\n\n name: schema.maybeNull(schema.string),\n surname: schema.maybeNull(schema.string),\n\n image: schema.maybeNull(schema.string),\n address: schema.maybeNull(schema.string),\n\n shippingCharges: schema.array(ShippingCharge),\n cashHandle: schema.maybeNull(schema.string),\n\n}).actions(self => ({\n claim: (key, value) => { self[key] = value },\n\n change: (key, value) => {\n graph(`query ($${key}: String!) {\n changeMe (${key}: $${key}) {\n ${key}\n }\n }`)({ [key]: value, id: self.id })\n .then(response => self.claim(key, response.changeMe[key]))\n },\n}))\n\nexport default loadDisplays(Member)\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","// 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;\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}\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}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\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}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\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}\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 = {};\nfunction noop() {}\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;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};","import { types } from \"mobx-state-tree\"\n\nimport Clock from \"./clock\"\nimport ShippingCharge from \"./shipping_charge\"\nimport Record from \"./record\"\n\nconst Hold = types.model({\n id: types.identifier,\n recordId: types.reference(Record),\n beginsOn: Clock,\n expiresOn: Clock,\n declinedOn: types.maybeNull(Clock),\n cancelledOn: types.maybeNull(Clock),\n})\n\nexport default Hold\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\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 return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\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 if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n var keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n return targetComponent;\n}\nmodule.exports = hoistNonReactStatics;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","module.exports = function (e) {\n var t = {};\n function r(n) {\n if (t[n]) return t[n].exports;\n var o = t[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports;\n }\n return r.m = e, r.c = t, r.d = function (e, t, n) {\n r.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, r.t = function (e, t) {\n if (1 & t && (e = r(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) r.d(n, o, function (t) {\n return e[t];\n }.bind(null, o));\n return n;\n }, r.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return r.d(t, \"a\", t), t;\n }, r.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, r.p = \"\", r(r.s = 6);\n}([function (e, t) {\n e.exports = require(\"react\");\n}, function (e, t, r) {\n e.exports = r(4)();\n}, function (e, t) {\n e.exports = require(\"styled-components\");\n}, function (e, t) {\n e.exports = require(\"react-dom\");\n}, function (e, t, r) {\n \"use strict\";\n\n var n = r(5);\n function o() {}\n function a() {}\n a.resetWarningCache = o, e.exports = function () {\n function e(e, t, r, o, a, u) {\n if (u !== n) {\n var c = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");\n throw c.name = \"Invariant Violation\", c;\n }\n }\n function t() {\n return e;\n }\n e.isRequired = e;\n var r = {\n array: e,\n bool: e,\n func: e,\n number: e,\n object: e,\n string: e,\n symbol: e,\n any: e,\n arrayOf: t,\n element: e,\n elementType: e,\n instanceOf: t,\n node: e,\n objectOf: t,\n oneOf: t,\n oneOfType: t,\n shape: t,\n exact: t,\n checkPropTypes: a,\n resetWarningCache: o\n };\n return r.PropTypes = r, r;\n };\n}, function (e, t, r) {\n \"use strict\";\n\n e.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n}, function (e, t, r) {\n \"use strict\";\n\n r.r(t), r.d(t, \"ModalProvider\", function () {\n return m;\n }), r.d(t, \"BaseModalBackground\", function () {\n return a;\n });\n var n = r(2),\n o = r.n(n),\n a = o.a.div.withConfig({\n displayName: \"baseStyles__BaseModalBackground\"\n })([\"display:flex;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:30;background-color:rgba(0,0,0,0.5);align-items:center;justify-content:center;\"]),\n u = r(0),\n c = r.n(u),\n i = r(1),\n l = r.n(i),\n f = c.a.createContext({}),\n s = f.Provider,\n p = f.Consumer;\n function d(e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n if (\"undefined\" == typeof Symbol || !(Symbol.iterator in Object(e))) return;\n var r = [],\n n = !0,\n o = !1,\n a = void 0;\n try {\n for (var u, c = e[Symbol.iterator](); !(n = (u = c.next()).done) && (r.push(u.value), !t || r.length !== t); n = !0);\n } catch (e) {\n o = !0, a = e;\n } finally {\n try {\n n || null == c.return || c.return();\n } finally {\n if (o) throw a;\n }\n }\n return r;\n }(e, t) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return y(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === r && e.constructor && (r = e.constructor.name);\n if (\"Map\" === r || \"Set\" === r) return Array.from(r);\n if (\"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return y(e, t);\n }(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function y(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var r = 0, n = new Array(t); r < t; r++) n[r] = e[r];\n return n;\n }\n function b(e) {\n var t = e.backgroundComponent,\n r = e.children,\n n = Object(u.useRef)(null),\n o = d(Object(u.useState)(null), 2),\n i = o[0],\n l = o[1],\n f = d(Object(u.useState)(a), 2),\n p = f[0],\n y = f[1];\n return Object(u.useEffect)(function () {\n t && y(t);\n }, [y, t]), Object(u.useEffect)(function () {\n l(n.current);\n }, [l, n]), c.a.createElement(s, {\n value: {\n modalNode: i,\n BackgroundComponent: p\n }\n }, r, c.a.createElement(\"div\", {\n ref: n\n }));\n }\n b.propTypes = {\n backgroundComponent: l.a.oneOfType([l.a.element, l.a.object])\n };\n var m = b,\n v = r(3),\n O = r.n(v);\n function g() {\n return (g = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);\n }\n return e;\n }).apply(this, arguments);\n }\n function h(e, t) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e, t) {\n if (\"undefined\" == typeof Symbol || !(Symbol.iterator in Object(e))) return;\n var r = [],\n n = !0,\n o = !1,\n a = void 0;\n try {\n for (var u, c = e[Symbol.iterator](); !(n = (u = c.next()).done) && (r.push(u.value), !t || r.length !== t); n = !0);\n } catch (e) {\n o = !0, a = e;\n } finally {\n try {\n n || null == c.return || c.return();\n } finally {\n if (o) throw a;\n }\n }\n return r;\n }(e, t) || function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return j(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === r && e.constructor && (r = e.constructor.name);\n if (\"Map\" === r || \"Set\" === r) return Array.from(r);\n if (\"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return j(e, t);\n }(e, t) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function j(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var r = 0, n = new Array(t); r < t; r++) n[r] = e[r];\n return n;\n }\n function w(e, t) {\n if (null == e) return {};\n var r,\n n,\n o = function (e, t) {\n if (null == e) return {};\n var r,\n n,\n o = {},\n a = Object.keys(e);\n for (n = 0; n < a.length; n++) r = a[n], t.indexOf(r) >= 0 || (o[r] = e[r]);\n return o;\n }(e, t);\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(e);\n for (n = 0; n < a.length; n++) r = a[n], t.indexOf(r) >= 0 || Object.prototype.propertyIsEnumerable.call(e, r) && (o[r] = e[r]);\n }\n return o;\n }\n function S(e) {\n var t,\n r = e.WrapperComponent,\n n = e.children,\n o = e.onBackgroundClick,\n a = e.onEscapeKeydown,\n i = e.allowScroll,\n l = e.beforeOpen,\n f = e.afterOpen,\n s = e.beforeClose,\n d = e.afterClose,\n y = e.backgroundProps,\n b = e.isOpen,\n m = w(e, [\"WrapperComponent\", \"children\", \"onBackgroundClick\", \"onEscapeKeydown\", \"allowScroll\", \"beforeOpen\", \"afterOpen\", \"beforeClose\", \"afterClose\", \"backgroundProps\", \"isOpen\"]),\n v = Object(u.useRef)(null),\n j = Object(u.useRef)(null),\n S = Object(u.useRef)(!1),\n C = h(Object(u.useState)(!1), 2),\n E = C[0],\n k = C[1];\n function P(e) {\n v.current === e.target && o && o(e);\n }\n return Object(u.useEffect)(function () {\n function e(e) {\n if (e) try {\n e().then(function () {\n return k(b);\n });\n } catch (e) {\n k(b);\n } else k(b);\n }\n E !== b && e(b ? l : s);\n }, [S, E, k, b, l, s]), Object(u.useEffect)(function () {\n E ? f && f() : S.current && d && d();\n }, [S, E, f, d]), Object(u.useEffect)(function () {\n function e(e) {\n \"Escape\" === e.key && a && a(e);\n }\n return E && document.addEventListener(\"keydown\", e), function () {\n document.removeEventListener(\"keydown\", e);\n };\n }, [E, a]), Object(u.useEffect)(function () {\n return E && !i && (j.current = document.body.style.overflow, document.body.style.overflow = \"hidden\"), function () {\n i || (document.body.style.overflow = j.current || \"\");\n };\n }, [E, i]), Object(u.useEffect)(function () {\n S.current = !0;\n }, [S]), t = r ? c.a.createElement(r, m, n) : n, c.a.createElement(p, null, function (e) {\n var r = e.modalNode,\n n = e.BackgroundComponent;\n return r && n && E ? O.a.createPortal(c.a.createElement(n, g({}, y, {\n onClick: P,\n ref: v\n }), t), r) : null;\n });\n }\n S.styled = function () {\n for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r];\n var n = t ? o.a.div.withConfig({\n displayName: \"Modal__wrap\"\n }).apply(void 0, t) : o.a.div.withConfig({\n displayName: \"Modal__wrap\"\n })();\n return function (e) {\n return c.a.createElement(S, g({\n WrapperComponent: n\n }, e));\n };\n }, S.defaultProps = {\n backgroundProps: {}\n }, S.propTypes = {\n WrapperComponent: l.a.oneOfType([l.a.element, l.a.object]),\n onBackgroundClick: l.a.func,\n onEscapeKeydown: l.a.func,\n allowScroll: l.a.bool,\n beforeOpen: l.a.func,\n afterOpen: l.a.func,\n beforeClose: l.a.func,\n afterClose: l.a.func,\n backgroundProps: l.a.object,\n isOpen: l.a.bool\n };\n var C = S;\n t.default = C;\n}]);","import styled from \"styled-components\"\n\nconst Border = styled.div`\nborder: 1px solid grey;\npadding: 1rem;\nbackground-color: #fbeed1;\n`\n\nexport default Border","/**\n * [js-md5]{@link https://github.com/emn178/js-md5}\n *\n * @namespace md5\n * @version 0.7.3\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_MD5_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_MD5_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [128, 32768, 8388608, -2147483648];\n var SHIFT = [0, 8, 16, 24];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];\n var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n var blocks = [],\n buffer8;\n if (ARRAY_BUFFER) {\n var buffer = new ArrayBuffer(68);\n buffer8 = new Uint8Array(buffer);\n blocks = new Uint32Array(buffer);\n }\n if (root.JS_MD5_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n /**\n * @method hex\n * @memberof md5\n * @description Output hash as hex string\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} Hex string\n * @example\n * md5.hex('The quick brown fox jumps over the lazy dog');\n * // equal to\n * md5('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method digest\n * @memberof md5\n * @description Output hash as bytes array\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Array} Bytes array\n * @example\n * md5.digest('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method array\n * @memberof md5\n * @description Output hash as bytes array\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Array} Bytes array\n * @example\n * md5.array('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method arrayBuffer\n * @memberof md5\n * @description Output hash as ArrayBuffer\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {ArrayBuffer} ArrayBuffer\n * @example\n * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method buffer\n * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n * @memberof md5\n * @description Output hash as ArrayBuffer\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {ArrayBuffer} ArrayBuffer\n * @example\n * md5.buffer('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method base64\n * @memberof md5\n * @description Output hash as base64 string\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} base64 string\n * @example\n * md5.base64('The quick brown fox jumps over the lazy dog');\n */\n var createOutputMethod = function (outputType) {\n return function (message) {\n return new Md5(true).update(message)[outputType]();\n };\n };\n\n /**\n * @method create\n * @memberof md5\n * @description Create Md5 object\n * @returns {Md5} Md5 object.\n * @example\n * var hash = md5.create();\n */\n /**\n * @method update\n * @memberof md5\n * @description Create and update Md5 object\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Md5} Md5 object.\n * @example\n * var hash = md5.update('The quick brown fox jumps over the lazy dog');\n * // equal to\n * var hash = md5.create();\n * hash.update('The quick brown fox jumps over the lazy dog');\n */\n var createMethod = function () {\n var method = createOutputMethod('hex');\n if (NODE_JS) {\n method = nodeWrap(method);\n }\n method.create = function () {\n return new Md5();\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type);\n }\n return method;\n };\n var nodeWrap = function (method) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash('md5').update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw ERROR;\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) || message.constructor === Buffer) {\n return crypto.createHash('md5').update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n /**\n * Md5 class\n * @class Md5\n * @description This is internal class.\n * @see {@link md5.create}\n */\n function Md5(sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n this.buffer8 = buffer8;\n } else {\n if (ARRAY_BUFFER) {\n var buffer = new ArrayBuffer(68);\n this.buffer8 = new Uint8Array(buffer);\n this.blocks = new Uint32Array(buffer);\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n }\n this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n }\n\n /**\n * @method update\n * @memberof Md5\n * @instance\n * @description Update hash\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Md5} Md5 object.\n * @see {@link md5.update}\n */\n Md5.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString,\n type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw ERROR;\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw ERROR;\n }\n }\n } else {\n throw ERROR;\n }\n notString = true;\n }\n var code,\n index = 0,\n i,\n length = message.length,\n blocks = this.blocks;\n var buffer8 = this.buffer8;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n if (notString) {\n if (ARRAY_BUFFER) {\n for (i = this.start; index < length && i < 64; ++index) {\n buffer8[i++] = message[index];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n }\n } else {\n if (ARRAY_BUFFER) {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n buffer8[i++] = code;\n } else if (code < 0x800) {\n buffer8[i++] = 0xc0 | code >> 6;\n buffer8[i++] = 0x80 | code & 0x3f;\n } else if (code < 0xd800 || code >= 0xe000) {\n buffer8[i++] = 0xe0 | code >> 12;\n buffer8[i++] = 0x80 | code >> 6 & 0x3f;\n buffer8[i++] = 0x80 | code & 0x3f;\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n buffer8[i++] = 0xf0 | code >> 18;\n buffer8[i++] = 0x80 | code >> 12 & 0x3f;\n buffer8[i++] = 0x80 | code >> 6 & 0x3f;\n buffer8[i++] = 0x80 | code & 0x3f;\n }\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | code >> 6) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | code >> 12) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n blocks[i >> 2] |= (0xf0 | code >> 18) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 12 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n }\n }\n }\n }\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n Md5.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks,\n i = this.lastByteIndex;\n blocks[i >> 2] |= EXTRA[i & 3];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.bytes << 3;\n blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n this.hash();\n };\n Md5.prototype.hash = function () {\n var a,\n b,\n c,\n d,\n bc,\n da,\n blocks = this.blocks;\n if (this.first) {\n a = blocks[0] - 680876937;\n a = (a << 7 | a >>> 25) - 271733879 << 0;\n d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n d = (d << 12 | d >>> 20) + a << 0;\n c = (-271733879 ^ d & (a ^ -271733879)) + blocks[2] - 1126478375;\n c = (c << 17 | c >>> 15) + d << 0;\n b = (a ^ c & (d ^ a)) + blocks[3] - 1316259209;\n b = (b << 22 | b >>> 10) + c << 0;\n } else {\n a = this.h0;\n b = this.h1;\n c = this.h2;\n d = this.h3;\n a += (d ^ b & (c ^ d)) + blocks[0] - 680876936;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[1] - 389564586;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[2] + 606105819;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[3] - 1044525330;\n b = (b << 22 | b >>> 10) + c << 0;\n }\n a += (d ^ b & (c ^ d)) + blocks[4] - 176418897;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[5] + 1200080426;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[6] - 1473231341;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[7] - 45705983;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ b & (c ^ d)) + blocks[8] + 1770035416;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[9] - 1958414417;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[10] - 42063;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[11] - 1990404162;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ b & (c ^ d)) + blocks[12] + 1804603682;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ a & (b ^ c)) + blocks[13] - 40341101;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ d & (a ^ b)) + blocks[14] - 1502002290;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ c & (d ^ a)) + blocks[15] + 1236535329;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[1] - 165796510;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[6] - 1069501632;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[11] + 643717713;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[0] - 373897302;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[5] - 701558691;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[10] + 38016083;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[15] - 660478335;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[4] - 405537848;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[9] + 568446438;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[14] - 1019803690;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[3] - 187363961;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[8] + 1163531501;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ d & (b ^ c)) + blocks[13] - 1444681467;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ c & (a ^ b)) + blocks[2] - 51403784;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ b & (d ^ a)) + blocks[7] + 1735328473;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ a & (c ^ d)) + blocks[12] - 1926607734;\n b = (b << 20 | b >>> 12) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[5] - 378558;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[8] - 2022574463;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[11] + 1839030562;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[14] - 35309556;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[1] - 1530992060;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[4] + 1272893353;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[7] - 155497632;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[10] - 1094730640;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[13] + 681279174;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[0] - 358537222;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[3] - 722521979;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[6] + 76029189;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[9] - 640364487;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[12] - 421815835;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[15] + 530742520;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[2] - 995338651;\n b = (b << 23 | b >>> 9) + c << 0;\n a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n b = (b << 21 | b >>> 11) + c << 0;\n if (this.first) {\n this.h0 = a + 1732584193 << 0;\n this.h1 = b - 271733879 << 0;\n this.h2 = c - 1732584194 << 0;\n this.h3 = d + 271733878 << 0;\n this.first = false;\n } else {\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n }\n };\n\n /**\n * @method hex\n * @memberof Md5\n * @instance\n * @description Output hash as hex string\n * @returns {String} Hex string\n * @see {@link md5.hex}\n * @example\n * hash.hex();\n */\n Md5.prototype.hex = function () {\n this.finalize();\n var h0 = this.h0,\n h1 = this.h1,\n h2 = this.h2,\n h3 = this.h3;\n return HEX_CHARS[h0 >> 4 & 0x0F] + HEX_CHARS[h0 & 0x0F] + HEX_CHARS[h0 >> 12 & 0x0F] + HEX_CHARS[h0 >> 8 & 0x0F] + HEX_CHARS[h0 >> 20 & 0x0F] + HEX_CHARS[h0 >> 16 & 0x0F] + HEX_CHARS[h0 >> 28 & 0x0F] + HEX_CHARS[h0 >> 24 & 0x0F] + HEX_CHARS[h1 >> 4 & 0x0F] + HEX_CHARS[h1 & 0x0F] + HEX_CHARS[h1 >> 12 & 0x0F] + HEX_CHARS[h1 >> 8 & 0x0F] + HEX_CHARS[h1 >> 20 & 0x0F] + HEX_CHARS[h1 >> 16 & 0x0F] + HEX_CHARS[h1 >> 28 & 0x0F] + HEX_CHARS[h1 >> 24 & 0x0F] + HEX_CHARS[h2 >> 4 & 0x0F] + HEX_CHARS[h2 & 0x0F] + HEX_CHARS[h2 >> 12 & 0x0F] + HEX_CHARS[h2 >> 8 & 0x0F] + HEX_CHARS[h2 >> 20 & 0x0F] + HEX_CHARS[h2 >> 16 & 0x0F] + HEX_CHARS[h2 >> 28 & 0x0F] + HEX_CHARS[h2 >> 24 & 0x0F] + HEX_CHARS[h3 >> 4 & 0x0F] + HEX_CHARS[h3 & 0x0F] + HEX_CHARS[h3 >> 12 & 0x0F] + HEX_CHARS[h3 >> 8 & 0x0F] + HEX_CHARS[h3 >> 20 & 0x0F] + HEX_CHARS[h3 >> 16 & 0x0F] + HEX_CHARS[h3 >> 28 & 0x0F] + HEX_CHARS[h3 >> 24 & 0x0F];\n };\n\n /**\n * @method toString\n * @memberof Md5\n * @instance\n * @description Output hash as hex string\n * @returns {String} Hex string\n * @see {@link md5.hex}\n * @example\n * hash.toString();\n */\n Md5.prototype.toString = Md5.prototype.hex;\n\n /**\n * @method digest\n * @memberof Md5\n * @instance\n * @description Output hash as bytes array\n * @returns {Array} Bytes array\n * @see {@link md5.digest}\n * @example\n * hash.digest();\n */\n Md5.prototype.digest = function () {\n this.finalize();\n var h0 = this.h0,\n h1 = this.h1,\n h2 = this.h2,\n h3 = this.h3;\n return [h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >> 24 & 0xFF];\n };\n\n /**\n * @method array\n * @memberof Md5\n * @instance\n * @description Output hash as bytes array\n * @returns {Array} Bytes array\n * @see {@link md5.array}\n * @example\n * hash.array();\n */\n Md5.prototype.array = Md5.prototype.digest;\n\n /**\n * @method arrayBuffer\n * @memberof Md5\n * @instance\n * @description Output hash as ArrayBuffer\n * @returns {ArrayBuffer} ArrayBuffer\n * @see {@link md5.arrayBuffer}\n * @example\n * hash.arrayBuffer();\n */\n Md5.prototype.arrayBuffer = function () {\n this.finalize();\n var buffer = new ArrayBuffer(16);\n var blocks = new Uint32Array(buffer);\n blocks[0] = this.h0;\n blocks[1] = this.h1;\n blocks[2] = this.h2;\n blocks[3] = this.h3;\n return buffer;\n };\n\n /**\n * @method buffer\n * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n * @memberof Md5\n * @instance\n * @description Output hash as ArrayBuffer\n * @returns {ArrayBuffer} ArrayBuffer\n * @see {@link md5.buffer}\n * @example\n * hash.buffer();\n */\n Md5.prototype.buffer = Md5.prototype.arrayBuffer;\n\n /**\n * @method base64\n * @memberof Md5\n * @instance\n * @description Output hash as base64 string\n * @returns {String} base64 string\n * @see {@link md5.base64}\n * @example\n * hash.base64();\n */\n Md5.prototype.base64 = function () {\n var v1,\n v2,\n v3,\n base64Str = '',\n bytes = this.array();\n for (var i = 0; i < 15;) {\n v1 = bytes[i++];\n v2 = bytes[i++];\n v3 = bytes[i++];\n base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] + BASE64_ENCODE_CHAR[v3 & 63];\n }\n v1 = bytes[i];\n base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[v1 << 4 & 63] + '==';\n return base64Str;\n };\n var exports = createMethod();\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n /**\n * @method md5\b\n * @description Md5 hash function, export to global in browsers.\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} md5 hashes\n * @example\n * md5(''); // d41d8cd98f00b204e9800998ecf8427e\n * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6\n * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0\n *\n * // It also supports UTF-8 encoding\n * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07\n *\n * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`\n * md5([]); // d41d8cd98f00b204e9800998ecf8427e\n * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e\n */\n root.md5 = exports;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nfunction _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}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o) {\n var i = 0;\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n i = o[Symbol.iterator]();\n return i.next.bind(i);\n}\n\n// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nvar LuxonError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(LuxonError, _Error);\n function LuxonError() {\n return _Error.apply(this, arguments) || this;\n }\n return LuxonError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n * @private\n */\n\nvar InvalidDateTimeError = /*#__PURE__*/function (_LuxonError) {\n _inheritsLoose(InvalidDateTimeError, _LuxonError);\n function InvalidDateTimeError(reason) {\n return _LuxonError.call(this, \"Invalid DateTime: \" + reason.toMessage()) || this;\n }\n return InvalidDateTimeError;\n}(LuxonError);\n/**\n * @private\n */\n\nvar InvalidIntervalError = /*#__PURE__*/function (_LuxonError2) {\n _inheritsLoose(InvalidIntervalError, _LuxonError2);\n function InvalidIntervalError(reason) {\n return _LuxonError2.call(this, \"Invalid Interval: \" + reason.toMessage()) || this;\n }\n return InvalidIntervalError;\n}(LuxonError);\n/**\n * @private\n */\n\nvar InvalidDurationError = /*#__PURE__*/function (_LuxonError3) {\n _inheritsLoose(InvalidDurationError, _LuxonError3);\n function InvalidDurationError(reason) {\n return _LuxonError3.call(this, \"Invalid Duration: \" + reason.toMessage()) || this;\n }\n return InvalidDurationError;\n}(LuxonError);\n/**\n * @private\n */\n\nvar ConflictingSpecificationError = /*#__PURE__*/function (_LuxonError4) {\n _inheritsLoose(ConflictingSpecificationError, _LuxonError4);\n function ConflictingSpecificationError() {\n return _LuxonError4.apply(this, arguments) || this;\n }\n return ConflictingSpecificationError;\n}(LuxonError);\n/**\n * @private\n */\n\nvar InvalidUnitError = /*#__PURE__*/function (_LuxonError5) {\n _inheritsLoose(InvalidUnitError, _LuxonError5);\n function InvalidUnitError(unit) {\n return _LuxonError5.call(this, \"Invalid unit \" + unit) || this;\n }\n return InvalidUnitError;\n}(LuxonError);\n/**\n * @private\n */\n\nvar InvalidArgumentError = /*#__PURE__*/function (_LuxonError6) {\n _inheritsLoose(InvalidArgumentError, _LuxonError6);\n function InvalidArgumentError() {\n return _LuxonError6.apply(this, arguments) || this;\n }\n return InvalidArgumentError;\n}(LuxonError);\n/**\n * @private\n */\n\nvar ZoneIsAbstractError = /*#__PURE__*/function (_LuxonError7) {\n _inheritsLoose(ZoneIsAbstractError, _LuxonError7);\n function ZoneIsAbstractError() {\n return _LuxonError7.call(this, \"Zone is an abstract class\") || this;\n }\n return ZoneIsAbstractError;\n}(LuxonError);\n\n/**\n * @private\n */\nvar n = \"numeric\",\n s = \"short\",\n l = \"long\";\nvar DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\nvar DATE_MED = {\n year: n,\n month: s,\n day: n\n};\nvar DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s\n};\nvar DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\nvar DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\nvar TIME_SIMPLE = {\n hour: n,\n minute: n\n};\nvar TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\nvar TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\nvar TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\nvar TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\n\nvar TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\n\nvar TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\n\nvar TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\n\nvar DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\n\nvar DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\nvar DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\nvar DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\nvar DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\nvar DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\nvar DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\nvar DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\nvar DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\n/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n/**\n * @private\n */\n// TYPES\n\nfunction isUndefined(o) {\n return typeof o === \"undefined\";\n}\nfunction isNumber(o) {\n return typeof o === \"number\";\n}\nfunction isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\nfunction isString(o) {\n return typeof o === \"string\";\n}\nfunction isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n} // CAPABILITIES\n\nfunction hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\nfunction hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\nfunction hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n} // OBJECTS AND ARRAYS\n\nfunction maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\nfunction bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce(function (best, next) {\n var pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\nfunction pick(obj, keys) {\n return keys.reduce(function (a, k) {\n a[k] = obj[k];\n return a;\n }, {});\n}\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n} // NUMBERS AND STRINGS\n\nfunction integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n} // x % n but takes the sign of n instead of x\n\nfunction floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\nfunction padStart(input, n) {\n if (n === void 0) {\n n = 2;\n }\n var minus = input < 0 ? \"-\" : \"\";\n var target = minus ? input * -1 : input;\n var result;\n if (target.toString().length < n) {\n result = (\"0\".repeat(n) + target).slice(-n);\n } else {\n result = target.toString();\n }\n return \"\" + minus + result;\n}\nfunction parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\nfunction parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n var f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\nfunction roundTo(number, digits, towardZero) {\n if (towardZero === void 0) {\n towardZero = false;\n }\n var factor = Math.pow(10, digits),\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n} // DATE BASICS\n\nfunction isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\nfunction daysInMonth(year, month) {\n var modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n} // covert a calendar object to a local timestamp (epoch, but with the offset baked in)\n\nfunction objToLocalTS(obj) {\n var d = Date.UTC(obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, obj.millisecond); // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\nfunction weeksInWeekYear(weekYear) {\n var p1 = (weekYear + Math.floor(weekYear / 4) - Math.floor(weekYear / 100) + Math.floor(weekYear / 400)) % 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\nfunction untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n} // PARSING\n\nfunction parseZoneInfo(ts, offsetFormat, locale, timeZone) {\n if (timeZone === void 0) {\n timeZone = null;\n }\n var date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n var modified = Object.assign({\n timeZoneName: offsetFormat\n }, intlOpts),\n intl = hasIntl();\n if (intl && hasFormatToParts()) {\n var parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find(function (m) {\n return m.type.toLowerCase() === \"timezonename\";\n });\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n var without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n} // signedOffset('-5', '30') -> -330\n\nfunction signedOffset(offHourStr, offMinuteStr) {\n var offHour = parseInt(offHourStr, 10); // don't || this because we want to preserve -0\n\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n var offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n} // COERCION\n\nfunction asNumber(value) {\n var numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue)) throw new InvalidArgumentError(\"Invalid unit value \" + value);\n return numericValue;\n}\nfunction normalizeObject(obj, normalizer, nonUnitKeys) {\n var normalized = {};\n for (var u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n var v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\nfunction formatOffset(offset, format) {\n var hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n switch (format) {\n case \"short\":\n return \"\" + sign + padStart(hours, 2) + \":\" + padStart(minutes, 2);\n case \"narrow\":\n return \"\" + sign + hours + (minutes > 0 ? \":\" + minutes : \"\");\n case \"techie\":\n return \"\" + sign + padStart(hours, 2) + padStart(minutes, 2);\n default:\n throw new RangeError(\"Value format \" + format + \" is out of range for property format\");\n }\n}\nfunction timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\nvar ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n/**\n * @private\n */\n\nvar monthsLong = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\nvar monthsShort = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nvar monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\nfunction months(length) {\n switch (length) {\n case \"narrow\":\n return [].concat(monthsNarrow);\n case \"short\":\n return [].concat(monthsShort);\n case \"long\":\n return [].concat(monthsLong);\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\nvar weekdaysLong = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\nvar weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\nvar weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\nfunction weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [].concat(weekdaysNarrow);\n case \"short\":\n return [].concat(weekdaysShort);\n case \"long\":\n return [].concat(weekdaysLong);\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\nvar meridiems = [\"AM\", \"PM\"];\nvar erasLong = [\"Before Christ\", \"Anno Domini\"];\nvar erasShort = [\"BC\", \"AD\"];\nvar erasNarrow = [\"B\", \"A\"];\nfunction eras(length) {\n switch (length) {\n case \"narrow\":\n return [].concat(erasNarrow);\n case \"short\":\n return [].concat(erasShort);\n case \"long\":\n return [].concat(erasLong);\n default:\n return null;\n }\n}\nfunction meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\nfunction weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\nfunction monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\nfunction eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\nfunction formatRelativeTime(unit, count, numeric, narrow) {\n if (numeric === void 0) {\n numeric = \"always\";\n }\n if (narrow === void 0) {\n narrow = false;\n }\n var units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n var lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n if (numeric === \"auto\" && lastable) {\n var isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : \"next \" + units[unit][0];\n case -1:\n return isDay ? \"yesterday\" : \"last \" + units[unit][0];\n case 0:\n return isDay ? \"today\" : \"this \" + units[unit][0];\n }\n }\n var isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow ? singular ? lilUnits[1] : lilUnits[2] || lilUnits[1] : singular ? units[unit][0] : unit;\n return isInPast ? fmtValue + \" \" + fmtUnit + \" ago\" : \"in \" + fmtValue + \" \" + fmtUnit;\n}\nfunction formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n var filtered = pick(knownFormat, [\"weekday\", \"era\", \"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"timeZoneName\", \"hour12\"]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\nfunction stringifyTokens(splits, tokenToString) {\n var s = \"\";\n for (var _iterator = _createForOfIteratorHelperLoose(splits), _step; !(_step = _iterator()).done;) {\n var token = _step.value;\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\nvar _macroTokenToFormatOpts = {\n D: DATE_SHORT,\n DD: DATE_MED,\n DDD: DATE_FULL,\n DDDD: DATE_HUGE,\n t: TIME_SIMPLE,\n tt: TIME_WITH_SECONDS,\n ttt: TIME_WITH_SHORT_OFFSET,\n tttt: TIME_WITH_LONG_OFFSET,\n T: TIME_24_SIMPLE,\n TT: TIME_24_WITH_SECONDS,\n TTT: TIME_24_WITH_SHORT_OFFSET,\n TTTT: TIME_24_WITH_LONG_OFFSET,\n f: DATETIME_SHORT,\n ff: DATETIME_MED,\n fff: DATETIME_FULL,\n ffff: DATETIME_HUGE,\n F: DATETIME_SHORT_WITH_SECONDS,\n FF: DATETIME_MED_WITH_SECONDS,\n FFF: DATETIME_FULL_WITH_SECONDS,\n FFFF: DATETIME_HUGE_WITH_SECONDS\n};\n/**\n * @private\n */\n\nvar Formatter = /*#__PURE__*/function () {\n Formatter.create = function create(locale, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return new Formatter(locale, opts);\n };\n Formatter.parseFormat = function parseFormat(fmt) {\n var current = null,\n currentFull = \"\",\n bracketed = false;\n var splits = [];\n for (var i = 0; i < fmt.length; i++) {\n var c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({\n literal: bracketed,\n val: currentFull\n });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({\n literal: false,\n val: currentFull\n });\n }\n currentFull = c;\n current = c;\n }\n }\n if (currentFull.length > 0) {\n splits.push({\n literal: bracketed,\n val: currentFull\n });\n }\n return splits;\n };\n Formatter.macroTokenToFormatOpts = function macroTokenToFormatOpts(token) {\n return _macroTokenToFormatOpts[token];\n };\n function Formatter(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n var _proto = Formatter.prototype;\n _proto.formatWithSystemDefault = function formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n var df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n };\n _proto.formatDateTime = function formatDateTime(dt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n };\n _proto.formatDateTimeParts = function formatDateTimeParts(dt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n };\n _proto.resolvedOptions = function resolvedOptions(dt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n };\n _proto.num = function num(n, p) {\n if (p === void 0) {\n p = 0;\n }\n\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n var opts = Object.assign({}, this.opts);\n if (p > 0) {\n opts.padTo = p;\n }\n return this.loc.numberFormatter(opts).format(n);\n };\n _proto.formatDateTimeFromString = function formatDateTimeFromString(dt, fmt) {\n var _this = this;\n var knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = function string(opts, extract) {\n return _this.loc.extract(dt, opts, extract);\n },\n formatOffset = function formatOffset(opts) {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = function meridiem() {\n return knownEnglish ? meridiemForDateTime(dt) : string({\n hour: \"numeric\",\n hour12: true\n }, \"dayperiod\");\n },\n month = function month(length, standalone) {\n return knownEnglish ? monthForDateTime(dt, length) : string(standalone ? {\n month: length\n } : {\n month: length,\n day: \"numeric\"\n }, \"month\");\n },\n weekday = function weekday(length, standalone) {\n return knownEnglish ? weekdayForDateTime(dt, length) : string(standalone ? {\n weekday: length\n } : {\n weekday: length,\n month: \"long\",\n day: \"numeric\"\n }, \"weekday\");\n },\n maybeMacro = function maybeMacro(token) {\n var formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return _this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = function era(length) {\n return knownEnglish ? eraForDateTime(dt, length) : string({\n era: length\n }, \"era\");\n },\n tokenToString = function tokenToString(token) {\n // Where possible: http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return _this.num(dt.millisecond);\n case \"u\": // falls through\n\n case \"SSS\":\n return _this.num(dt.millisecond, 3);\n // seconds\n\n case \"s\":\n return _this.num(dt.second);\n case \"ss\":\n return _this.num(dt.second, 2);\n // minutes\n\n case \"m\":\n return _this.num(dt.minute);\n case \"mm\":\n return _this.num(dt.minute, 2);\n // hours\n\n case \"h\":\n return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return _this.num(dt.hour);\n case \"HH\":\n return _this.num(dt.hour, 2);\n // offset\n\n case \"Z\":\n // like +6\n return formatOffset({\n format: \"narrow\",\n allowZ: _this.opts.allowZ\n });\n case \"ZZ\":\n // like +06:00\n return formatOffset({\n format: \"short\",\n allowZ: _this.opts.allowZ\n });\n case \"ZZZ\":\n // like +0600\n return formatOffset({\n format: \"techie\",\n allowZ: _this.opts.allowZ\n });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, {\n format: \"short\",\n locale: _this.loc.locale\n });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, {\n format: \"long\",\n locale: _this.loc.locale\n });\n // zone\n\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n\n case \"a\":\n return meridiem();\n // dates\n\n case \"d\":\n return useDateTimeFormatter ? string({\n day: \"numeric\"\n }, \"day\") : _this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({\n day: \"2-digit\"\n }, \"day\") : _this.num(dt.day, 2);\n // weekdays - standalone\n\n case \"c\":\n // like 1\n return _this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n\n case \"E\":\n // like 1\n return _this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n\n case \"L\":\n // like 1\n return useDateTimeFormatter ? string({\n month: \"numeric\",\n day: \"numeric\"\n }, \"month\") : _this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter ? string({\n month: \"2-digit\",\n day: \"numeric\"\n }, \"month\") : _this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n\n case \"M\":\n // like 1\n return useDateTimeFormatter ? string({\n month: \"numeric\"\n }, \"month\") : _this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter ? string({\n month: \"2-digit\"\n }, \"month\") : _this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter ? string({\n year: \"2-digit\"\n }, \"year\") : _this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : _this.num(dt.year, 6);\n // eras\n\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return _this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return _this.num(dt.weekYear, 4);\n case \"W\":\n return _this.num(dt.weekNumber);\n case \"WW\":\n return _this.num(dt.weekNumber, 2);\n case \"o\":\n return _this.num(dt.ordinal);\n case \"ooo\":\n return _this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return _this.num(dt.quarter);\n case \"qq\":\n // like 01\n return _this.num(dt.quarter, 2);\n case \"X\":\n return _this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return _this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n };\n _proto.formatDurationFromString = function formatDurationFromString(dur, fmt) {\n var _this2 = this;\n var tokenToField = function tokenToField(token) {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = function tokenToString(lildur) {\n return function (token) {\n var mapped = tokenToField(token);\n if (mapped) {\n return _this2.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n };\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(function (found, _ref) {\n var literal = _ref.literal,\n val = _ref.val;\n return literal ? found : found.concat(val);\n }, []),\n collapsed = dur.shiftTo.apply(dur, realTokens.map(tokenToField).filter(function (t) {\n return t;\n }));\n return stringifyTokens(tokens, tokenToString(collapsed));\n };\n return Formatter;\n}();\nvar Invalid = /*#__PURE__*/function () {\n function Invalid(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n var _proto = Invalid.prototype;\n _proto.toMessage = function toMessage() {\n if (this.explanation) {\n return this.reason + \": \" + this.explanation;\n } else {\n return this.reason;\n }\n };\n return Invalid;\n}();\n\n/**\n * @interface\n */\n\nvar Zone = /*#__PURE__*/function () {\n function Zone() {}\n var _proto = Zone.prototype;\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n _proto.offsetName = function offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */;\n\n _proto.formatOffset = function formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */;\n\n _proto.offset = function offset(ts) {\n throw new ZoneIsAbstractError();\n }\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */;\n\n _proto.equals = function equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */;\n\n _createClass(Zone, [{\n key: \"type\",\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n }, {\n key: \"name\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n }, {\n key: \"universal\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n }, {\n key: \"isValid\",\n get: function get() {\n throw new ZoneIsAbstractError();\n }\n }]);\n return Zone;\n}();\nvar singleton = null;\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\n\nvar LocalZone = /*#__PURE__*/function (_Zone) {\n _inheritsLoose(LocalZone, _Zone);\n function LocalZone() {\n return _Zone.apply(this, arguments) || this;\n }\n var _proto = LocalZone.prototype;\n\n /** @override **/\n _proto.offsetName = function offsetName(ts, _ref) {\n var format = _ref.format,\n locale = _ref.locale;\n return parseZoneInfo(ts, format, locale);\n }\n /** @override **/;\n\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n /** @override **/;\n\n _proto.offset = function offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n /** @override **/;\n\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"local\";\n }\n /** @override **/;\n\n _createClass(LocalZone, [{\n key: \"type\",\n /** @override **/\n get: function get() {\n return \"local\";\n }\n /** @override **/\n }, {\n key: \"name\",\n get: function get() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n /** @override **/\n }, {\n key: \"universal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return true;\n }\n }], [{\n key: \"instance\",\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n get: function get() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n }]);\n return LocalZone;\n}(Zone);\nvar matchingRegex = RegExp(\"^\" + ianaRegex.source + \"$\");\nvar dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n fMonth = parsed[1],\n fDay = parsed[2],\n fYear = parsed[3],\n fHour = parsed[4],\n fMinute = parsed[5],\n fSecond = parsed[6];\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\nfunction partsOffset(dtf, date) {\n var formatted = dtf.formatToParts(date),\n filled = [];\n for (var i = 0; i < formatted.length; i++) {\n var _formatted$i = formatted[i],\n type = _formatted$i.type,\n value = _formatted$i.value,\n pos = typeToPos[type];\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\nvar ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\n\nvar IANAZone = /*#__PURE__*/function (_Zone) {\n _inheritsLoose(IANAZone, _Zone);\n\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n IANAZone.create = function create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */;\n\n IANAZone.resetCache = function resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */;\n\n IANAZone.isValidSpecifier = function isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */;\n\n IANAZone.isValidZone = function isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", {\n timeZone: zone\n }).format();\n return true;\n } catch (e) {\n return false;\n }\n } // Etc/GMT+8 -> -480\n\n /** @ignore */;\n\n IANAZone.parseGMTOffset = function parseGMTOffset(specifier) {\n if (specifier) {\n var match = specifier.match(/^Etc\\/GMT(0|[+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n };\n function IANAZone(name) {\n var _this;\n _this = _Zone.call(this) || this;\n /** @private **/\n\n _this.zoneName = name;\n /** @private **/\n\n _this.valid = IANAZone.isValidZone(name);\n return _this;\n }\n /** @override **/\n\n var _proto = IANAZone.prototype;\n\n /** @override **/\n _proto.offsetName = function offsetName(ts, _ref) {\n var format = _ref.format,\n locale = _ref.locale;\n return parseZoneInfo(ts, format, locale, this.name);\n }\n /** @override **/;\n\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n /** @override **/;\n\n _proto.offset = function offset(ts) {\n var date = new Date(ts);\n if (isNaN(date)) return NaN;\n var dtf = makeDTF(this.name),\n _ref2 = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date),\n year = _ref2[0],\n month = _ref2[1],\n day = _ref2[2],\n hour = _ref2[3],\n minute = _ref2[4],\n second = _ref2[5],\n adjustedHour = hour === 24 ? 0 : hour;\n var asUTC = objToLocalTS({\n year: year,\n month: month,\n day: day,\n hour: adjustedHour,\n minute: minute,\n second: second,\n millisecond: 0\n });\n var asTS = +date;\n var over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n /** @override **/;\n\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n /** @override **/;\n\n _createClass(IANAZone, [{\n key: \"type\",\n get: function get() {\n return \"iana\";\n }\n /** @override **/\n }, {\n key: \"name\",\n get: function get() {\n return this.zoneName;\n }\n /** @override **/\n }, {\n key: \"universal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return this.valid;\n }\n }]);\n return IANAZone;\n}(Zone);\nvar singleton$1 = null;\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\n\nvar FixedOffsetZone = /*#__PURE__*/function (_Zone) {\n _inheritsLoose(FixedOffsetZone, _Zone);\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n FixedOffsetZone.instance = function instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */;\n\n FixedOffsetZone.parseSpecifier = function parseSpecifier(s) {\n if (s) {\n var r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n };\n _createClass(FixedOffsetZone, null, [{\n key: \"utcInstance\",\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n get: function get() {\n if (singleton$1 === null) {\n singleton$1 = new FixedOffsetZone(0);\n }\n return singleton$1;\n }\n }]);\n function FixedOffsetZone(offset) {\n var _this;\n _this = _Zone.call(this) || this;\n /** @private **/\n\n _this.fixed = offset;\n return _this;\n }\n /** @override **/\n\n var _proto = FixedOffsetZone.prototype;\n\n /** @override **/\n _proto.offsetName = function offsetName() {\n return this.name;\n }\n /** @override **/;\n\n _proto.formatOffset = function formatOffset$1(ts, format) {\n return formatOffset(this.fixed, format);\n }\n /** @override **/;\n\n /** @override **/\n _proto.offset = function offset() {\n return this.fixed;\n }\n /** @override **/;\n\n _proto.equals = function equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n /** @override **/;\n\n _createClass(FixedOffsetZone, [{\n key: \"type\",\n get: function get() {\n return \"fixed\";\n }\n /** @override **/\n }, {\n key: \"name\",\n get: function get() {\n return this.fixed === 0 ? \"UTC\" : \"UTC\" + formatOffset(this.fixed, \"narrow\");\n }\n }, {\n key: \"universal\",\n get: function get() {\n return true;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return true;\n }\n }]);\n return FixedOffsetZone;\n}(Zone);\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\n\nvar InvalidZone = /*#__PURE__*/function (_Zone) {\n _inheritsLoose(InvalidZone, _Zone);\n function InvalidZone(zoneName) {\n var _this;\n _this = _Zone.call(this) || this;\n /** @private */\n\n _this.zoneName = zoneName;\n return _this;\n }\n /** @override **/\n\n var _proto = InvalidZone.prototype;\n\n /** @override **/\n _proto.offsetName = function offsetName() {\n return null;\n }\n /** @override **/;\n\n _proto.formatOffset = function formatOffset() {\n return \"\";\n }\n /** @override **/;\n\n _proto.offset = function offset() {\n return NaN;\n }\n /** @override **/;\n\n _proto.equals = function equals() {\n return false;\n }\n /** @override **/;\n\n _createClass(InvalidZone, [{\n key: \"type\",\n get: function get() {\n return \"invalid\";\n }\n /** @override **/\n }, {\n key: \"name\",\n get: function get() {\n return this.zoneName;\n }\n /** @override **/\n }, {\n key: \"universal\",\n get: function get() {\n return false;\n }\n }, {\n key: \"isValid\",\n get: function get() {\n return false;\n }\n }]);\n return InvalidZone;\n}(Zone);\n\n/**\n * @private\n */\nfunction normalizeZone(input, defaultZone) {\n var offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n var lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\nvar now = function now() {\n return Date.now();\n },\n defaultZone = null,\n // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\n\nvar Settings = /*#__PURE__*/function () {\n function Settings() {}\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n Settings.resetCaches = function resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n };\n _createClass(Settings, null, [{\n key: \"now\",\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n get: function get() {\n return now;\n }\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */,\n\n set: function set(n) {\n now = n;\n }\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n }, {\n key: \"defaultZoneName\",\n get: function get() {\n return Settings.defaultZone.name;\n }\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */,\n\n set: function set(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n }, {\n key: \"defaultZone\",\n get: function get() {\n return defaultZone || LocalZone.instance;\n }\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n }, {\n key: \"defaultLocale\",\n get: function get() {\n return defaultLocale;\n }\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */,\n\n set: function set(locale) {\n defaultLocale = locale;\n }\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n }, {\n key: \"defaultNumberingSystem\",\n get: function get() {\n return defaultNumberingSystem;\n }\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */,\n\n set: function set(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n }, {\n key: \"defaultOutputCalendar\",\n get: function get() {\n return defaultOutputCalendar;\n }\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */,\n\n set: function set(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n }, {\n key: \"throwOnInvalid\",\n get: function get() {\n return throwOnInvalid;\n }\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */,\n\n set: function set(t) {\n throwOnInvalid = t;\n }\n }]);\n return Settings;\n}();\nvar intlDTCache = {};\nfunction getCachedDTF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var key = JSON.stringify([locString, opts]);\n var dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\nvar intlNumCache = {};\nfunction getCachedINF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var key = JSON.stringify([locString, opts]);\n var inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\nvar intlRelCache = {};\nfunction getCachedRTF(locString, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _opts = opts,\n base = _opts.base,\n cacheKeyOpts = _objectWithoutPropertiesLoose(_opts, [\"base\"]); // exclude `base` from the options\n\n var key = JSON.stringify([locString, cacheKeyOpts]);\n var inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\nvar sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n var computedSys = new Intl.DateTimeFormat().resolvedOptions().locale; // node sometimes defaults to \"und\". Override that because that is dumb\n\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n var uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n var options;\n var smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n var _options = options,\n numberingSystem = _options.numberingSystem,\n calendar = _options.calendar; // return the smaller one so that we can append the calendar and numbering overrides to it\n\n return [smaller, numberingSystem, calendar];\n }\n}\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n if (outputCalendar) {\n localeStr += \"-ca-\" + outputCalendar;\n }\n if (numberingSystem) {\n localeStr += \"-nu-\" + numberingSystem;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\nfunction mapMonths(f) {\n var ms = [];\n for (var i = 1; i <= 12; i++) {\n var dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\nfunction mapWeekdays(f) {\n var ms = [];\n for (var i = 1; i <= 7; i++) {\n var dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n var mode = loc.listingMode(defaultOK);\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return loc.numberingSystem === \"latn\" || !loc.locale || loc.locale.startsWith(\"en\") || hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\";\n }\n}\n/**\n * @private\n */\n\nvar PolyNumberFormatter = /*#__PURE__*/function () {\n function PolyNumberFormatter(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n if (!forceSimple && hasIntl()) {\n var intlOpts = {\n useGrouping: false\n };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n var _proto = PolyNumberFormatter.prototype;\n _proto.format = function format(i) {\n if (this.inf) {\n var fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n var _fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(_fixed, this.padTo);\n }\n };\n return PolyNumberFormatter;\n}();\n/**\n * @private\n */\n\nvar PolyDateFormatter = /*#__PURE__*/function () {\n function PolyDateFormatter(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n var z;\n if (dt.zone.universal && this.hasIntl) {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n var gmtOffset = -1 * (dt.offset / 60);\n var offsetZ = gmtOffset >= 0 ? \"Etc/GMT+\" + gmtOffset : \"Etc/GMT\" + gmtOffset;\n var isOffsetZoneSupported = IANAZone.isValidZone(offsetZ);\n if (dt.offset !== 0 && isOffsetZoneSupported) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n if (this.hasIntl) {\n var intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n var _proto2 = PolyDateFormatter.prototype;\n _proto2.format = function format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n var tokenFormat = formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n };\n _proto2.formatToParts = function formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n };\n _proto2.resolvedOptions = function resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n };\n return PolyDateFormatter;\n}();\n/**\n * @private\n */\n\nvar PolyRelFormatter = /*#__PURE__*/function () {\n function PolyRelFormatter(intl, isEnglish, opts) {\n this.opts = Object.assign({\n style: \"long\"\n }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n var _proto3 = PolyRelFormatter.prototype;\n _proto3.format = function format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n };\n _proto3.formatToParts = function formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n };\n return PolyRelFormatter;\n}();\n/**\n * @private\n */\n\nvar Locale = /*#__PURE__*/function () {\n Locale.fromOpts = function fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n };\n Locale.create = function create(locale, numberingSystem, outputCalendar, defaultToEN) {\n if (defaultToEN === void 0) {\n defaultToEN = false;\n }\n var specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n };\n Locale.resetCache = function resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n };\n Locale.fromObject = function fromObject(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n locale = _ref.locale,\n numberingSystem = _ref.numberingSystem,\n outputCalendar = _ref.outputCalendar;\n return Locale.create(locale, numberingSystem, outputCalendar);\n };\n function Locale(locale, numbering, outputCalendar, specifiedLocale) {\n var _parseLocaleString = parseLocaleString(locale),\n parsedLocale = _parseLocaleString[0],\n parsedNumberingSystem = _parseLocaleString[1],\n parsedOutputCalendar = _parseLocaleString[2];\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n this.weekdaysCache = {\n format: {},\n standalone: {}\n };\n this.monthsCache = {\n format: {},\n standalone: {}\n };\n this.meridiemCache = null;\n this.eraCache = {};\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n var _proto4 = Locale.prototype;\n _proto4.listingMode = function listingMode(defaultOK) {\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n var intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === \"latn\") && (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || isActuallyEn && hasNoWeirdness) {\n return \"en\";\n } else {\n return \"intl\";\n }\n };\n _proto4.clone = function clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(alts.locale || this.specifiedLocale, alts.numberingSystem || this.numberingSystem, alts.outputCalendar || this.outputCalendar, alts.defaultToEN || false);\n }\n };\n _proto4.redefaultToEN = function redefaultToEN(alts) {\n if (alts === void 0) {\n alts = {};\n }\n return this.clone(Object.assign({}, alts, {\n defaultToEN: true\n }));\n };\n _proto4.redefaultToSystem = function redefaultToSystem(alts) {\n if (alts === void 0) {\n alts = {};\n }\n return this.clone(Object.assign({}, alts, {\n defaultToEN: false\n }));\n };\n _proto4.months = function months$1(length, format, defaultOK) {\n var _this = this;\n if (format === void 0) {\n format = false;\n }\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n return listStuff(this, length, defaultOK, months, function () {\n var intl = format ? {\n month: length,\n day: \"numeric\"\n } : {\n month: length\n },\n formatStr = format ? \"format\" : \"standalone\";\n if (!_this.monthsCache[formatStr][length]) {\n _this.monthsCache[formatStr][length] = mapMonths(function (dt) {\n return _this.extract(dt, intl, \"month\");\n });\n }\n return _this.monthsCache[formatStr][length];\n });\n };\n _proto4.weekdays = function weekdays$1(length, format, defaultOK) {\n var _this2 = this;\n if (format === void 0) {\n format = false;\n }\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n return listStuff(this, length, defaultOK, weekdays, function () {\n var intl = format ? {\n weekday: length,\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n } : {\n weekday: length\n },\n formatStr = format ? \"format\" : \"standalone\";\n if (!_this2.weekdaysCache[formatStr][length]) {\n _this2.weekdaysCache[formatStr][length] = mapWeekdays(function (dt) {\n return _this2.extract(dt, intl, \"weekday\");\n });\n }\n return _this2.weekdaysCache[formatStr][length];\n });\n };\n _proto4.meridiems = function meridiems$1(defaultOK) {\n var _this3 = this;\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n return listStuff(this, undefined, defaultOK, function () {\n return meridiems;\n }, function () {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!_this3.meridiemCache) {\n var intl = {\n hour: \"numeric\",\n hour12: true\n };\n _this3.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(function (dt) {\n return _this3.extract(dt, intl, \"dayperiod\");\n });\n }\n return _this3.meridiemCache;\n });\n };\n _proto4.eras = function eras$1(length, defaultOK) {\n var _this4 = this;\n if (defaultOK === void 0) {\n defaultOK = true;\n }\n return listStuff(this, length, defaultOK, eras, function () {\n var intl = {\n era: length\n }; // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n\n if (!_this4.eraCache[length]) {\n _this4.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(function (dt) {\n return _this4.extract(dt, intl, \"era\");\n });\n }\n return _this4.eraCache[length];\n });\n };\n _proto4.extract = function extract(dt, intlOpts, field) {\n var df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(function (m) {\n return m.type.toLowerCase() === field;\n });\n return matching ? matching.value : null;\n };\n _proto4.numberFormatter = function numberFormatter(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n };\n _proto4.dtFormatter = function dtFormatter(dt, intlOpts) {\n if (intlOpts === void 0) {\n intlOpts = {};\n }\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n };\n _proto4.relFormatter = function relFormatter(opts) {\n if (opts === void 0) {\n opts = {};\n }\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n };\n _proto4.isEnglish = function isEnglish() {\n return this.locale === \"en\" || this.locale.toLowerCase() === \"en-us\" || hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\");\n };\n _proto4.equals = function equals(other) {\n return this.locale === other.locale && this.numberingSystem === other.numberingSystem && this.outputCalendar === other.outputCalendar;\n };\n _createClass(Locale, [{\n key: \"fastNumbers\",\n get: function get() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n return this.fastNumbersCached;\n }\n }]);\n return Locale;\n}();\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes() {\n for (var _len = arguments.length, regexes = new Array(_len), _key = 0; _key < _len; _key++) {\n regexes[_key] = arguments[_key];\n }\n var full = regexes.reduce(function (f, r) {\n return f + r.source;\n }, \"\");\n return RegExp(\"^\" + full + \"$\");\n}\nfunction combineExtractors() {\n for (var _len2 = arguments.length, extractors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n extractors[_key2] = arguments[_key2];\n }\n return function (m) {\n return extractors.reduce(function (_ref, ex) {\n var mergedVals = _ref[0],\n mergedZone = _ref[1],\n cursor = _ref[2];\n var _ex = ex(m, cursor),\n val = _ex[0],\n zone = _ex[1],\n next = _ex[2];\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n }, [{}, null, 1]).slice(0, 2);\n };\n}\nfunction parse(s) {\n if (s == null) {\n return [null, null];\n }\n for (var _len3 = arguments.length, patterns = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n patterns[_key3 - 1] = arguments[_key3];\n }\n for (var _i = 0, _patterns = patterns; _i < _patterns.length; _i++) {\n var _patterns$_i = _patterns[_i],\n regex = _patterns$_i[0],\n extractor = _patterns$_i[1];\n var m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\nfunction simpleParse() {\n for (var _len4 = arguments.length, keys = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n keys[_key4] = arguments[_key4];\n }\n return function (match, cursor) {\n var ret = {};\n var i;\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n} // ISO and SQL parsing\n\nvar offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/,\n isoTimeRegex = RegExp(\"\" + isoTimeBaseRegex.source + offsetRegex.source + \"?\"),\n isoTimeExtensionRegex = RegExp(\"(?:T\" + isoTimeRegex.source + \")?\"),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/,\n // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(isoTimeBaseRegex.source + \" ?(?:\" + offsetRegex.source + \"|(\" + ianaRegex.source + \"))?\"),\n sqlTimeExtensionRegex = RegExp(\"(?: \" + sqlTimeRegex.source + \")?\");\nfunction int(match, pos, fallback) {\n var m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\nfunction extractISOYmd(match, cursor) {\n var item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n return [item, null, cursor + 3];\n}\nfunction extractISOTime(match, cursor) {\n var item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3])\n };\n return [item, null, cursor + 4];\n}\nfunction extractISOOffset(match, cursor) {\n var local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\nfunction extractIANAZone(match, cursor) {\n var zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n} // ISO time parsing\n\nvar isoTimeOnly = RegExp(\"^T?\" + isoTimeBaseRegex.source + \"$\"); // ISO duration parsing\n\nvar isoDuration = /^-?P(?:(?:(-?\\d{1,9})Y)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,9})W)?(?:(-?\\d{1,9})D)?(?:T(?:(-?\\d{1,9})H)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\nfunction extractISODuration(match) {\n var s = match[0],\n yearStr = match[1],\n monthStr = match[2],\n weekStr = match[3],\n dayStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n millisecondsStr = match[8];\n var hasNegativePrefix = s[0] === \"-\";\n var negativeSeconds = secondStr && secondStr[0] === \"-\";\n var maybeNegate = function maybeNegate(num, force) {\n if (force === void 0) {\n force = false;\n }\n return num !== undefined && (force || num && hasNegativePrefix) ? -num : num;\n };\n return [{\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds)\n }];\n} // These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\n\nvar obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday = weekdayStr.length > 3 ? weekdaysLong.indexOf(weekdayStr) + 1 : weekdaysShort.indexOf(weekdayStr) + 1;\n }\n return result;\n} // RFC 2822/5322\n\nvar rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\nfunction extractRFC2822(match) {\n var weekdayStr = match[1],\n dayStr = match[2],\n monthStr = match[3],\n yearStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n obsOffset = match[8],\n milOffset = match[9],\n offHourStr = match[10],\n offMinuteStr = match[11],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n var offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n return [result, new FixedOffsetZone(offset)];\n}\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, \" \").replace(/(\\s\\s+)/g, \" \").trim();\n} // http date\n\nvar rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 = /^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\nfunction extractRFC1123Or850(match) {\n var weekdayStr = match[1],\n dayStr = match[2],\n monthStr = match[3],\n yearStr = match[4],\n hourStr = match[5],\n minuteStr = match[6],\n secondStr = match[7],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\nfunction extractASCII(match) {\n var weekdayStr = match[1],\n monthStr = match[2],\n dayStr = match[3],\n hourStr = match[4],\n minuteStr = match[5],\n secondStr = match[6],\n yearStr = match[7],\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\nvar isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nvar isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nvar isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nvar isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\nvar extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset);\nvar extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset);\nvar extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset);\nvar extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n/**\n * @private\n */\n\nfunction parseISODate(s) {\n return parse(s, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]);\n}\nfunction parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\nfunction parseHTTPDate(s) {\n return parse(s, [rfc1123, extractRFC1123Or850], [rfc850, extractRFC1123Or850], [ascii, extractASCII]);\n}\nfunction parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\nvar extractISOTimeOnly = combineExtractors(extractISOTime);\nfunction parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\nvar sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nvar sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\nvar extractISOYmdTimeOffsetAndIANAZone = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone);\nvar extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone);\nfunction parseSQL(s) {\n return parse(s, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]);\n}\nvar INVALID = \"Invalid Duration\"; // unit conversion constants\n\nvar lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: {\n minutes: 60,\n seconds: 60 * 60,\n milliseconds: 60 * 60 * 1000\n },\n minutes: {\n seconds: 60,\n milliseconds: 60 * 1000\n },\n seconds: {\n milliseconds: 1000\n }\n },\n casualMatrix = Object.assign({\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n }, lowOrderMatrix),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign({\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: daysInYearAccurate * 24 / 4,\n minutes: daysInYearAccurate * 24 * 60 / 4,\n seconds: daysInYearAccurate * 24 * 60 * 60 / 4,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000 / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n }, lowOrderMatrix); // units ordered by size\n\nvar orderedUnits = [\"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\nvar reverseUnits = orderedUnits.slice(0).reverse(); // clone really means \"create another instance just like this one, but with these changes\"\n\nfunction clone(dur, alts, clear) {\n if (clear === void 0) {\n clear = false;\n }\n\n // deep merge for vals\n var conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n} // NB: mutates parameters\n\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n var conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added = !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n} // NB: mutates parameters\n\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce(function (previous, current) {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\n\nvar Duration = /*#__PURE__*/function () {\n /**\n * @private\n */\n function Duration(config) {\n var accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n\n this.values = config.values;\n /**\n * @access private\n */\n\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n\n this.isLuxonDuration = true;\n }\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n\n Duration.fromMillis = function fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({\n milliseconds: count\n }, opts));\n }\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */;\n\n Duration.fromObject = function fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\"Duration.fromObject: argument expected to be an object, got \" + (obj === null ? \"null\" : typeof obj));\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\"locale\", \"numberingSystem\", \"conversionAccuracy\", \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */;\n\n Duration.fromISO = function fromISO(text, opts) {\n var _parseISODuration = parseISODuration(text),\n parsed = _parseISODuration[0];\n if (parsed) {\n var obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as ISO 8601\");\n }\n }\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */;\n\n Duration.fromISOTime = function fromISOTime(text, opts) {\n var _parseISOTimeOnly = parseISOTimeOnly(text),\n parsed = _parseISOTimeOnly[0];\n if (parsed) {\n var obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as ISO 8601\");\n }\n }\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */;\n\n Duration.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({\n invalid: invalid\n });\n }\n }\n /**\n * @private\n */;\n\n Duration.normalizeUnit = function normalizeUnit(unit) {\n var normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n if (!normalized) throw new InvalidUnitError(unit);\n return normalized;\n }\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */;\n\n Duration.isDuration = function isDuration(o) {\n return o && o.isLuxonDuration || false;\n }\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */;\n\n var _proto = Duration.prototype;\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n _proto.toFormat = function toFormat(fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n var fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID;\n }\n /**\n * Returns a JavaScript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */;\n\n _proto.toObject = function toObject(opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) return {};\n var base = Object.assign({}, this.values);\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */;\n\n _proto.toISO = function toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n var s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */;\n\n _proto.toISOTime = function toISOTime(opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) return null;\n var millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n opts = Object.assign({\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\"\n }, opts);\n var value = this.shiftTo(\"hours\", \"minutes\", \"seconds\", \"milliseconds\");\n var fmt = opts.format === \"basic\" ? \"hhmm\" : \"hh:mm\";\n if (!opts.suppressSeconds || value.seconds !== 0 || value.milliseconds !== 0) {\n fmt += opts.format === \"basic\" ? \"ss\" : \":ss\";\n if (!opts.suppressMilliseconds || value.milliseconds !== 0) {\n fmt += \".SSS\";\n }\n }\n var str = value.toFormat(fmt);\n if (opts.includePrefix) {\n str = \"T\" + str;\n }\n return str;\n }\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */;\n\n _proto.toJSON = function toJSON() {\n return this.toISO();\n }\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */;\n\n _proto.toString = function toString() {\n return this.toISO();\n }\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */;\n\n _proto.toMillis = function toMillis() {\n return this.as(\"milliseconds\");\n }\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */;\n\n _proto.valueOf = function valueOf() {\n return this.toMillis();\n }\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */;\n\n _proto.plus = function plus(duration) {\n if (!this.isValid) return this;\n var dur = friendlyDuration(duration),\n result = {};\n for (var _iterator = _createForOfIteratorHelperLoose(orderedUnits), _step; !(_step = _iterator()).done;) {\n var k = _step.value;\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n return clone(this, {\n values: result\n }, true);\n }\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */;\n\n _proto.minus = function minus(duration) {\n if (!this.isValid) return this;\n var dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */;\n\n _proto.mapUnits = function mapUnits(fn) {\n if (!this.isValid) return this;\n var result = {};\n for (var _i = 0, _Object$keys = Object.keys(this.values); _i < _Object$keys.length; _i++) {\n var k = _Object$keys[_i];\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, {\n values: result\n }, true);\n }\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */;\n\n _proto.get = function get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */;\n\n _proto.set = function set(values) {\n if (!this.isValid) return this;\n var mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, {\n values: mixed\n });\n }\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */;\n\n _proto.reconfigure = function reconfigure(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n locale = _ref.locale,\n numberingSystem = _ref.numberingSystem,\n conversionAccuracy = _ref.conversionAccuracy;\n var loc = this.loc.clone({\n locale: locale,\n numberingSystem: numberingSystem\n }),\n opts = {\n loc: loc\n };\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n return clone(this, opts);\n }\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */;\n\n _proto.as = function as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */;\n\n _proto.normalize = function normalize() {\n if (!this.isValid) return this;\n var vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, {\n values: vals\n }, true);\n }\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */;\n\n _proto.shiftTo = function shiftTo() {\n for (var _len = arguments.length, units = new Array(_len), _key = 0; _key < _len; _key++) {\n units[_key] = arguments[_key];\n }\n if (!this.isValid) return this;\n if (units.length === 0) {\n return this;\n }\n units = units.map(function (u) {\n return Duration.normalizeUnit(u);\n });\n var built = {},\n accumulated = {},\n vals = this.toObject();\n var lastUnit;\n for (var _iterator2 = _createForOfIteratorHelperLoose(orderedUnits), _step2; !(_step2 = _iterator2()).done;) {\n var k = _step2.value;\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n var own = 0; // anything we haven't boiled down yet should get boiled to this unit\n\n for (var ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n } // plus anything that's already in this unit\n\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n var i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n // plus anything further down the chain that should be rolled up in to this\n\n for (var down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n } // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n } // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n\n for (var key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] += key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n return clone(this, {\n values: built\n }, true).normalize();\n }\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */;\n\n _proto.negate = function negate() {\n if (!this.isValid) return this;\n var negated = {};\n for (var _i2 = 0, _Object$keys2 = Object.keys(this.values); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n negated[k] = -this.values[k];\n }\n return clone(this, {\n values: negated\n }, true);\n }\n /**\n * Get the years.\n * @type {number}\n */;\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n _proto.equals = function equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n for (var _iterator3 = _createForOfIteratorHelperLoose(orderedUnits), _step3; !(_step3 = _iterator3()).done;) {\n var u = _step3.value;\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n };\n _createClass(Duration, [{\n key: \"locale\",\n get: function get() {\n return this.isValid ? this.loc.locale : null;\n }\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n }, {\n key: \"numberingSystem\",\n get: function get() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n }, {\n key: \"years\",\n get: function get() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n /**\n * Get the quarters.\n * @type {number}\n */\n }, {\n key: \"quarters\",\n get: function get() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n /**\n * Get the months.\n * @type {number}\n */\n }, {\n key: \"months\",\n get: function get() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n /**\n * Get the weeks\n * @type {number}\n */\n }, {\n key: \"weeks\",\n get: function get() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n /**\n * Get the days.\n * @type {number}\n */\n }, {\n key: \"days\",\n get: function get() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n /**\n * Get the hours.\n * @type {number}\n */\n }, {\n key: \"hours\",\n get: function get() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n /**\n * Get the minutes.\n * @type {number}\n */\n }, {\n key: \"minutes\",\n get: function get() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n /**\n * Get the seconds.\n * @return {number}\n */\n }, {\n key: \"seconds\",\n get: function get() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n /**\n * Get the milliseconds.\n * @return {number}\n */\n }, {\n key: \"milliseconds\",\n get: function get() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n }, {\n key: \"isValid\",\n get: function get() {\n return this.invalid === null;\n }\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n }]);\n return Duration;\n}();\nfunction friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\"Unknown duration argument \" + durationish + \" of type \" + typeof durationish);\n }\n}\nvar INVALID$1 = \"Invalid Interval\"; // checks if the start is equal to or before the end\n\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\"end before start\", \"The end of an interval must be after its start, but you had start=\" + start.toISO() + \" and end=\" + end.toISO());\n } else {\n return null;\n }\n}\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}.\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\n\nvar Interval = /*#__PURE__*/function () {\n /**\n * @private\n */\n function Interval(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n\n this.e = config.end;\n /**\n * @access private\n */\n\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n\n this.isLuxonInterval = true;\n }\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n\n Interval.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({\n invalid: invalid\n });\n }\n }\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */;\n\n Interval.fromDateTimes = function fromDateTimes(start, end) {\n var builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n var validateError = validateStartEnd(builtStart, builtEnd);\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */;\n\n Interval.after = function after(start, duration) {\n var dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */;\n\n Interval.before = function before(end, duration) {\n var dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */;\n\n Interval.fromISO = function fromISO(text, opts) {\n var _split = (text || \"\").split(\"/\", 2),\n s = _split[0],\n e = _split[1];\n if (s && e) {\n var start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n var end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n if (startIsValid) {\n var dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n var _dur = Duration.fromISO(s, opts);\n if (_dur.isValid) {\n return Interval.before(end, _dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as ISO 8601\");\n }\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */;\n\n Interval.isInterval = function isInterval(o) {\n return o && o.isLuxonInterval || false;\n }\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */;\n\n var _proto = Interval.prototype;\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n _proto.length = function length(unit) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n return this.isValid ? this.toDuration.apply(this, [unit]).get(unit) : NaN;\n }\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */;\n\n _proto.count = function count(unit) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n if (!this.isValid) return NaN;\n var start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */;\n\n _proto.hasSame = function hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */;\n\n _proto.isEmpty = function isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */;\n\n _proto.isAfter = function isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */;\n\n _proto.isBefore = function isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */;\n\n _proto.contains = function contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */;\n\n _proto.set = function set(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n start = _ref.start,\n end = _ref.end;\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */;\n\n _proto.splitAt = function splitAt() {\n var _this = this;\n if (!this.isValid) return [];\n for (var _len = arguments.length, dateTimes = new Array(_len), _key = 0; _key < _len; _key++) {\n dateTimes[_key] = arguments[_key];\n }\n var sorted = dateTimes.map(friendlyDateTime).filter(function (d) {\n return _this.contains(d);\n }).sort(),\n results = [];\n var s = this.s,\n i = 0;\n while (s < this.e) {\n var added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n return results;\n }\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */;\n\n _proto.splitBy = function splitBy(duration) {\n var dur = friendlyDuration(duration);\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n var s = this.s,\n idx = 1,\n next;\n var results = [];\n while (s < this.e) {\n var added = this.start.plus(dur.mapUnits(function (x) {\n return x * idx;\n }));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n return results;\n }\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */;\n\n _proto.divideEqually = function divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */;\n\n _proto.overlaps = function overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */;\n\n _proto.abutsStart = function abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */;\n\n _proto.abutsEnd = function abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */;\n\n _proto.engulfs = function engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */;\n\n _proto.equals = function equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */;\n\n _proto.intersection = function intersection(other) {\n if (!this.isValid) return this;\n var s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */;\n\n _proto.union = function union(other) {\n if (!this.isValid) return this;\n var s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */;\n\n Interval.merge = function merge(intervals) {\n var _intervals$sort$reduc = intervals.sort(function (a, b) {\n return a.s - b.s;\n }).reduce(function (_ref2, item) {\n var sofar = _ref2[0],\n current = _ref2[1];\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n }, [[], null]),\n found = _intervals$sort$reduc[0],\n final = _intervals$sort$reduc[1];\n if (final) {\n found.push(final);\n }\n return found;\n }\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */;\n\n Interval.xor = function xor(intervals) {\n var _Array$prototype;\n var start = null,\n currentCount = 0;\n var results = [],\n ends = intervals.map(function (i) {\n return [{\n time: i.s,\n type: \"s\"\n }, {\n time: i.e,\n type: \"e\"\n }];\n }),\n flattened = (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, ends),\n arr = flattened.sort(function (a, b) {\n return a.time - b.time;\n });\n for (var _iterator = _createForOfIteratorHelperLoose(arr), _step; !(_step = _iterator()).done;) {\n var i = _step.value;\n currentCount += i.type === \"s\" ? 1 : -1;\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n start = null;\n }\n }\n return Interval.merge(results);\n }\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */;\n\n _proto.difference = function difference() {\n var _this2 = this;\n for (var _len2 = arguments.length, intervals = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n intervals[_key2] = arguments[_key2];\n }\n return Interval.xor([this].concat(intervals)).map(function (i) {\n return _this2.intersection(i);\n }).filter(function (i) {\n return i && !i.isEmpty();\n });\n }\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */;\n\n _proto.toString = function toString() {\n if (!this.isValid) return INVALID$1;\n return \"[\" + this.s.toISO() + \" \\u2013 \" + this.e.toISO() + \")\";\n }\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */;\n\n _proto.toISO = function toISO(opts) {\n if (!this.isValid) return INVALID$1;\n return this.s.toISO(opts) + \"/\" + this.e.toISO(opts);\n }\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */;\n\n _proto.toISODate = function toISODate() {\n if (!this.isValid) return INVALID$1;\n return this.s.toISODate() + \"/\" + this.e.toISODate();\n }\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */;\n\n _proto.toISOTime = function toISOTime(opts) {\n if (!this.isValid) return INVALID$1;\n return this.s.toISOTime(opts) + \"/\" + this.e.toISOTime(opts);\n }\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */;\n\n _proto.toFormat = function toFormat(dateFormat, _temp2) {\n var _ref3 = _temp2 === void 0 ? {} : _temp2,\n _ref3$separator = _ref3.separator,\n separator = _ref3$separator === void 0 ? \" – \" : _ref3$separator;\n if (!this.isValid) return INVALID$1;\n return \"\" + this.s.toFormat(dateFormat) + separator + this.e.toFormat(dateFormat);\n }\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */;\n\n _proto.toDuration = function toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */;\n\n _proto.mapEndpoints = function mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n };\n _createClass(Interval, [{\n key: \"start\",\n get: function get() {\n return this.isValid ? this.s : null;\n }\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n }, {\n key: \"end\",\n get: function get() {\n return this.isValid ? this.e : null;\n }\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n }, {\n key: \"isValid\",\n get: function get() {\n return this.invalidReason === null;\n }\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n }]);\n return Interval;\n}();\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\n\nvar Info = /*#__PURE__*/function () {\n function Info() {}\n\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n Info.hasDST = function hasDST(zone) {\n if (zone === void 0) {\n zone = Settings.defaultZone;\n }\n var proto = DateTime.now().setZone(zone).set({\n month: 12\n });\n return !zone.universal && proto.offset !== proto.set({\n month: 6\n }).offset;\n }\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */;\n\n Info.isValidIANAZone = function isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */;\n\n Info.normalizeZone = function normalizeZone$1(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */;\n\n Info.months = function months(length, _temp) {\n if (length === void 0) {\n length = \"long\";\n }\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$locale = _ref.locale,\n locale = _ref$locale === void 0 ? null : _ref$locale,\n _ref$numberingSystem = _ref.numberingSystem,\n numberingSystem = _ref$numberingSystem === void 0 ? null : _ref$numberingSystem,\n _ref$locObj = _ref.locObj,\n locObj = _ref$locObj === void 0 ? null : _ref$locObj,\n _ref$outputCalendar = _ref.outputCalendar,\n outputCalendar = _ref$outputCalendar === void 0 ? \"gregory\" : _ref$outputCalendar;\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */;\n\n Info.monthsFormat = function monthsFormat(length, _temp2) {\n if (length === void 0) {\n length = \"long\";\n }\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$locale = _ref2.locale,\n locale = _ref2$locale === void 0 ? null : _ref2$locale,\n _ref2$numberingSystem = _ref2.numberingSystem,\n numberingSystem = _ref2$numberingSystem === void 0 ? null : _ref2$numberingSystem,\n _ref2$locObj = _ref2.locObj,\n locObj = _ref2$locObj === void 0 ? null : _ref2$locObj,\n _ref2$outputCalendar = _ref2.outputCalendar,\n outputCalendar = _ref2$outputCalendar === void 0 ? \"gregory\" : _ref2$outputCalendar;\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */;\n\n Info.weekdays = function weekdays(length, _temp3) {\n if (length === void 0) {\n length = \"long\";\n }\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$locale = _ref3.locale,\n locale = _ref3$locale === void 0 ? null : _ref3$locale,\n _ref3$numberingSystem = _ref3.numberingSystem,\n numberingSystem = _ref3$numberingSystem === void 0 ? null : _ref3$numberingSystem,\n _ref3$locObj = _ref3.locObj,\n locObj = _ref3$locObj === void 0 ? null : _ref3$locObj;\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {[string]}\n */;\n\n Info.weekdaysFormat = function weekdaysFormat(length, _temp4) {\n if (length === void 0) {\n length = \"long\";\n }\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n _ref4$locale = _ref4.locale,\n locale = _ref4$locale === void 0 ? null : _ref4$locale,\n _ref4$numberingSystem = _ref4.numberingSystem,\n numberingSystem = _ref4$numberingSystem === void 0 ? null : _ref4$numberingSystem,\n _ref4$locObj = _ref4.locObj,\n locObj = _ref4$locObj === void 0 ? null : _ref4$locObj;\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */;\n\n Info.meridiems = function meridiems(_temp5) {\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$locale = _ref5.locale,\n locale = _ref5$locale === void 0 ? null : _ref5$locale;\n return Locale.create(locale).meridiems();\n }\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */;\n\n Info.eras = function eras(length, _temp6) {\n if (length === void 0) {\n length = \"short\";\n }\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$locale = _ref6.locale,\n locale = _ref6$locale === void 0 ? null : _ref6$locale;\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */;\n\n Info.features = function features() {\n var intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n try {\n zones = new Intl.DateTimeFormat(\"en\", {\n timeZone: \"America/New_York\"\n }).resolvedOptions().timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n return {\n intl: intl,\n intlTokens: intlTokens,\n zones: zones,\n relative: relative\n };\n };\n return Info;\n}();\nfunction dayDiff(earlier, later) {\n var utcDayStart = function utcDayStart(dt) {\n return dt.toUTC(0, {\n keepLocalTime: true\n }).startOf(\"day\").valueOf();\n },\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\nfunction highOrderDiffs(cursor, later, units) {\n var differs = [[\"years\", function (a, b) {\n return b.year - a.year;\n }], [\"quarters\", function (a, b) {\n return b.quarter - a.quarter;\n }], [\"months\", function (a, b) {\n return b.month - a.month + (b.year - a.year) * 12;\n }], [\"weeks\", function (a, b) {\n var days = dayDiff(a, b);\n return (days - days % 7) / 7;\n }], [\"days\", dayDiff]];\n var results = {};\n var lowestOrder, highWater;\n for (var _i = 0, _differs = differs; _i < _differs.length; _i++) {\n var _differs$_i = _differs[_i],\n unit = _differs$_i[0],\n differ = _differs$_i[1];\n if (units.indexOf(unit) >= 0) {\n var _cursor$plus;\n lowestOrder = unit;\n var delta = differ(cursor, later);\n highWater = cursor.plus((_cursor$plus = {}, _cursor$plus[unit] = delta, _cursor$plus));\n if (highWater > later) {\n var _cursor$plus2;\n cursor = cursor.plus((_cursor$plus2 = {}, _cursor$plus2[unit] = delta - 1, _cursor$plus2));\n delta -= 1;\n } else {\n cursor = highWater;\n }\n results[unit] = delta;\n }\n }\n return [cursor, results, highWater, lowestOrder];\n}\nfunction _diff(earlier, later, units, opts) {\n var _highOrderDiffs = highOrderDiffs(earlier, later, units),\n cursor = _highOrderDiffs[0],\n results = _highOrderDiffs[1],\n highWater = _highOrderDiffs[2],\n lowestOrder = _highOrderDiffs[3];\n var remainingMillis = later - cursor;\n var lowerOrderUnits = units.filter(function (u) {\n return [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0;\n });\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n var _cursor$plus3;\n highWater = cursor.plus((_cursor$plus3 = {}, _cursor$plus3[lowestOrder] = 1, _cursor$plus3));\n }\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n var duration = Duration.fromObject(Object.assign(results, opts));\n if (lowerOrderUnits.length > 0) {\n var _Duration$fromMillis;\n return (_Duration$fromMillis = Duration.fromMillis(remainingMillis, opts)).shiftTo.apply(_Duration$fromMillis, lowerOrderUnits).plus(duration);\n } else {\n return duration;\n }\n}\nvar numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\nvar numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n}; // eslint-disable-next-line\n\nvar hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\nfunction parseDigits(str) {\n var value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (var key in numberingSystemsUTF16) {\n var _numberingSystemsUTF = numberingSystemsUTF16[key],\n min = _numberingSystemsUTF[0],\n max = _numberingSystemsUTF[1];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\nfunction digitRegex(_ref, append) {\n var numberingSystem = _ref.numberingSystem;\n if (append === void 0) {\n append = \"\";\n }\n return new RegExp(\"\" + numberingSystems[numberingSystem || \"latn\"] + append);\n}\nvar MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\nfunction intUnit(regex, post) {\n if (post === void 0) {\n post = function post(i) {\n return i;\n };\n }\n return {\n regex: regex,\n deser: function deser(_ref) {\n var s = _ref[0];\n return post(parseDigits(s));\n }\n };\n}\nvar NBSP = String.fromCharCode(160);\nvar spaceOrNBSP = \"( |\" + NBSP + \")\";\nvar spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\nfunction stripInsensitivities(s) {\n return s.replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: function deser(_ref2) {\n var s = _ref2[0];\n return strings.findIndex(function (i) {\n return stripInsensitivities(s) === stripInsensitivities(i);\n }) + startIndex;\n }\n };\n }\n}\nfunction offset(regex, groups) {\n return {\n regex: regex,\n deser: function deser(_ref3) {\n var h = _ref3[1],\n m = _ref3[2];\n return signedOffset(h, m);\n },\n groups: groups\n };\n}\nfunction simple(regex) {\n return {\n regex: regex,\n deser: function deser(_ref4) {\n var s = _ref4[0];\n return s;\n }\n };\n}\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\nfunction unitForToken(token, loc) {\n var one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = function literal(t) {\n return {\n regex: RegExp(escapeToken(t.val)),\n deser: function deser(_ref5) {\n var s = _ref5[0];\n return s;\n },\n literal: true\n };\n },\n unitate = function unitate(t) {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(\"([+-]\" + oneOrTwo.source + \")(?::(\" + two.source + \"))?\"), 2);\n case \"ZZZ\":\n return offset(new RegExp(\"([+-]\" + oneOrTwo.source + \")(\" + two.source + \")?\"), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n var unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n unit.token = token;\n return unit;\n}\nvar partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\nfunction tokenForPart(part, locale, formatOpts) {\n var type = part.type,\n value = part.value;\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n var style = formatOpts[type];\n var val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n if (val) {\n return {\n literal: false,\n val: val\n };\n }\n return undefined;\n}\nfunction buildRegex(units) {\n var re = units.map(function (u) {\n return u.regex;\n }).reduce(function (f, r) {\n return f + \"(\" + r.source + \")\";\n }, \"\");\n return [\"^\" + re + \"$\", units];\n}\nfunction match(input, regex, handlers) {\n var matches = input.match(regex);\n if (matches) {\n var all = {};\n var matchIndex = 1;\n for (var i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n var h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\nfunction dateTimeFromMatches(matches) {\n var toField = function toField(token) {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n var zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n var vals = Object.keys(matches).reduce(function (r, k) {\n var f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n return r;\n }, {});\n return [vals, zone];\n}\nvar dummyDateTimeCache = null;\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n return dummyDateTimeCache;\n}\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n var formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n if (!formatOpts) {\n return token;\n }\n var formatter = Formatter.create(locale, formatOpts);\n var parts = formatter.formatDateTimeParts(getDummyDateTime());\n var tokens = parts.map(function (p) {\n return tokenForPart(p, locale, formatOpts);\n });\n if (tokens.includes(undefined)) {\n return token;\n }\n return tokens;\n}\nfunction expandMacroTokens(tokens, locale) {\n var _Array$prototype;\n return (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, tokens.map(function (t) {\n return maybeExpandMacroToken(t, locale);\n }));\n}\n/**\n * @private\n */\n\nfunction explainFromTokens(locale, input, format) {\n var tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(function (t) {\n return unitForToken(t, locale);\n }),\n disqualifyingUnit = units.find(function (t) {\n return t.invalidReason;\n });\n if (disqualifyingUnit) {\n return {\n input: input,\n tokens: tokens,\n invalidReason: disqualifyingUnit.invalidReason\n };\n } else {\n var _buildRegex = buildRegex(units),\n regexString = _buildRegex[0],\n handlers = _buildRegex[1],\n regex = RegExp(regexString, \"i\"),\n _match = match(input, regex, handlers),\n rawMatches = _match[0],\n matches = _match[1],\n _ref6 = matches ? dateTimeFromMatches(matches) : [null, null],\n result = _ref6[0],\n zone = _ref6[1];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\"Can't include meridiem when specifying 24-hour format\");\n }\n return {\n input: input,\n tokens: tokens,\n regex: regex,\n rawMatches: rawMatches,\n matches: matches,\n result: result,\n zone: zone\n };\n }\n}\nfunction parseFromTokens(locale, input, format) {\n var _explainFromTokens = explainFromTokens(locale, input, format),\n result = _explainFromTokens.result,\n zone = _explainFromTokens.zone,\n invalidReason = _explainFromTokens.invalidReason;\n return [result, zone, invalidReason];\n}\nvar nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\"unit out of range\", \"you specified \" + value + \" (of type \" + typeof value + \") as a \" + unit + \", which is invalid\");\n}\nfunction dayOfWeek(year, month, day) {\n var js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\nfunction uncomputeOrdinal(year, ordinal) {\n var table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(function (i) {\n return i < ordinal;\n }),\n day = ordinal - table[month0];\n return {\n month: month0 + 1,\n day: day\n };\n}\n/**\n * @private\n */\n\nfunction gregorianToWeek(gregObj) {\n var year = gregObj.year,\n month = gregObj.month,\n day = gregObj.day,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n var weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n return Object.assign({\n weekYear: weekYear,\n weekNumber: weekNumber,\n weekday: weekday\n }, timeObject(gregObj));\n}\nfunction weekToGregorian(weekData) {\n var weekYear = weekData.weekYear,\n weekNumber = weekData.weekNumber,\n weekday = weekData.weekday,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n var ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n var _uncomputeOrdinal = uncomputeOrdinal(year, ordinal),\n month = _uncomputeOrdinal.month,\n day = _uncomputeOrdinal.day;\n return Object.assign({\n year: year,\n month: month,\n day: day\n }, timeObject(weekData));\n}\nfunction gregorianToOrdinal(gregData) {\n var year = gregData.year,\n month = gregData.month,\n day = gregData.day,\n ordinal = computeOrdinal(year, month, day);\n return Object.assign({\n year: year,\n ordinal: ordinal\n }, timeObject(gregData));\n}\nfunction ordinalToGregorian(ordinalData) {\n var year = ordinalData.year,\n ordinal = ordinalData.ordinal,\n _uncomputeOrdinal2 = uncomputeOrdinal(year, ordinal),\n month = _uncomputeOrdinal2.month,\n day = _uncomputeOrdinal2.day;\n return Object.assign({\n year: year,\n month: month,\n day: day\n }, timeObject(ordinalData));\n}\nfunction hasInvalidWeekData(obj) {\n var validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\nfunction hasInvalidOrdinalData(obj) {\n var validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\nfunction hasInvalidGregorianData(obj) {\n var validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\nfunction hasInvalidTimeData(obj) {\n var hour = obj.hour,\n minute = obj.minute,\n second = obj.second,\n millisecond = obj.millisecond;\n var validHour = integerBetween(hour, 0, 23) || hour === 24 && minute === 0 && second === 0 && millisecond === 0,\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\nvar INVALID$2 = \"Invalid DateTime\";\nvar MAX_DATE = 8.64e15;\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", \"the zone \\\"\" + zone.name + \"\\\" is not supported\");\n} // we cache week data on the DT object and this intermediates the cache\n\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n} // clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\n\nfunction clone$1(inst, alts) {\n var current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, {\n old: current\n }));\n} // find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\n\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n var utcGuess = localTS - o * 60 * 1000; // Test whether the zone matches the offset for this ts\n\n var o2 = tz.offset(utcGuess); // If so, offset didn't change and we're done\n\n if (o === o2) {\n return [utcGuess, o];\n } // If not, change the ts by the difference in the offset\n\n utcGuess -= (o2 - o) * 60 * 1000; // If that gives us the local time we want, we're done\n\n var o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n } // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n} // convert an epoch timestamp into a calendar object with the given offset\n\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n var d = new Date(ts);\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n} // convert a calendar object to a epoch timestamp\n\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n} // create a new DT instance by adding a duration, adjusting for DSTs\n\nfunction adjustTime(inst, dur) {\n var oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = Object.assign({}, inst.c, {\n year: year,\n month: month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7\n }),\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n var _fixOffset = fixOffset(localTS, oPre, inst.zone),\n ts = _fixOffset[0],\n o = _fixOffset[1];\n if (millisToAdd !== 0) {\n ts += millisToAdd; // that could have changed the offset by going over a DST, but we want to keep the ts the same\n\n o = inst.zone.offset(ts);\n }\n return {\n ts: ts,\n o: o\n };\n} // helper useful in turning the results of parsing into real dates\n// by handling the zone options\n\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n var setZone = opts.setZone,\n zone = opts.zone;\n if (parsed && Object.keys(parsed).length !== 0) {\n var interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n }));\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(new Invalid(\"unparsable\", \"the input \\\"\" + text + \"\\\" can't be parsed as \" + format));\n }\n} // if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\n\nfunction toTechFormat(dt, format, allowZ) {\n if (allowZ === void 0) {\n allowZ = true;\n }\n return dt.isValid ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ: allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format) : null;\n} // technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\n\nfunction toTechTimeFormat(dt, _ref) {\n var _ref$suppressSeconds = _ref.suppressSeconds,\n suppressSeconds = _ref$suppressSeconds === void 0 ? false : _ref$suppressSeconds,\n _ref$suppressMillisec = _ref.suppressMilliseconds,\n suppressMilliseconds = _ref$suppressMillisec === void 0 ? false : _ref$suppressMillisec,\n includeOffset = _ref.includeOffset,\n _ref$includePrefix = _ref.includePrefix,\n includePrefix = _ref$includePrefix === void 0 ? false : _ref$includePrefix,\n _ref$includeZone = _ref.includeZone,\n includeZone = _ref$includeZone === void 0 ? false : _ref$includeZone,\n _ref$spaceZone = _ref.spaceZone,\n spaceZone = _ref$spaceZone === void 0 ? false : _ref$spaceZone,\n _ref$format = _ref.format,\n format = _ref$format === void 0 ? \"extended\" : _ref$format;\n var fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n var str = toTechFormat(dt, fmt);\n if (includePrefix) {\n str = \"T\" + str;\n }\n return str;\n} // defaults for unspecified units in the supported calendars\n\nvar defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n }; // Units in the supported calendars, sorted by bigness\n\nvar orderedUnits$1 = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\"weekYear\", \"weekNumber\", \"weekday\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"]; // standardize case and plurality in units\n\nfunction normalizeUnit(unit) {\n var normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n if (!normalized) throw new InvalidUnitError(unit);\n return normalized;\n} // this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\n\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (var _iterator = _createForOfIteratorHelperLoose(orderedUnits$1), _step; !(_step = _iterator()).done;) {\n var u = _step.value;\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n var invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n var tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n _objToTS = objToTS(obj, offsetProvis, zone),\n ts = _objToTS[0],\n o = _objToTS[1];\n return new DateTime({\n ts: ts,\n zone: zone,\n o: o\n });\n}\nfunction diffRelative(start, end, opts) {\n var round = isUndefined(opts.round) ? true : opts.round,\n format = function format(c, unit) {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n var formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = function differ(unit) {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n for (var _iterator2 = _createForOfIteratorHelperLoose(opts.units), _step2; !(_step2 = _iterator2()).done;) {\n var unit = _step2.value;\n var count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\n\nvar DateTime = /*#__PURE__*/function () {\n /**\n * @access private\n */\n function DateTime(config) {\n var zone = config.zone || Settings.defaultZone;\n var invalid = config.invalid || (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) || (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n var c = null,\n o = null;\n if (!invalid) {\n var unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n if (unchanged) {\n var _ref2 = [config.old.c, config.old.o];\n c = _ref2[0];\n o = _ref2[1];\n } else {\n var ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n /**\n * @access private\n */\n\n this._zone = zone;\n /**\n * @access private\n */\n\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n\n this.invalid = invalid;\n /**\n * @access private\n */\n\n this.weekData = null;\n /**\n * @access private\n */\n\n this.c = c;\n /**\n * @access private\n */\n\n this.o = o;\n /**\n * @access private\n */\n\n this.isLuxonDateTime = true;\n } // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n\n DateTime.now = function now() {\n return new DateTime({});\n }\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */;\n\n DateTime.local = function local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return DateTime.now();\n } else {\n return quickDT({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n millisecond: millisecond\n }, Settings.defaultZone);\n }\n }\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */;\n\n DateTime.utc = function utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n millisecond: millisecond\n }, FixedOffsetZone.utcInstance);\n }\n }\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */;\n\n DateTime.fromJSDate = function fromJSDate(date, options) {\n if (options === void 0) {\n options = {};\n }\n var ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n var zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */;\n\n DateTime.fromMillis = function fromMillis(milliseconds, options) {\n if (options === void 0) {\n options = {};\n }\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\"fromMillis requires a numerical input, but received a \" + typeof milliseconds + \" with value \" + milliseconds);\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */;\n\n DateTime.fromSeconds = function fromSeconds(seconds, options) {\n if (options === void 0) {\n options = {};\n }\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */;\n\n DateTime.fromObject = function fromObject(obj) {\n var zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n var tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\"zone\", \"locale\", \"outputCalendar\", \"numberingSystem\"]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj); // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\"Can't mix weekYear/weekNumber units with year/month/day or ordinals\");\n }\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n var useWeekData = definiteWeekDef || normalized.weekday && !containsGregor; // configure ourselves to deal with gregorian dates or week stuff\n\n var units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits$1;\n defaultValues = defaultUnitValues;\n } // set default values for missing stuff\n\n var foundFirst = false;\n for (var _iterator3 = _createForOfIteratorHelperLoose(units), _step3; !(_step3 = _iterator3()).done;) {\n var u = _step3.value;\n var v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n } // make sure the values we have are in range\n\n var higherOrderInvalid = useWeekData ? hasInvalidWeekData(normalized) : containsOrdinal ? hasInvalidOrdinalData(normalized) : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n if (invalid) {\n return DateTime.invalid(invalid);\n } // compute the actual time\n\n var gregorian = useWeekData ? weekToGregorian(normalized) : containsOrdinal ? ordinalToGregorian(normalized) : normalized,\n _objToTS2 = objToTS(gregorian, offsetProvis, zoneToUse),\n tsFinal = _objToTS2[0],\n offsetFinal = _objToTS2[1],\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc: loc\n }); // gregorian data + weekday serves only to validate\n\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\"mismatched weekday\", \"you can't specify both a weekday of \" + normalized.weekday + \" and a date of \" + inst.toISO());\n }\n return inst;\n }\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */;\n\n DateTime.fromISO = function fromISO(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _parseISODate = parseISODate(text),\n vals = _parseISODate[0],\n parsedZone = _parseISODate[1];\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */;\n\n DateTime.fromRFC2822 = function fromRFC2822(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _parseRFC2822Date = parseRFC2822Date(text),\n vals = _parseRFC2822Date[0],\n parsedZone = _parseRFC2822Date[1];\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */;\n\n DateTime.fromHTTP = function fromHTTP(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _parseHTTPDate = parseHTTPDate(text),\n vals = _parseHTTPDate[0],\n parsedZone = _parseHTTPDate[1];\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */;\n\n DateTime.fromFormat = function fromFormat(text, fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n var _opts = opts,\n _opts$locale = _opts.locale,\n locale = _opts$locale === void 0 ? null : _opts$locale,\n _opts$numberingSystem = _opts.numberingSystem,\n numberingSystem = _opts$numberingSystem === void 0 ? null : _opts$numberingSystem,\n localeToUse = Locale.fromOpts({\n locale: locale,\n numberingSystem: numberingSystem,\n defaultToEN: true\n }),\n _parseFromTokens = parseFromTokens(localeToUse, text, fmt),\n vals = _parseFromTokens[0],\n parsedZone = _parseFromTokens[1],\n invalid = _parseFromTokens[2];\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, \"format \" + fmt, text);\n }\n }\n /**\n * @deprecated use fromFormat instead\n */;\n\n DateTime.fromString = function fromString(text, fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return DateTime.fromFormat(text, fmt, opts);\n }\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */;\n\n DateTime.fromSQL = function fromSQL(text, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _parseSQL = parseSQL(text),\n vals = _parseSQL[0],\n parsedZone = _parseSQL[1];\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */;\n\n DateTime.invalid = function invalid(reason, explanation) {\n if (explanation === void 0) {\n explanation = null;\n }\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n var invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({\n invalid: invalid\n });\n }\n }\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */;\n\n DateTime.isDateTime = function isDateTime(o) {\n return o && o.isLuxonDateTime || false;\n } // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */;\n\n var _proto = DateTime.prototype;\n _proto.get = function get(unit) {\n return this[unit];\n }\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */;\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n _proto.resolvedLocaleOpts = function resolvedLocaleOpts(opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _Formatter$create$res = Formatter.create(this.loc.clone(opts), opts).resolvedOptions(this),\n locale = _Formatter$create$res.locale,\n numberingSystem = _Formatter$create$res.numberingSystem,\n calendar = _Formatter$create$res.calendar;\n return {\n locale: locale,\n numberingSystem: numberingSystem,\n outputCalendar: calendar\n };\n } // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */;\n\n _proto.toUTC = function toUTC(offset, opts) {\n if (offset === void 0) {\n offset = 0;\n }\n if (opts === void 0) {\n opts = {};\n }\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */;\n\n _proto.toLocal = function toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */;\n\n _proto.setZone = function setZone(zone, _temp) {\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$keepLocalTime = _ref3.keepLocalTime,\n keepLocalTime = _ref3$keepLocalTime === void 0 ? false : _ref3$keepLocalTime,\n _ref3$keepCalendarTim = _ref3.keepCalendarTime,\n keepCalendarTime = _ref3$keepCalendarTim === void 0 ? false : _ref3$keepCalendarTim;\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n var newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n var offsetGuess = zone.offset(this.ts);\n var asObj = this.toObject();\n var _objToTS3 = objToTS(asObj, offsetGuess, zone);\n newTS = _objToTS3[0];\n }\n return clone$1(this, {\n ts: newTS,\n zone: zone\n });\n }\n }\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */;\n\n _proto.reconfigure = function reconfigure(_temp2) {\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n locale = _ref4.locale,\n numberingSystem = _ref4.numberingSystem,\n outputCalendar = _ref4.outputCalendar;\n var loc = this.loc.clone({\n locale: locale,\n numberingSystem: numberingSystem,\n outputCalendar: outputCalendar\n });\n return clone$1(this, {\n loc: loc\n });\n }\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */;\n\n _proto.setLocale = function setLocale(locale) {\n return this.reconfigure({\n locale: locale\n });\n }\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */;\n\n _proto.set = function set(values) {\n if (!this.isValid) return this;\n var normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\"Can't mix weekYear/weekNumber units with year/month/day or ordinals\");\n }\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n var mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized); // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n var _objToTS4 = objToTS(mixed, this.o, this.zone),\n ts = _objToTS4[0],\n o = _objToTS4[1];\n return clone$1(this, {\n ts: ts,\n o: o\n });\n }\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */;\n\n _proto.plus = function plus(duration) {\n if (!this.isValid) return this;\n var dur = friendlyDuration(duration);\n return clone$1(this, adjustTime(this, dur));\n }\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */;\n\n _proto.minus = function minus(duration) {\n if (!this.isValid) return this;\n var dur = friendlyDuration(duration).negate();\n return clone$1(this, adjustTime(this, dur));\n }\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */;\n\n _proto.startOf = function startOf(unit) {\n if (!this.isValid) return this;\n var o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n\n case \"hours\":\n o.minute = 0;\n // falls through\n\n case \"minutes\":\n o.second = 0;\n // falls through\n\n case \"seconds\":\n o.millisecond = 0;\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n if (normalizedUnit === \"quarters\") {\n var q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n return this.set(o);\n }\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */;\n\n _proto.endOf = function endOf(unit) {\n var _this$plus;\n return this.isValid ? this.plus((_this$plus = {}, _this$plus[unit] = 1, _this$plus)).startOf(unit).minus(1) : this;\n } // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */;\n\n _proto.toFormat = function toFormat(fmt, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return this.isValid ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID$2;\n }\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */;\n\n _proto.toLocaleString = function toLocaleString(opts) {\n if (opts === void 0) {\n opts = DATE_SHORT;\n }\n return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this) : INVALID$2;\n }\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */;\n\n _proto.toLocaleParts = function toLocaleParts(opts) {\n if (opts === void 0) {\n opts = {};\n }\n return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this) : [];\n }\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */;\n\n _proto.toISO = function toISO(opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) {\n return null;\n }\n return this.toISODate(opts) + \"T\" + this.toISOTime(opts);\n }\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */;\n\n _proto.toISODate = function toISODate(_temp3) {\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$format = _ref5.format,\n format = _ref5$format === void 0 ? \"extended\" : _ref5$format;\n var fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n return toTechFormat(this, fmt);\n }\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */;\n\n _proto.toISOWeekDate = function toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */;\n\n _proto.toISOTime = function toISOTime(_temp4) {\n var _ref6 = _temp4 === void 0 ? {} : _temp4,\n _ref6$suppressMillise = _ref6.suppressMilliseconds,\n suppressMilliseconds = _ref6$suppressMillise === void 0 ? false : _ref6$suppressMillise,\n _ref6$suppressSeconds = _ref6.suppressSeconds,\n suppressSeconds = _ref6$suppressSeconds === void 0 ? false : _ref6$suppressSeconds,\n _ref6$includeOffset = _ref6.includeOffset,\n includeOffset = _ref6$includeOffset === void 0 ? true : _ref6$includeOffset,\n _ref6$includePrefix = _ref6.includePrefix,\n includePrefix = _ref6$includePrefix === void 0 ? false : _ref6$includePrefix,\n _ref6$format = _ref6.format,\n format = _ref6$format === void 0 ? \"extended\" : _ref6$format;\n return toTechTimeFormat(this, {\n suppressSeconds: suppressSeconds,\n suppressMilliseconds: suppressMilliseconds,\n includeOffset: includeOffset,\n includePrefix: includePrefix,\n format: format\n });\n }\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */;\n\n _proto.toRFC2822 = function toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */;\n\n _proto.toHTTP = function toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */;\n\n _proto.toSQLDate = function toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */;\n\n _proto.toSQLTime = function toSQLTime(_temp5) {\n var _ref7 = _temp5 === void 0 ? {} : _temp5,\n _ref7$includeOffset = _ref7.includeOffset,\n includeOffset = _ref7$includeOffset === void 0 ? true : _ref7$includeOffset,\n _ref7$includeZone = _ref7.includeZone,\n includeZone = _ref7$includeZone === void 0 ? false : _ref7$includeZone;\n return toTechTimeFormat(this, {\n includeOffset: includeOffset,\n includeZone: includeZone,\n spaceZone: true\n });\n }\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */;\n\n _proto.toSQL = function toSQL(opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) {\n return null;\n }\n return this.toSQLDate() + \" \" + this.toSQLTime(opts);\n }\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */;\n\n _proto.toString = function toString() {\n return this.isValid ? this.toISO() : INVALID$2;\n }\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */;\n\n _proto.valueOf = function valueOf() {\n return this.toMillis();\n }\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */;\n\n _proto.toMillis = function toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */;\n\n _proto.toSeconds = function toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */;\n\n _proto.toJSON = function toJSON() {\n return this.toISO();\n }\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */;\n\n _proto.toBSON = function toBSON() {\n return this.toJSDate();\n }\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */;\n\n _proto.toObject = function toObject(opts) {\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid) return {};\n var base = Object.assign({}, this.c);\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */;\n\n _proto.toJSDate = function toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n } // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */;\n\n _proto.diff = function diff(otherDateTime, unit, opts) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n if (opts === void 0) {\n opts = {};\n }\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(this.invalid || otherDateTime.invalid, \"created by diffing an invalid DateTime\");\n }\n var durOpts = Object.assign({\n locale: this.locale,\n numberingSystem: this.numberingSystem\n }, opts);\n var units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = _diff(earlier, later, units, durOpts);\n return otherIsLater ? diffed.negate() : diffed;\n }\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */;\n\n _proto.diffNow = function diffNow(unit, opts) {\n if (unit === void 0) {\n unit = \"milliseconds\";\n }\n if (opts === void 0) {\n opts = {};\n }\n return this.diff(DateTime.now(), unit, opts);\n }\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */;\n\n _proto.until = function until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */;\n\n _proto.hasSame = function hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n var inputMs = otherDateTime.valueOf();\n var otherZoneDateTime = this.setZone(otherDateTime.zone, {\n keepLocalTime: true\n });\n return otherZoneDateTime.startOf(unit) <= inputMs && inputMs <= otherZoneDateTime.endOf(unit);\n }\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */;\n\n _proto.equals = function equals(other) {\n return this.isValid && other.isValid && this.valueOf() === other.valueOf() && this.zone.equals(other.zone) && this.loc.equals(other.loc);\n }\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */;\n\n _proto.toRelative = function toRelative(options) {\n if (options === void 0) {\n options = {};\n }\n if (!this.isValid) return null;\n var base = options.base || DateTime.fromObject({\n zone: this.zone\n }),\n padding = options.padding ? this < base ? -options.padding : options.padding : 0;\n var units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n var unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), Object.assign(options, {\n numeric: \"always\",\n units: units,\n unit: unit\n }));\n }\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */;\n\n _proto.toRelativeCalendar = function toRelativeCalendar(options) {\n if (options === void 0) {\n options = {};\n }\n if (!this.isValid) return null;\n return diffRelative(options.base || DateTime.fromObject({\n zone: this.zone\n }), this, Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n }));\n }\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */;\n\n DateTime.min = function min() {\n for (var _len = arguments.length, dateTimes = new Array(_len), _key = 0; _key < _len; _key++) {\n dateTimes[_key] = arguments[_key];\n }\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, function (i) {\n return i.valueOf();\n }, Math.min);\n }\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */;\n\n DateTime.max = function max() {\n for (var _len2 = arguments.length, dateTimes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n dateTimes[_key2] = arguments[_key2];\n }\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, function (i) {\n return i.valueOf();\n }, Math.max);\n } // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */;\n\n DateTime.fromFormatExplain = function fromFormatExplain(text, fmt, options) {\n if (options === void 0) {\n options = {};\n }\n var _options = options,\n _options$locale = _options.locale,\n locale = _options$locale === void 0 ? null : _options$locale,\n _options$numberingSys = _options.numberingSystem,\n numberingSystem = _options$numberingSys === void 0 ? null : _options$numberingSys,\n localeToUse = Locale.fromOpts({\n locale: locale,\n numberingSystem: numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n /**\n * @deprecated use fromFormatExplain instead\n */;\n\n DateTime.fromStringExplain = function fromStringExplain(text, fmt, options) {\n if (options === void 0) {\n options = {};\n }\n return DateTime.fromFormatExplain(text, fmt, options);\n } // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */;\n\n _createClass(DateTime, [{\n key: \"isValid\",\n get: function get() {\n return this.invalid === null;\n }\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n }, {\n key: \"invalidReason\",\n get: function get() {\n return this.invalid ? this.invalid.reason : null;\n }\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n }, {\n key: \"invalidExplanation\",\n get: function get() {\n return this.invalid ? this.invalid.explanation : null;\n }\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n }, {\n key: \"locale\",\n get: function get() {\n return this.isValid ? this.loc.locale : null;\n }\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n }, {\n key: \"numberingSystem\",\n get: function get() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n }, {\n key: \"outputCalendar\",\n get: function get() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n }, {\n key: \"zone\",\n get: function get() {\n return this._zone;\n }\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n }, {\n key: \"zoneName\",\n get: function get() {\n return this.isValid ? this.zone.name : null;\n }\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n }, {\n key: \"year\",\n get: function get() {\n return this.isValid ? this.c.year : NaN;\n }\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n }, {\n key: \"quarter\",\n get: function get() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n }, {\n key: \"month\",\n get: function get() {\n return this.isValid ? this.c.month : NaN;\n }\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n }, {\n key: \"day\",\n get: function get() {\n return this.isValid ? this.c.day : NaN;\n }\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n }, {\n key: \"hour\",\n get: function get() {\n return this.isValid ? this.c.hour : NaN;\n }\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n }, {\n key: \"minute\",\n get: function get() {\n return this.isValid ? this.c.minute : NaN;\n }\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n }, {\n key: \"second\",\n get: function get() {\n return this.isValid ? this.c.second : NaN;\n }\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n }, {\n key: \"millisecond\",\n get: function get() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n }, {\n key: \"weekYear\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n }, {\n key: \"weekNumber\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n }, {\n key: \"weekday\",\n get: function get() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n }, {\n key: \"ordinal\",\n get: function get() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n }, {\n key: \"monthShort\",\n get: function get() {\n return this.isValid ? Info.months(\"short\", {\n locObj: this.loc\n })[this.month - 1] : null;\n }\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n }, {\n key: \"monthLong\",\n get: function get() {\n return this.isValid ? Info.months(\"long\", {\n locObj: this.loc\n })[this.month - 1] : null;\n }\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n }, {\n key: \"weekdayShort\",\n get: function get() {\n return this.isValid ? Info.weekdays(\"short\", {\n locObj: this.loc\n })[this.weekday - 1] : null;\n }\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n }, {\n key: \"weekdayLong\",\n get: function get() {\n return this.isValid ? Info.weekdays(\"long\", {\n locObj: this.loc\n })[this.weekday - 1] : null;\n }\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n }, {\n key: \"offset\",\n get: function get() {\n return this.isValid ? +this.o : NaN;\n }\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n }, {\n key: \"offsetNameShort\",\n get: function get() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n }, {\n key: \"offsetNameLong\",\n get: function get() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n }, {\n key: \"isOffsetFixed\",\n get: function get() {\n return this.isValid ? this.zone.universal : null;\n }\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n }, {\n key: \"isInDST\",\n get: function get() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return this.offset > this.set({\n month: 1\n }).offset || this.offset > this.set({\n month: 5\n }).offset;\n }\n }\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n }, {\n key: \"isInLeapYear\",\n get: function get() {\n return isLeapYear(this.year);\n }\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n }, {\n key: \"daysInMonth\",\n get: function get() {\n return daysInMonth(this.year, this.month);\n }\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n }, {\n key: \"daysInYear\",\n get: function get() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n }, {\n key: \"weeksInWeekYear\",\n get: function get() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n }], [{\n key: \"DATE_SHORT\",\n get: function get() {\n return DATE_SHORT;\n }\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n }, {\n key: \"DATE_MED\",\n get: function get() {\n return DATE_MED;\n }\n /**\n * {@link toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n }, {\n key: \"DATE_MED_WITH_WEEKDAY\",\n get: function get() {\n return DATE_MED_WITH_WEEKDAY;\n }\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n }, {\n key: \"DATE_FULL\",\n get: function get() {\n return DATE_FULL;\n }\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n }, {\n key: \"DATE_HUGE\",\n get: function get() {\n return DATE_HUGE;\n }\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"TIME_SIMPLE\",\n get: function get() {\n return TIME_SIMPLE;\n }\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"TIME_WITH_SECONDS\",\n get: function get() {\n return TIME_WITH_SECONDS;\n }\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"TIME_WITH_SHORT_OFFSET\",\n get: function get() {\n return TIME_WITH_SHORT_OFFSET;\n }\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"TIME_WITH_LONG_OFFSET\",\n get: function get() {\n return TIME_WITH_LONG_OFFSET;\n }\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n }, {\n key: \"TIME_24_SIMPLE\",\n get: function get() {\n return TIME_24_SIMPLE;\n }\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n }, {\n key: \"TIME_24_WITH_SECONDS\",\n get: function get() {\n return TIME_24_WITH_SECONDS;\n }\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n }, {\n key: \"TIME_24_WITH_SHORT_OFFSET\",\n get: function get() {\n return TIME_24_WITH_SHORT_OFFSET;\n }\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n }, {\n key: \"TIME_24_WITH_LONG_OFFSET\",\n get: function get() {\n return TIME_24_WITH_LONG_OFFSET;\n }\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_SHORT\",\n get: function get() {\n return DATETIME_SHORT;\n }\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_SHORT_WITH_SECONDS\",\n get: function get() {\n return DATETIME_SHORT_WITH_SECONDS;\n }\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_MED\",\n get: function get() {\n return DATETIME_MED;\n }\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_MED_WITH_SECONDS\",\n get: function get() {\n return DATETIME_MED_WITH_SECONDS;\n }\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_MED_WITH_WEEKDAY\",\n get: function get() {\n return DATETIME_MED_WITH_WEEKDAY;\n }\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_FULL\",\n get: function get() {\n return DATETIME_FULL;\n }\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_FULL_WITH_SECONDS\",\n get: function get() {\n return DATETIME_FULL_WITH_SECONDS;\n }\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_HUGE\",\n get: function get() {\n return DATETIME_HUGE;\n }\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n }, {\n key: \"DATETIME_HUGE_WITH_SECONDS\",\n get: function get() {\n return DATETIME_HUGE_WITH_SECONDS;\n }\n }]);\n return DateTime;\n}();\nfunction friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\"Unknown datetime argument: \" + dateTimeish + \", of type \" + typeof dateTimeish);\n }\n}\nvar VERSION = \"1.28.0\";\nexports.DateTime = DateTime;\nexports.Duration = Duration;\nexports.FixedOffsetZone = FixedOffsetZone;\nexports.IANAZone = IANAZone;\nexports.Info = Info;\nexports.Interval = Interval;\nexports.InvalidZone = InvalidZone;\nexports.LocalZone = LocalZone;\nexports.Settings = Settings;\nexports.VERSION = VERSION;\nexports.Zone = Zone;","import { types } from \"mobx-state-tree\"\n\nimport graph from \"../graph\"\nimport Clock from \"./clock\"\nimport Record from \"./record\"\n\nconst Subscripcion = types.model({\n id: types.identifier,\n channel: types.string,\n createdOn: types.maybeNull(Clock),\n disabledOn: types.maybeNull(Clock),\n}).actions(model => ({\n change: () => {\n if(!model.createdOn || model.disabledOn) {\n graph(`query ($channel: String!) {\n addSubscripcion(channel: $channel) {\n id channel createdOn disabledOn\n } }`)\n ({\n channel: model.channel,\n })\n .then(response => {\n memory.acquire_session()\n })\n } else {\n graph(`query ($channel: String!) {\n disableSubscripcion(channel: $channel) {\n id channel createdOn disabledOn\n } }`)\n ({\n channel: model.channel,\n })\n .then(response => {\n memory.acquire_session()\n })\n }\n },\n}))\n\nexport default Subscripcion\n","import { types } from \"mobx-state-tree\"\n\nimport graph from \"../graph\"\nimport Clock from \"./clock\"\n\nimport Member from \"./member\"\nimport Record from \"./record\"\nimport Barcode from \"./barcode\"\nimport Hold from \"./hold\"\nimport Subscripcion from \"./subscripcion\"\n\nvar delays = {}\n\nconst Model = types.model({\n records: types.array(Record),\n members: types.array(Member),\n me: types.maybeNull(Member),\n holds: types.array(Hold),\n subscripcions: types.array(Subscripcion),\n hold_dura: 30,\n\n displaying_holds: false,\n displaying_subscripcions: false,\n focused_record: types.maybeNull(types.reference(Record)),\n\n photoString: \"\",\n cameraIsOpen: false,\n addingName: false,\n session_pending: false,\n display: \"card\",\n claimMoneyModal: false,\n\n adding: types.maybeNull(Record),\n scanning: types.maybeNull(Barcode),\n\n search: \"\",\n\n}).views(model => ({\n get money() {\n return model.me.shippingCharges.reduce((sum, x) => sum + x.price, 0)\n },\n})).actions(model => ({\n acquire_records: () => (\n graph(`query { records { id name byline summary imageAddress genre member { id name email image }}}`)()\n .then(response => model.claim('records', response.records))\n ),\n\n acquire_session: () => (\n graph(`query { me { id name surname image email address cashHandle\n holds { id recordId beginsOn expiresOn declinedOn cancelledOn }\n subscripcions { id channel createdOn disabledOn }\n } }`)()\n .then(response => {\n model.claim('me', response.me)\n model.claim('subscripcions', response.me?.subscripcions)\n response.me && model.claim('holds', response.me.holds)\n })\n ),\n\n change_me: (changes) => {\n graph(`query ($name: String!, $surname: String!, $address: String!) {\n changeMe (name: $name, surname: $surname, address: $address) {\n id name surname email address\n }\n }`)(changes)\n .then(response => model.claim('me', response.changeMe.me))\n },\n\n change_record: (id, changes) => {\n graph(`query ($id: ID!, $name: String!, $byline: String!, $summary: String) {\n changeRecord (id: $id, name: $name, byline: $byline, summary: $summary {\n id, name, byline, summary\n }\n }`)({ ...changes, id })\n .then(response => model.claim_record(response.changeRecord.record))\n },\n\n delay: (key, value, delay, callback) => {\n model.claim(key, value)\n\n if(delays[key]) clearTimeout(delays[key])\n delays[key] = setTimeout(callback, delay)\n },\n\n drop_record: (id) => {\n if(model.focused_record?.id === id)\n model.focus_record(null)\n\n return graph(`query ($id: ID!) { dropRecord(id: $id) { id }}`)({ id })\n .then(response =>\n response.dropRecord.id\n ? model.unclaim_record(response.dropRecord.id)\n : null\n )\n },\n\n focus_record: (record) => {\n model.focused_record = record\n },\n\n place_hold: (record) => {\n graph(`query ($recordId: ID!, $expiresOn: ISO8601Date!) {\n placeHold(recordId: $recordId, expiresOn: $expiresOn) {\n beginsOn expiresOn\n } }`)\n ({\n recordId: record.id,\n expiresOn: Clock.read().plus({ days: model.hold_dura }),\n })\n .then(response => {\n model.claim(\"displaying_holds\", true)\n model.acquire_session()\n })\n },\n\n cancel_hold: (hold) => {\n graph(`query ($holdId: ID!) {\n cancelHold(holdId: $holdId) {\n cancelledOn\n } }`)\n ({ holdId: hold.id })\n .then(() => model.acquire_session())\n },\n\n run_search: () => {\n if(model.search)\n graph(`query ($search: String) { records(search: $search) {\n id name byline summary member { id name email }\n }}`)\n ({ search: model.search || null })\n .then(response => model.claim('records', response.records))\n else\n model.acquire_records()\n },\n\n sign_in: ({ email }) => {\n graph(`query ($email: String!) { signIn(email: $email) { email }}`)({ email: email })\n .then((response) => {\n response.signIn.email\n ? model.claim(\"session_pending\", true)\n : null\n })\n },\n\n claim_record: (record) => {\n var index = model.records.indexOf(x => x.id === record.id)\n\n if(index === -1)\n model.records.push(record)\n else\n model.records.splice(index, 1, record)\n },\n\n unclaim_record: (id) => {\n model.records.splice(model.records.indexOf(x => x.id === id), 1)\n },\n\n claim: (key, value) => model[key] = value,\n}))\n\nexport { Member, Record, Clock }\nexport default Model\n","import { types as schema } from \"mobx-state-tree\"\n\nimport loadDisplays from \"../../dynamic/displays\"\n\nvar Model = schema.model('barcode', {\n code: '',\n})\n\nexport default loadDisplays(Model)\n","import { types } from \"mobx-state-tree\"\n\nimport Hold from \"./hold\"\n\nconst ShippingCharge = types.model({\n price: types.number,\n holdId: types.reference(types.late(() => Hold)),\n})\n\nexport default ShippingCharge","import React from \"react\"\nimport styled from \"styled-components\"\n\nconst Background = styled.div`\nbackground-color: rgb(103, 48, 130);\ntext-align: right;\ncolor: #fbeed1;\npadding: 0.5rem;\nposition: fixed;\ntop: 0;\nleft: 0;\nright: 0;\nbox-shadow: 0px 6px 6px 0px #b16893;\nfont-family: 'Carter One', sans-serif;\n`\n\nconst Heading = styled.div`\nfont-size: 1.6em;\n`\n\nconst Spacing = styled.div`\npadding: ${p => p.space || \"1rem\"};\n${p => p.overhang\n? `padding-top: ${p.overhang};`\n: null\n}\n`\n\nconst Header = () => (\n \n ...our shared library。\n \n)\n\nexport { Spacing }\nexport default Header;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */ && prop.charCodeAt(1) === 110\n /* n */ && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */);\n\nexport default isPropValid;","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 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 return target;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import React from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { isValidElementType } from 'react-is';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\n/* eslint-disable import/prefer-default-export */\nfunction invariant(condition, message) {\n if (condition) return;\n var error = new Error(\"loadable: \" + message);\n error.framesToPop = 1;\n error.name = 'Invariant Violation';\n throw error;\n}\nfunction warn(message) {\n // eslint-disable-next-line no-console\n console.warn(\"loadable: \" + message);\n}\nvar Context = /*#__PURE__*/\nReact.createContext();\nvar LOADABLE_REQUIRED_CHUNKS_KEY = '__LOADABLE_REQUIRED_CHUNKS__';\nfunction getRequiredChunkKey(namespace) {\n return \"\" + namespace + LOADABLE_REQUIRED_CHUNKS_KEY;\n}\nvar sharedInternals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getRequiredChunkKey: getRequiredChunkKey,\n invariant: invariant,\n Context: Context\n});\nvar LOADABLE_SHARED = {\n initialChunks: {}\n};\nvar STATUS_PENDING = 'PENDING';\nvar STATUS_RESOLVED = 'RESOLVED';\nvar STATUS_REJECTED = 'REJECTED';\nfunction resolveConstructor(ctor) {\n if (typeof ctor === 'function') {\n return {\n requireAsync: ctor,\n resolve: function resolve() {\n return undefined;\n },\n chunkName: function chunkName() {\n return undefined;\n }\n };\n }\n return ctor;\n}\nvar withChunkExtractor = function withChunkExtractor(Component) {\n var LoadableWithChunkExtractor = function LoadableWithChunkExtractor(props) {\n return /*#__PURE__*/React.createElement(Context.Consumer, null, function (extractor) {\n return /*#__PURE__*/React.createElement(Component, Object.assign({\n __chunkExtractor: extractor\n }, props));\n });\n };\n if (Component.displayName) {\n LoadableWithChunkExtractor.displayName = Component.displayName + \"WithChunkExtractor\";\n }\n return LoadableWithChunkExtractor;\n};\nvar identity = function identity(v) {\n return v;\n};\nfunction createLoadable(_ref) {\n var _ref$defaultResolveCo = _ref.defaultResolveComponent,\n defaultResolveComponent = _ref$defaultResolveCo === void 0 ? identity : _ref$defaultResolveCo,\n _render = _ref.render,\n onLoad = _ref.onLoad;\n function loadable(loadableConstructor, options) {\n if (options === void 0) {\n options = {};\n }\n var ctor = resolveConstructor(loadableConstructor);\n var cache = {};\n /**\n * Cachekey represents the component to be loaded\n * if key changes - component has to be reloaded\n * @param props\n * @returns {null|Component}\n */\n\n function _getCacheKey(props) {\n if (options.cacheKey) {\n return options.cacheKey(props);\n }\n if (ctor.resolve) {\n return ctor.resolve(props);\n }\n return 'static';\n }\n /**\n * Resolves loaded `module` to a specific `Component\n * @param module\n * @param props\n * @param Loadable\n * @returns Component\n */\n\n function resolve(module, props, Loadable) {\n var Component = options.resolveComponent ? options.resolveComponent(module, props) : defaultResolveComponent(module);\n if (options.resolveComponent && !isValidElementType(Component)) {\n throw new Error(\"resolveComponent returned something that is not a React component!\");\n }\n hoistNonReactStatics(Loadable, Component, {\n preload: true\n });\n return Component;\n }\n var cachedLoad = function cachedLoad(props) {\n var cacheKey = _getCacheKey(props);\n var promise = cache[cacheKey];\n if (!promise || promise.status === STATUS_REJECTED) {\n promise = ctor.requireAsync(props);\n promise.status = STATUS_PENDING;\n cache[cacheKey] = promise;\n promise.then(function () {\n promise.status = STATUS_RESOLVED;\n }, function (error) {\n console.error('loadable-components: failed to asynchronously load component', {\n fileName: ctor.resolve(props),\n chunkName: ctor.chunkName(props),\n error: error ? error.message : error\n });\n promise.status = STATUS_REJECTED;\n });\n }\n return promise;\n };\n var InnerLoadable = /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(InnerLoadable, _React$Component);\n InnerLoadable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var cacheKey = _getCacheKey(props);\n return _extends({}, state, {\n cacheKey: cacheKey,\n // change of a key triggers loading state automatically\n loading: state.loading || state.cacheKey !== cacheKey\n });\n };\n function InnerLoadable(props) {\n var _this;\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n result: null,\n error: null,\n loading: true,\n cacheKey: _getCacheKey(props)\n };\n invariant(!props.__chunkExtractor || ctor.requireSync, 'SSR requires `@loadable/babel-plugin`, please install it'); // Server-side\n\n if (props.__chunkExtractor) {\n // This module has been marked with no SSR\n if (options.ssr === false) {\n return _assertThisInitialized(_this);\n } // We run load function, we assume that it won't fail and that it\n // triggers a synchronous loading of the module\n\n ctor.requireAsync(props)[\"catch\"](function () {\n return null;\n }); // So we can require now the module synchronously\n\n _this.loadSync();\n props.__chunkExtractor.addChunk(ctor.chunkName(props));\n return _assertThisInitialized(_this);\n } // Client-side with `isReady` method present (SSR probably)\n // If module is already loaded, we use a synchronous loading\n // Only perform this synchronous loading if the component has not\n // been marked with no SSR, else we risk hydration mismatches\n\n if (options.ssr !== false && (\n // is ready - was loaded in this session\n ctor.isReady && ctor.isReady(props) ||\n // is ready - was loaded during SSR process\n ctor.chunkName && LOADABLE_SHARED.initialChunks[ctor.chunkName(props)])) {\n _this.loadSync();\n }\n return _this;\n }\n var _proto = InnerLoadable.prototype;\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // retrieve loading promise from a global cache\n\n var cachedPromise = this.getCache(); // if promise exists, but rejected - clear cache\n\n if (cachedPromise && cachedPromise.status === STATUS_REJECTED) {\n this.setCache();\n } // component might be resolved synchronously in the constructor\n\n if (this.state.loading) {\n this.loadAsync();\n }\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Component has to be reloaded on cacheKey change\n if (prevState.cacheKey !== this.state.cacheKey) {\n this.loadAsync();\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n _proto.safeSetState = function safeSetState(nextState, callback) {\n if (this.mounted) {\n this.setState(nextState, callback);\n }\n }\n /**\n * returns a cache key for the current props\n * @returns {Component|string}\n */;\n\n _proto.getCacheKey = function getCacheKey() {\n return _getCacheKey(this.props);\n }\n /**\n * access the persistent cache\n */;\n\n _proto.getCache = function getCache() {\n return cache[this.getCacheKey()];\n }\n /**\n * sets the cache value. If called without value sets it as undefined\n */;\n\n _proto.setCache = function setCache(value) {\n if (value === void 0) {\n value = undefined;\n }\n cache[this.getCacheKey()] = value;\n };\n _proto.triggerOnLoad = function triggerOnLoad() {\n var _this2 = this;\n if (onLoad) {\n setTimeout(function () {\n onLoad(_this2.state.result, _this2.props);\n });\n }\n }\n /**\n * Synchronously loads component\n * target module is expected to already exists in the module cache\n * or be capable to resolve synchronously (webpack target=node)\n */;\n\n _proto.loadSync = function loadSync() {\n // load sync is expecting component to be in the \"loading\" state already\n // sounds weird, but loading=true is the initial state of InnerLoadable\n if (!this.state.loading) return;\n try {\n var loadedModule = ctor.requireSync(this.props);\n var result = resolve(loadedModule, this.props, Loadable);\n this.state.result = result;\n this.state.loading = false;\n } catch (error) {\n console.error('loadable-components: failed to synchronously load component, which expected to be available', {\n fileName: ctor.resolve(this.props),\n chunkName: ctor.chunkName(this.props),\n error: error ? error.message : error\n });\n this.state.error = error;\n }\n }\n /**\n * Asynchronously loads a component.\n */;\n\n _proto.loadAsync = function loadAsync() {\n var _this3 = this;\n var promise = this.resolveAsync();\n promise.then(function (loadedModule) {\n var result = resolve(loadedModule, _this3.props, Loadable);\n _this3.safeSetState({\n result: result,\n loading: false\n }, function () {\n return _this3.triggerOnLoad();\n });\n })[\"catch\"](function (error) {\n return _this3.safeSetState({\n error: error,\n loading: false\n });\n });\n return promise;\n }\n /**\n * Asynchronously resolves(not loads) a component.\n * Note - this function does not change the state\n */;\n\n _proto.resolveAsync = function resolveAsync() {\n var _this$props = this.props,\n __chunkExtractor = _this$props.__chunkExtractor,\n forwardedRef = _this$props.forwardedRef,\n props = _objectWithoutPropertiesLoose(_this$props, [\"__chunkExtractor\", \"forwardedRef\"]);\n return cachedLoad(props);\n };\n _proto.render = function render() {\n var _this$props2 = this.props,\n forwardedRef = _this$props2.forwardedRef,\n propFallback = _this$props2.fallback,\n __chunkExtractor = _this$props2.__chunkExtractor,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"forwardedRef\", \"fallback\", \"__chunkExtractor\"]);\n var _this$state = this.state,\n error = _this$state.error,\n loading = _this$state.loading,\n result = _this$state.result;\n if (options.suspense) {\n var cachedPromise = this.getCache() || this.loadAsync();\n if (cachedPromise.status === STATUS_PENDING) {\n throw this.loadAsync();\n }\n }\n if (error) {\n throw error;\n }\n var fallback = propFallback || options.fallback || null;\n if (loading) {\n return fallback;\n }\n return _render({\n fallback: fallback,\n result: result,\n options: options,\n props: _extends({}, props, {\n ref: forwardedRef\n })\n });\n };\n return InnerLoadable;\n }(React.Component);\n var EnhancedInnerLoadable = withChunkExtractor(InnerLoadable);\n var Loadable = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(EnhancedInnerLoadable, Object.assign({\n forwardedRef: ref\n }, props));\n });\n Loadable.displayName = 'Loadable'; // In future, preload could use ``\n\n Loadable.preload = function (props) {\n Loadable.load(props);\n };\n Loadable.load = function (props) {\n return cachedLoad(props);\n };\n return Loadable;\n }\n function lazy(ctor, options) {\n return loadable(ctor, _extends({}, options, {\n suspense: true\n }));\n }\n return {\n loadable: loadable,\n lazy: lazy\n };\n}\nfunction defaultResolveComponent(loadedModule) {\n // eslint-disable-next-line no-underscore-dangle\n return loadedModule.__esModule ? loadedModule[\"default\"] : loadedModule[\"default\"] || loadedModule;\n}\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable = /*#__PURE__*/\n createLoadable({\n defaultResolveComponent: defaultResolveComponent,\n render: function render(_ref) {\n var Component = _ref.result,\n props = _ref.props;\n return /*#__PURE__*/React.createElement(Component, props);\n }\n }),\n loadable = _createLoadable.loadable,\n lazy = _createLoadable.lazy;\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable$1 = /*#__PURE__*/\n createLoadable({\n onLoad: function onLoad(result, props) {\n if (result && props.forwardedRef) {\n if (typeof props.forwardedRef === 'function') {\n props.forwardedRef(result);\n } else {\n props.forwardedRef.current = result;\n }\n }\n },\n render: function render(_ref) {\n var result = _ref.result,\n props = _ref.props;\n if (props.children) {\n return props.children(result);\n }\n return null;\n }\n }),\n loadable$1 = _createLoadable$1.loadable,\n lazy$1 = _createLoadable$1.lazy;\n\n/* eslint-disable no-underscore-dangle, camelcase */\nvar BROWSER = typeof window !== 'undefined';\nfunction loadableReady(done, _temp) {\n if (done === void 0) {\n done = function done() {};\n }\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? '' : _ref$namespace,\n _ref$chunkLoadingGlob = _ref.chunkLoadingGlobal,\n chunkLoadingGlobal = _ref$chunkLoadingGlob === void 0 ? '__LOADABLE_LOADED_CHUNKS__' : _ref$chunkLoadingGlob;\n if (!BROWSER) {\n warn('`loadableReady()` must be called in browser only');\n done();\n return Promise.resolve();\n }\n var requiredChunks = null;\n if (BROWSER) {\n var id = getRequiredChunkKey(namespace);\n var dataElement = document.getElementById(id);\n if (dataElement) {\n requiredChunks = JSON.parse(dataElement.textContent);\n var extElement = document.getElementById(id + \"_ext\");\n if (extElement) {\n var _JSON$parse = JSON.parse(extElement.textContent),\n namedChunks = _JSON$parse.namedChunks;\n namedChunks.forEach(function (chunkName) {\n LOADABLE_SHARED.initialChunks[chunkName] = true;\n });\n } else {\n // version mismatch\n throw new Error('loadable-component: @loadable/server does not match @loadable/component');\n }\n }\n }\n if (!requiredChunks) {\n warn('`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side');\n done();\n return Promise.resolve();\n }\n var resolved = false;\n return new Promise(function (resolve) {\n window[chunkLoadingGlobal] = window[chunkLoadingGlobal] || [];\n var loadedChunks = window[chunkLoadingGlobal];\n var originalPush = loadedChunks.push.bind(loadedChunks);\n function checkReadyState() {\n if (requiredChunks.every(function (chunk) {\n return loadedChunks.some(function (_ref2) {\n var chunks = _ref2[0];\n return chunks.indexOf(chunk) > -1;\n });\n })) {\n if (!resolved) {\n resolved = true;\n resolve();\n }\n }\n }\n loadedChunks.push = function () {\n originalPush.apply(void 0, arguments);\n checkReadyState();\n };\n checkReadyState();\n }).then(done);\n}\n\n/* eslint-disable no-underscore-dangle */\nvar loadable$2 = loadable;\nloadable$2.lib = loadable$1;\nvar lazy$2 = lazy;\nlazy$2.lib = lazy$1;\nvar __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals;\nexport default loadable$2;\nexport { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy$2 as lazy, loadableReady };","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import { types as schema } from \"mobx-state-tree\"\n\nimport loadDisplays from \"../../dynamic/displays\"\nimport graph from \"../../graph\"\nimport { Clock } from \"../index\"\n\nconst PoolCharge = schema.model({\n price: 0,\n donorHandle: schema.string,\n pool: \"mail\",\n paidOn: Clock,\n})\n\nconst Pool = schema.model('pool', {\n pool_charges: schema.array(PoolCharge),\n}).actions(model => ({\n acquire_charges: () => {\n graph(`query ($pool: String!) {\n poolCharges (pool: $pool) {\n donorHandle price paidOn pool\n } }`)({ pool: model.pool })\n .then(response => model.claim(\"pool_charges\", response.poolCharges))\n },\n\n add_bank_card: ({ nonce }) => {\n graph(`query ($nonce: String!) { addBankCard (nonce: $nonce) { nonce } }`)\n ({ nonce })\n .then(response => { console.log(response.data.nonce); debugger; })\n },\n\n claim: (key, assign) => model[key] = assign,\n})).views(model => ({\n get sum() { return model.pool_charges.reduce((sum, x) => sum + x.price, 0) },\n}))\n\nexport default loadDisplays(Pool)\n","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","import React from \"react\"\nimport styled from \"styled-components\"\nimport { observer } from \"mobx-react\"\nimport Quagga from \"quagga/dist/quagga\"\n\nimport Record from \"../../models/record\"\nimport BaseModal from \"../../blocks/modal\"\n\nArray.prototype.unique = function() {\n var o = {}, a = [], i, e;\n for (i = 0; e = this[i]; i++) {o[e] = 1};\n for (e in o) {a.push (e)};\n return a;\n}\n\nvar breakModal = () => memory.claim('scanning', null)\n\nclass Scan extends React.Component {\n state = {\n code: null,\n books: [],\n lookups: [],\n }\n\n componentDidMount() {\n this.loadScanner()\n // setTimeout(() => this.look_up_code('0765309386'), 3200)\n }\n\n componentWillUnmount() {\n Quagga.stop()\n }\n\n unloadScanner = () => {\n Quagga.stop()\n }\n\n loadScanner = () => {\n if(!this.refs.display) {\n console.log(\"No display node seen.\")\n setTimeout(() => this.loadScanner(), 1000)\n return null\n }\n\n Quagga.init({\n inputStream : {\n name : \"Live\",\n type : \"LiveStream\",\n target: this.refs.display,\n },\n decoder : {\n readers : [\n \"ean_reader\",\n // {\n // format: \"ean_reader\",\n // config: { supplements: [ 'ean_5_reader', 'ean_2_reader' ] },\n // },\n // \"ean_8_reader\",\n ],\n /*\n debug: {\n drawBoundingBox: false,\n showFrequency: false,\n drawScanline: true,\n showPattern: true,\n },\n */\n multiple: false,\n },\n }, function(err) {\n if (err) {\n console.log(err);\n return\n }\n console.log(\"Launching scanner\");\n Quagga.start();\n });\n\n Quagga.onProcessed((response) => this.onProcessed(response));\n }\n\n onProcessed = (response) => {\n var drawingCtx = Quagga.canvas.ctx.overlay\n var drawingCanvas = Quagga.canvas.dom.overlay;\n\n if (response?.boxes) {\n drawingCtx.clearRect(\n 0,\n 0,\n parseInt(drawingCanvas.getAttribute(\"width\")),\n parseInt(drawingCanvas.getAttribute(\"height\")),\n );\n\n response\n .boxes\n .filter(box => box !== response.box)\n .forEach(box => {\n Quagga.ImageDebug.drawPath(\n box,\n {x: 0, y: 1},\n drawingCtx,\n {color: \"green\", lineWidth: 2},\n );\n });\n }\n\n if (response?.box) {\n Quagga.ImageDebug.drawPath(\n response.box,\n {x: 0, y: 1},\n drawingCtx,\n {color: \"#00F\", lineWidth: 2},\n );\n }\n\n if (response?.codeResult?.code) {\n Quagga.ImageDebug.drawPath(\n response.line,\n {x: 'x', y: 'y'},\n drawingCtx,\n {color: 'red', lineWidth: 3},\n );\n\n var code = response.codeResult.code\n\n this.look_up_code(code)\n }\n }\n\n look_up_code(code) {\n if(this.state.lookups.indexOf(code) >= 0)\n return null\n\n this.setState({ lookups: this.state.lookups.concat(code).unique() })\n\n fetch(`https://openlibrary.org/isbn/${code}.json`)\n .then(response => response.json())\n .then(book => {\n\n fetch(`https://openlibrary.org${book.authors[0].key}.json`)\n .then(response => response.json())\n .then(by => {\n\n fetch(`https://openlibrary.org${book.works[0].key}.json`)\n .then(response => response.json())\n .then(work => {\n\n var image = book.covers.length > 0\n ? `https://covers.openlibrary.org/b/id/${book.covers[0]}-M.jpg`\n : null\n\n this.setState({\n code,\n books: this.state.books.concat({\n code,\n name: book.title,\n byline: by.name,\n summary: work?.description || '',\n image,\n })\n })\n\n Quagga.stop()\n })\n })\n })\n }\n\n render = () => {\n return (\n \n cancel\n\n {this.state.code\n ?\n {\n this.loadScanner()\n this.setState({ code: null })\n }} >\n Scan again.\n \n :\n {\n this.setState({\n code: this.state.lookups[this.state.lookups.length - 1],\n })\n this.unloadScanner()\n }} >\n See prior lookups.\n \n }\n\n {this.state.code\n ?\n \n {this.state.books.reverse().map(book => (\n \n {book.code}\n
\n Record.create({ ...book, id: '' }).record().then(() => {\n memory.claim('scanning', null)\n memory.acquire_records()\n })\n }>\n {book.name}\n
\n by {book.byline}\n {book.summary}\n
\n ))}\n
\n :\n \n }\n
\n )\n }\n}\n\nvar Responses = styled.div`\ndisplay: flex;\nflex-direction: column;\noverflow-y: scroll;\n`\n\nvar Book = styled.div`\nborder: 1px dashed darkgrey;\npadding: 1.2rem;\n`\n\nvar Code = styled.p`\ncolor: #66aa88;\n`\n\nvar Header = styled.h3`\ntext-decoration: underline;\n`\n\nvar Byline = styled.p`\nmargin: 0;\npadding-left: 2rem;\n`\n\nvar Summary = styled.p`\nfont-size: 0.72rem;\n`\n\nvar Modal = styled(BaseModal)`\noverflow: hidden;\ndisplay: flex;\nflex-direction: column;\n`\n\nvar Bin = styled.div`\ndisplay: inline-block;\nbackground: #f8f6bb;\nmargin: 0.2rem;\nwidth: 12rem;\n`\n\nvar Display = styled.div`\nborder: 1px solid black;\nposition: relative;\nheight: 480px;\nwidth: 640px;\n& > * {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n`\n\nexport default observer(Scan)\n","import React from \"react\"\nimport { observer } from \"mobx-react\"\n\nexport default observer(({ record }) => (\n ( record.name === null\n || record.surname === null\n || record.address === null\n )\n\n ? \n\n : \n))\n","import React from \"react\"\nimport { observer } from \"mobx-react\"\nimport styled from \"styled-components\"\n\nimport Modal from \"../../blocks/modal\"\nimport Field from \"../../blocks/field\"\n\nconst Label = styled.span`\ncolor: grey;\n`\n\nexport default observer(({ record }) => (\n memory.claim(\"addingName\", false)}>\n

\n By adding your name and address, you agree:
\n your name and addresses may be shared among your peers.\n

\n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n
\n))\n","import React from \"react\"\nimport { observer } from \"mobx-react\"\nimport styled from \"styled-components\"\n\nimport Border from \"../../blocks/border\"\nimport { BaseField } from \"../../blocks/field\"\n\nconst Pool = observer(({ record }) => (\n \n

Pool: ${record.sum}

\n

Become a donor.

\n

\n Please use Square Cash.
\n Handle: $c4lliope
\n Message: \"{record.pool}\"
\n

\n
\n))\n\nexport default Pool\n","import React from \"react\"\nimport { observer } from \"mobx-react\"\nimport styled from \"styled-components\"\nimport md5 from \"js-md5\"\n\nimport BaseBorder from \"../../blocks/border\"\n\nconst Border = styled(BaseBorder)`\nbackground-color: ${(p) => p.deep ? \"#d8c796\" : \"#fbeed1\"};\ndisplay: flex;\nflex-direction: column;\nborder: 2px solid black;\nborder-radius: 4px;\n`\n\nconst Headline = styled.div`\nmargin-bottom: 1em;\ndisplay: flex;\njustify-content: space-between;\nflex-direction: row;\n`\n\nconst Image = styled.img`\nborder: 1px solid grey;\nwidth: 100%;\n`\n\nconst Summary = styled.div`\n`\n\nconst Span = styled.div`\ndisplay: grid;\ngrid-template-columns: 40% 1fr;\ngrid-column-gap: 1em;\n`\n\nconst Profile = styled.img`\nborder-radius: 50%;\nheight: 50px;\n`\n\nconst Screen = observer(({ record }) => (\n memory.focus_record(record)} >\n \n
\n {record.name},\n by {record.byline}\n
\n\n \n
\n\n \n {`Image\n\n \n {record.summarize(320)}\n \n \n
\n))\n\nexport default Screen\n","import React from \"react\"\nimport { observer } from \"mobx-react\"\nimport styled from \"styled-components\"\nimport md5 from \"js-md5\"\n\nconst Record = observer(({ record, onClick }) => (\n memory.focus_record(record)}\n >\n {`Image\n\n \n \n))\n\nvar SideBySide = styled.div`\nborder: 4px solid grey;\nposition: relative;\n`\n\nconst Image = styled.img`\nborder: 1px solid grey;\nwidth: 100%;\n`\n\nconst Profile = styled.img`\nborder-radius: 50%;\nheight: 24px;\nposition: absolute;\nbottom: 12px;\nright: 12px;\n`\n\nexport default Record\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport { observer } from \"mobx-react\"\n\nexport default observer(({ record }) => (\n memory.focus_record(record)}\n >\n {`Image\n\n {record.name}\n by {record.byline}\n {record.summarize(320)}\n \n))\n\nconst Line = styled.div`\ndisplay: grid;\ngrid-template-columns: 80px 2fr 1fr 4fr;\ngrid-column-gap: 1rem;\npadding: 0.5rem;\nborder-bottom: 2px solid black;\nbackground-color: #fbeed1;\n`\n\nconst Image = styled.img`\nborder: 1px solid grey;\nwidth: 100%;\n`\n","import styled from \"styled-components\"\n\nvar primary = '#950cd6'\nvar background = '#fbeed1'\n\nexport default styled.button`\n background-color: ${({chosen}) => chosen ? background : primary};\n color: ${({chosen}) => chosen ? primary : background};\n\n display: inline-block;\n padding: 0.5rem;\n text-align: center;\n text-decoration: none;\n width: auto;\n\n &:hover {\n background-color: ${primary};\n color: ${background};\n }\n\n border-radius: 0.35em;\n border: 2px solid rgba(100, 100, 100, 0.2);\n\n font-weight: 400;\n`\n","import React from \"react\"\n\nimport Button from \"./button\"\nimport { observer } from \"mobx-react\"\nimport styled from \"styled-components\"\n\n// \"What is your answer?\"\n// * Option A\n// * Option B\n//\n// looks like:\n//\n// assembly.language}\n// options={[\"Español\", \"English\"]}\n// onChange={(selection) => assembly.language = selection}\n// />\n\nconst Selection = observer(({update, options, render, onChange}) => (\n \n {options.map(option => (\n onChange(option)}\n >\n { render\n ? render(option)\n : option\n }\n \n ))}\n \n))\n\nconst Layout = styled.div`\n text-align: center;\n display: block;\n`\n\nexport default Selection\n","import React from \"react\"\nimport { observer } from \"mobx-react\"\nimport { getSnapshot } from \"mobx-state-tree\"\nimport styled from \"styled-components\"\n\nimport Modal from \"../../blocks/modal\"\nimport Field from \"../../blocks/field\"\nimport Selection from \"../../blocks/selection\"\n\nimport { mdiRefresh } from \"@mdi/js\"\nimport Icon from \"@mdi/react\"\n\nconst Links = styled.div`\ndisplay: flex;\nflex-direction: column;\n`\n\nconst Label = styled.span`\ncolor: grey;\n`\n\nconst FocusedRecord = observer(({ record }) => (\n memory.focus_record(null)}\n >\n {\n memory.me\n && record.member.id === memory.me.id\n ?\n
\n \n memory\n .drop_record(record.id)\n .then(memory.acquire_records)\n }\n >drop record.\n
\n :\n \n \n {memory.me\n\n ? memory.me.address\n ? <>\n Place a... \n\n memory.hold_dura}\n options={[30, 60, 90, 180, 270, 360]}\n onChange={(chosen) => memory.claim(\"hold_dura\", chosen)}\n />\n\n ...day long hold:\n\n memory.place_hold(record)} >\n go.\n \n \n\n : <>\n memory.claim(\"addingName\", true)}>\n Add your name and address\n  \n so you can place a hold on this {record.genre}.\n \n\n : \n Begin a session so you can place a hold on this {record.genre}.\n \n }\n \n \n }\n\n {`Image\n\n \n \n\n \n \n\n \n \n\n \n \n
\n))\n\nvar Line = styled.div`\ndisplay: flex;\nflex-direction: row;\njustify-content: flex-end;\nalign-items: baseline;\npadding: 0.6rem 0;\nborder-bottom: 1px solid grey;\n`\n\nconst Image = styled.img`\nborder: 1px solid grey;\nheight: 12rem;\ndisplay: block;\nfloat: right;\n`\n\nexport default FocusedRecord\n","import React from \"react\"\nimport { observer } from \"mobx-react\"\nimport styled from \"styled-components\"\n\nvar GenreMenu = observer(({ header, callback }) => (\n <>\n

{header || \"Choose a genre.\"}

\n\n \n callback('book')} >\n

Book

\n paperback, hardcopy, magazines, and bound papers.\n
\n\n callback('media')} >\n

Media

\n audio and images on disc.\n
\n\n callback('machine')} >\n

Machinery

\n gear or common-use machine shop pieces.\n
\n\n callback('meal')} >\n

Meal Supply

\n nonperishable or local bag drops.\n
\n
\n \n))\n\nvar Choices = styled.div`\ndisplay: grid;\ngrid-template-columns: repeat(4, 1fr);\ngrid-template-rows: 1fr;\ngrid-gap: 1rem;\n`\n\nvar Choice = styled.div`\nborder: 1px solid grey;\nborder-radius: 4px;\nvertical-align: center;\ntext-align: center;\nheight: 160px;\nwidth: 160px;\n`\n\nexport default GenreMenu\n","import React from \"react\"\nimport { observer } from \"mobx-react\"\nimport styled from \"styled-components\"\nimport { applySnapshot, getSnapshot } from \"mobx-state-tree\"\n\nimport BaseModal from \"../../blocks/modal\"\nimport Field, { BaseField } from \"../../blocks/field\"\nimport GenreMenu from \"../../blocks/genre_menu\"\n\nconst Modal = styled(BaseModal)`\noverflow: hidden;\ndisplay: flex;\nflex-direction: column;\n`\n\nconst Responses = styled.div`\noverflow-y: scroll;\n`\n\nconst Response = styled.div`\nborder-top: 1px solid grey;\ndisplay: flex;\nflex-direction: row;\nalign-items: center;\npadding: 1rem;\n\n&:hover {\n background-color: #f7e8bf;\n cursor: pointer;\n}\n`\n\nconst Image = styled.img`\nheight: 3rem;\nmargin-right: 1rem;\n`\n\nvar breakModal = () => memory.claim('adding', null)\n\nconst AddRecord = observer(({ record }) => (\n \n cancel\n\n { record.genre === 'unclassed'\n ?\n record.claim('genre', choice)}\n />\n\n : <>\n record.claim('genre', 'unclassed')}>\n go back.\n \n\n \n\n \n\n { record.genre === 'book' &&\n <>\n \n\n \n {record.search_responses.map((response, index) => (\n {\n applySnapshot(record, { id: '', ...getSnapshot(record.search_responses[index]) })\n record.record()\n setTimeout(() => {\n record.claim('adding', null)\n record.acquire_records()\n }, 1000)\n }} >\n {`${response.name}\n {response.name} by {response.byline}\n \n ))}\n \n\n \n \n }\n\n \n\n \n\n \n\n {\n record.record()\n setTimeout(() => memory.acquire_records(), 1000)\n }}\n >Record\n \n }\n \n))\n\nexport default AddRecord\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n if (ret !== void 0) {\n return !!ret;\n }\n if (objA === objB) {\n return true;\n }\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n return true;\n};","function stylis_min(W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n default:\n f += e.charAt(l);\n }\n g = 59;\n }\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n case 125:\n k--;\n break;\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n break;\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n }\n }\n l = u;\n }\n }\n break;\n case 91:\n g++;\n case 40:\n g++;\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {}\n }\n if (0 === k) break;\n l++;\n }\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n default:\n r = O;\n }\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n default:\n z++;\n y = e.charAt(l);\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n default:\n 32 !== g && (y = ' ');\n }\n break;\n case 0:\n y = '\\\\0';\n break;\n case 12:\n y = '\\\\f';\n break;\n case 11:\n y = '\\\\v';\n break;\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n case 8:\n 111 === K && (E = K);\n }\n break;\n case 58:\n 0 === n + b + m && (u = l);\n break;\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n case 91:\n 0 === n + b + v && m++;\n break;\n case 93:\n 0 === n + b + v && m--;\n break;\n case 41:\n 0 === n + b + m && v--;\n break;\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n default:\n q = 1;\n }\n v++;\n }\n break;\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n case 220:\n t = l, b = 42;\n }\n break;\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n 0 === b && (f += y);\n }\n K = x;\n x = g;\n l++;\n }\n t = p.length;\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n E = 0;\n }\n }\n return G + p + F;\n }\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n break;\n default:\n var v = b = 0;\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n }\n return c;\n }\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n return d + c;\n }\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n if (0 === w || 2 === w && !L(a, 1)) return a;\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n case 969:\n case 942:\n return '-webkit-' + a + a;\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n case 220:\n b = a.replace(G, 'lr');\n break;\n default:\n return a;\n }\n return '-webkit-' + a + '-ms-' + b + a;\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n return a + ';';\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n return a;\n }\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n default:\n x = w;\n }\n }\n if (x !== c) return x;\n }\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n return T;\n }\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\nexport default stylis_min;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","(function () {\n function __extend() {\n \n var extended = {}, deep = false, i = 0, length = arguments.length\n if (Object.prototype.toString.call( arguments[0] ) == '[object Boolean]') {\n deep = arguments[0]\n i++\n }\n var merge = function (obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n if (deep && Object.prototype.toString.call(obj[prop]) == '[object Object]') {\n extended[prop] = __extend(true, extended[prop], obj[prop])\n } else {\n extended[prop] = obj[prop]\n }\n }\n }\n }\n \n for (; i < length; i++) {\n var obj = arguments[i]\n merge(obj)\n }\n \n return extended\n }\n \n function __unique(array) {\n return array.filter( function onlyUnique(value, index, self) {\n return self.indexOf(value) === index;\n })\n }\n\n function __doRequest(\n method, url, contentType, accept, headers, body, _onRequestError, callback\n ) {\n var xhr = new XMLHttpRequest\n xhr.open(method, url, true)\n xhr.setRequestHeader('Content-Type', contentType)\n xhr.setRequestHeader('Accept', accept)\n for (var key in headers) { xhr.setRequestHeader(key, headers[key]) }\n xhr.onerror = function () { callback(xhr, xhr.status) }\n xhr.onload = function () {\n try {\n callback(JSON.parse(xhr.responseText), xhr.status)\n }\n catch (e) {\n callback(xhr, xhr.status)\n }\n }\n xhr.send(body)\n }\n \n \n function __request(debug, method, url, headers, data, asJson, onRequestError, callback) {\n if (!url) {\n return;\n }\n if (asJson) {\n var body = JSON.stringify({query: data.query, variables: data.variables});\n } else {\n var body = \"query=\" + encodeURIComponent(data.query) + \"&variables=\" + encodeURIComponent(JSON.stringify(data.variables))\n }\n if (debug) {\n console.groupCollapsed('[graphql]: '\n + method.toUpperCase() + ' ' + url + ': '\n + data.query.split(/\\n/)[0].substr(0, 50) + '... with '\n + JSON.stringify(data.variables).substr(0, 50) + '...')\n console.log('QUERY: %c%s', 'font-weight: bold', data.query)\n console.log('VARIABLES: %c%s\\n\\nsending as ' + (asJson ? 'json' : 'form url-data'), 'font-weight: bold', JSON.stringify(data.variables, null, 2), data.variables)\n console.groupEnd()\n }\n \n for (var key in headers) {\n if (typeof headers[key] === 'function') {\n headers[key] = headers[key]()\n }\n }\n \n __doRequest(\n method,\n url,\n asJson ? 'application/json' : 'application/x-www-form-urlencoded',\n 'application/json',\n headers,\n body,\n onRequestError,\n callback\n )\n }\n \n function __isTagCall(strings) {\n return Object.prototype.toString.call(strings) == '[object Array]' && strings.raw\n }\n \n function GraphQLClient(url, options) {\n if (!(this instanceof GraphQLClient)) {\n var client = new GraphQLClient(url, options, true)\n var _lazy = client._sender\n for (var m in client) {\n if (typeof client[m] == 'function') {\n _lazy[m] = client[m].bind(client)\n if (client[m].declare) _lazy[m].declare = client[m].declare.bind(client)\n if (client[m].run) _lazy[m].run = client[m].run.bind(client)\n }\n }\n return _lazy\n } else if (arguments[2] !== true) {\n throw new Error(\"You cannot create GraphQLClient instance. Please call GraphQLClient as function.\")\n }\n if (!options)\n options = {}\n \n if (!options.fragments)\n options.fragments = {}\n \n this.url = url\n this.options = options || {}\n this._fragments = this.buildFragments(options.fragments)\n this._sender = this.createSenderFunction(options.debug)\n this.createHelpers(this._sender)\n this._transaction = {}\n }\n \n // \"fragment auth.login\" will be \"fragment auth_login\"\n FRAGMENT_SEPERATOR = \"_\"\n \n // The autodeclare keyword.\n GraphQLClient.AUTODECLARE_PATTERN = /\\(@autodeclare\\)|\\(@autotype\\)/g\n \n GraphQLClient.FRAGMENT_PATTERN = /\\.\\.\\.\\s*([A-Za-z0-9\\.\\_]+)/g\n \n // Flattens nested object\n /*\n * {a: {b: {c: 1, d: 2}}} => {\"a.b.c\": 1, \"a.b.d\": 2}\n */\n GraphQLClient.prototype.flatten = function (object) {\n var prefix = arguments[1] || \"\", out = arguments[2] || {}, name\n for (name in object) {\n if (object.hasOwnProperty(name)) {\n typeof object[name] == \"object\"\n ? this.flatten(object[name], prefix + name + FRAGMENT_SEPERATOR, out)\n : out[prefix + name] = object[name]\n }\n }\n return out\n }\n \n GraphQLClient.prototype.setUrl = function (url) {\n this.url = url\n return this.url\n }\n \n GraphQLClient.prototype.getUrl = function () {\n return this.url\n }\n \n // Gets path from object\n /*\n * {a: {b: {c: 1, d: 2}}}, \"a.b.c\" => 1\n */\n GraphQLClient.prototype.fragmentPath = function (fragments, path) {\n var getter = new Function(\"fragments\", \"return fragments.\" + path.replace(/\\./g, FRAGMENT_SEPERATOR))\n var obj = getter(fragments)\n if (path != \"on\" && (!obj || typeof obj != \"string\")) {\n throw new Error(\"Fragment \" + path + \" not found\")\n }\n return obj\n }\n \n GraphQLClient.prototype.collectFragments = function (query, fragments) {\n var that = this\n var fragmentRegexp = GraphQLClient.FRAGMENT_PATTERN\n var collectedFragments = []\n ;(query.match(fragmentRegexp)||[]).forEach(function (fragment) {\n var path = fragment.replace(fragmentRegexp, function (_, $m) {return $m})\n var fragment = that.fragmentPath(fragments, path)\n if (fragment) {\n var pathRegexp = new RegExp(fragmentRegexp.source.replace(/\\((.*)\\)/, path) + '$')\n if (fragment.match(pathRegexp)) {\n throw new Error(\"Recursive fragment usage detected on \" + path + \".\")\n }\n collectedFragments.push(fragment)\n // Collect sub fragments\n var alreadyCollectedFragments = collectedFragments.filter(function (alreadyCollected) {\n return alreadyCollected.match(new RegExp(\"fragment \" + path))\n })\n if (alreadyCollectedFragments.length > 0 && fragmentRegexp.test(fragment)) {\n that.collectFragments(fragment, fragments).forEach(function (fragment) {\n collectedFragments.unshift(fragment)\n })\n }\n }\n })\n return __unique(collectedFragments)\n }\n \n GraphQLClient.prototype.processQuery = function (query, fragments) {\n if (typeof query == 'object' && query.hasOwnProperty('kind') && query.hasOwnProperty('definitions')) {\n throw new Error(\"Do not use graphql AST to send requests. Please generate query as string first using `graphql.print(query)`\")\n }\n var fragmentRegexp = GraphQLClient.FRAGMENT_PATTERN\n var collectedFragments = this.collectFragments(query, fragments)\n query = query.replace(fragmentRegexp, function (_, $m) {\n return \"... \" + $m.split(\".\").join(FRAGMENT_SEPERATOR)\n })\n return [query].concat(collectedFragments.filter(function (fragment) {\n // Remove already used fragments\n return !query.match(fragment)\n })).join(\"\\n\")\n }\n \n GraphQLClient.prototype.autoDeclare = function (query, variables) {\n var that = this\n var typeMap = {\n string: \"String\",\n number: function (value) {\n return value % 1 === 0 ? \"Int\" : \"Float\";\n },\n boolean: \"Boolean\"\n }\n return query.replace(GraphQLClient.AUTODECLARE_PATTERN, function () {\n var types = []\n for (var key in variables) {\n var value = variables[key]\n var keyAndType = key.split(/^(.*?)\\!/)\n if (keyAndType.length > 1) {\n keyAndType = keyAndType.slice(1)\n keyAndType[1] = keyAndType[1].replace(/(.*?)\\!$/, \"$1\")\n }\n var mapping = typeMap[typeof(value)]\n var mappedType = typeof(mapping) === \"function\" ? mapping(value) : mapping\n if (!key.match(\"!\") && keyAndType[0].match(/_?id/i)) {\n mappedType = \"ID\"\n }\n var type = (keyAndType[1] || mappedType)\n if (type) {\n types.push(\"$\" + keyAndType[0] + \": \" + type + \"!\")\n }\n }\n types = types.join(\", \")\n return types ? \"(\"+ types +\")\" : \"\"\n })\n }\n \n GraphQLClient.prototype.cleanAutoDeclareAnnotations = function (variables) {\n if (!variables) variables = {}\n var newVariables = {}\n for (var key in variables) {\n var value = variables[key]\n var keyAndType = key.split(\"!\")\n newVariables[keyAndType[0]] = value\n }\n return newVariables\n }\n \n GraphQLClient.prototype.buildFragments = function (fragments) {\n var that = this\n fragments = this.flatten(fragments || {})\n var fragmentObject = {}\n for (var name in fragments) {\n var fragment = fragments[name]\n if (typeof fragment == \"object\") {\n fragmentObject[name] = that.buildFragments(fragment)\n } else {\n fragmentObject[name] = \"\\nfragment \" + name + \" \" + fragment\n }\n }\n return fragmentObject\n }\n \n GraphQLClient.prototype.buildQuery = function (query, variables) {\n return this.autoDeclare(this.processQuery(query, this._fragments), variables)\n }\n \n GraphQLClient.prototype.parseType = function (query) {\n var match = query.trim().match(/^(query|mutation|subscription)/)\n if (!match) return 'query'\n return match[1]\n }\n \n GraphQLClient.prototype.createSenderFunction = function (debug) {\n var that = this\n return function (query, originalQuery, type) {\n if (__isTagCall(query)) {\n return that.run(that.ql.apply(that, arguments))\n }\n var caller = function (variables, requestOptions) {\n if (!requestOptions) requestOptions = {}\n if (!variables) variables = {}\n var fragmentedQuery = that.buildQuery(query, variables)\n headers = __extend((that.options.headers||{}), (requestOptions.headers||{}))\n \n return new Promise(function (resolve, reject) {\n __request(debug, that.options.method || \"post\", that.getUrl(), headers, {\n query: fragmentedQuery,\n variables: that.cleanAutoDeclareAnnotations(variables)\n }, !!that.options.asJSON, that.options.onRequestError, function (response, status) {\n if (status == 200) {\n if (response.errors) {\n reject(response.errors)\n } else if (response.data) {\n resolve(response.data)\n } else {\n resolve(response)\n }\n } else {\n reject(response)\n }\n })\n })\n }\n \n caller.merge = function (mergeName, variables) {\n if (!type) {\n type = that.parseType(query)\n query = query.trim()\n .replace(/^(query|mutation|subscription)\\s*/, '').trim()\n .replace(GraphQLClient.AUTODECLARE_PATTERN, '').trim()\n .replace(/^\\{|\\}$/g, '')\n }\n if (!originalQuery) {\n originalQuery = query\n }\n that._transaction[mergeName] = that._transaction[mergeName] || {\n query: [],\n mutation: []\n }\n return new Promise(function (resolve) {\n that._transaction[mergeName][type].push({\n type: type,\n query: originalQuery,\n variables: variables,\n resolver: resolve\n })\n })\n }\n if (arguments.length > 3) {\n return caller.apply(null, Array.prototype.slice.call(arguments, 3))\n }\n return caller\n }\n }\n \n GraphQLClient.prototype.commit = function (mergeName) {\n if (!this._transaction[mergeName]) {\n throw new Error(\"You cannot commit the merge \" + mergeName + \" without creating it first.\")\n }\n var that = this\n var resolveMap = {}\n var mergedVariables = {}\n var mergedQueries = {}\n Object.keys(this._transaction[mergeName]).forEach(function (method) {\n if (that._transaction[mergeName][method].length === 0) return\n var subQuery = that._transaction[mergeName][method].map(function (merge) {\n var reqId = 'merge' + Math.random().toString().split('.')[1].substr(0, 6)\n resolveMap[reqId] = merge.resolver\n var query = merge.query.replace(/\\$([^\\.\\,\\s\\)]*)/g, function (_, m) {\n if (!merge.variables) {\n throw new Error('Unused variable on merge ' + mergeName + ': $' + m[0])\n }\n var matchingKey = Object.keys(merge.variables).filter(function (key) {\n return key === m || key.match(new RegExp('^' + m + '!'))\n })[0]\n var variable = reqId + '__' + matchingKey\n mergedVariables[method] = mergedVariables[method] || {}\n mergedVariables[method][variable] = merge.variables[matchingKey]\n return '$' + variable.split('!')[0]\n })\n var alias = query.trim().match(/^[^\\(]+\\:/)\n if (!alias) {\n alias = query.replace(/^\\{|\\}$/gm, '').trim().match(/^[^\\(\\{]+/)[0] + ':'\n } else {\n query = query.replace(/^[^\\(]+\\:/, '')\n }\n return reqId + '_' + alias + query\n }).join('\\n')\n \n mergedQueries[method] = mergedQueries[method] || []\n mergedQueries[method].push(method + \" (@autodeclare) {\\n\" + subQuery + \"\\n }\")\n })\n \n return Promise.all(Object.keys(mergedQueries).map(function (method) {\n var query = mergedQueries[method].join('\\n')\n var variables = mergedVariables[method]\n return that._sender(query, query, null, variables)\n })).then(function (responses) {\n var newResponses = {}\n responses.forEach(function (response) {\n Object.keys(response).forEach(function (mergeKey) {\n var parsedKey = mergeKey.match(/^(merge\\d+)\\_(.*)/)\n if (!parsedKey) {\n throw new Error('Multiple root keys detected on response. Merging doesn\\'t support it yet.')\n }\n var reqId = parsedKey[1]\n var fieldName = parsedKey[2]\n var newResponse = {}\n newResponse[fieldName] = response[mergeKey]\n newResponses[fieldName] = (newResponses[fieldName] || []).concat([response[mergeKey]])\n resolveMap[reqId](newResponse)\n })\n })\n return newResponses\n }).catch(function (responses) {\n return { error: true, errors: responses }\n }).finally(function (responses) {\n that._transaction[mergeName] = { query: [], mutation: [] }\n return responses\n })\n }\n \n GraphQLClient.prototype.createHelpers = function (sender) {\n var that = this\n function helper(query) {\n if (__isTagCall(query)) {\n that.__prefix = this.prefix\n that.__suffix = this.suffix\n var result = that.run(that.ql.apply(that, arguments))\n that.__prefix = \"\"\n that.__suffix = \"\"\n return result\n }\n var caller = sender(this.prefix + \" \" + query + \" \" + this.suffix, query.trim(), this.type)\n if (arguments.length > 1 && arguments[1] != null) {\n return caller.apply(null, Array.prototype.slice.call(arguments, 1))\n }\n return caller\n }\n \n var helpers = [\n {method: 'mutate', type: 'mutation'},\n {method: 'query', type: 'query'},\n {method: 'subscribe', type: 'subscription'}\n ]\n helpers.forEach(function (m) {\n that[m.method] = function (query, variables, options) {\n if (that.options.alwaysAutodeclare === true || (options && options.declare === true)) {\n return helper.call({type: m.type, prefix: m.type + \" (@autodeclare) {\", suffix: \"}\"}, query, variables)\n }\n return helper.call({type: m.type, prefix: m.type, suffix: \"\"}, query, variables)\n }\n that[m.method].run = function (query, options) {\n return that[m.method](query, options)({})\n }\n })\n this.run = function (query) {\n return sender(query, originalQuery, m.type, {})\n }\n }\n \n GraphQLClient.prototype.fragments = function () {\n return this._fragments\n }\n \n GraphQLClient.prototype.getOptions = function () {\n return this.options || {}\n }\n \n GraphQLClient.prototype.headers = function (newHeaders) {\n return this.options.headers = __extend(this.options.headers, newHeaders)\n }\n \n GraphQLClient.prototype.fragment = function (fragment) {\n if (typeof fragment == 'string') {\n var _fragment = this._fragments[fragment.replace(/\\./g, FRAGMENT_SEPERATOR)]\n if (!_fragment) {\n throw \"Fragment \" + fragment + \" not found!\"\n }\n return _fragment.trim()\n } else {\n this.options.fragments = __extend(true, this.options.fragments, fragment)\n this._fragments = this.buildFragments(this.options.fragments)\n return this._fragments\n }\n }\n \n GraphQLClient.prototype.ql = function (strings) {\n var that = this\n fragments = Array.prototype.slice.call(arguments, 1)\n fragments = fragments.map(function (fragment) {\n if (typeof fragment == 'string') {\n return fragment.match(/fragment\\s+([^\\s]*)\\s/)[1]\n }\n })\n var query = (typeof strings == 'string') ? strings : strings.reduce(function (acc, seg, i) {\n return acc + fragments[i - 1] + seg\n })\n query = this.buildQuery(query)\n query = ((this.__prefix||\"\") + \" \" + query + \" \" + (this.__suffix||\"\")).trim()\n return query\n }\n \n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return (root.graphql = factory(GraphQLClient))\n });\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory(root.GraphQLClient)\n } else {\n root.graphql = factory(root.GraphQLClient)\n }\n }(this, function () {\n return GraphQLClient\n }))\n })()\n ","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g;\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g;\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format;\nexports.parse = parse;\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format(obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required');\n }\n var parameters = obj.parameters;\n var type = obj.type;\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type');\n }\n var string = type;\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param;\n var params = Object.keys(parameters).sort();\n for (var i = 0; i < params.length; i++) {\n param = params[i];\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name');\n }\n string += '; ' + param + '=' + qstring(parameters[param]);\n }\n }\n return string;\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse(string) {\n if (!string) {\n throw new TypeError('argument string is required');\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object' ? getcontenttype(string) : string;\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string');\n }\n var index = header.indexOf(';');\n var type = index !== -1 ? header.substr(0, index).trim() : header.trim();\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type');\n }\n var obj = new ContentType(type.toLowerCase());\n\n // parse parameters\n if (index !== -1) {\n var key;\n var match;\n var value;\n PARAM_REGEXP.lastIndex = index;\n while (match = PARAM_REGEXP.exec(header)) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format');\n }\n index += match[0].length;\n key = match[1].toLowerCase();\n value = match[2];\n if (value[0] === '\"') {\n // remove quotes and escapes\n value = value.substr(1, value.length - 2).replace(QESC_REGEXP, '$1');\n }\n obj.parameters[key] = value;\n }\n if (index !== header.length) {\n throw new TypeError('invalid parameter format');\n }\n }\n return obj;\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype(obj) {\n var header;\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type');\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type'];\n }\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object');\n }\n return header;\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring(val) {\n var str = String(val);\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str;\n }\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value');\n }\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"';\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType(type) {\n this.parameters = Object.create(null);\n this.type = type;\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n/* global Reflect, Promise */\n\nvar extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n};\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nexport var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n function fulfill(value) {\n resume(\"next\", value);\n }\n function reject(value) {\n resume(\"throw\", value);\n }\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n return cooked;\n}\n;\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || typeof receiver !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}","import { __spreadArray } from 'tslib';\nimport { parse } from 'content-type';\nvar cache = new Map();\nvar cloneSvg = function cloneSvg(sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\nvar isLocal = function isLocal() {\n return window.location.protocol === 'file:';\n};\nvar makeAjaxRequest = function makeAjaxRequest(url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n if (!contentType) {\n throw new Error('Content type not found');\n }\n var type = parse(contentType).type;\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \".concat(type));\n }\n }\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal() ? 'Note: SVG injection ajax calls do not work locally without ' + 'adjusting security settings in your browser. Or consider ' + 'using a local webserver.' : 'Unable to load SVG file: ' + url);\n }\n if (httpRequest.status === 200 || isLocal() && httpRequest.status === 0) {\n callback(null, httpRequest);\n } else {\n throw new Error('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n }\n }\n } catch (error) {\n httpRequest.abort();\n if (error instanceof Error) {\n callback(error, httpRequest);\n } else {\n throw error;\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n httpRequest.send();\n};\nvar requestQueue = {};\nvar queueRequest = function queueRequest(url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n};\nvar processRequestQueue = function processRequestQueue(url) {\n var _loop_1 = function _loop_1(i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = requestQueue[url][i];\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n if (i === requestQueue[url].length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n _loop_1(i);\n }\n};\nvar loadSvgCached = function loadSvgCached(url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n if (error) {\n cache.set(url, error);\n } else if (httpRequest.responseXML instanceof Document && httpRequest.responseXML.documentElement && httpRequest.responseXML.documentElement instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n processRequestQueue(url);\n });\n};\nvar loadSvgUncached = function loadSvgUncached(url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n if (error) {\n callback(error);\n } else if (httpRequest.responseXML instanceof Document && httpRequest.responseXML.documentElement && httpRequest.responseXML.documentElement instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\nvar idCounter = 0;\nvar uniqueId = function uniqueId() {\n return ++idCounter;\n};\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar injectElement = function injectElement(el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var elUrl = el.getAttribute('data-src') || el.getAttribute('src');\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n var elId = el.getAttribute('id');\n if (elId) {\n svg.setAttribute('id', elId);\n }\n var elTitle = el.getAttribute('title');\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n var elWidth = el.getAttribute('width');\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n var elHeight = el.getAttribute('height');\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], (svg.getAttribute('class') || '').split(' '), true), ['injected-svg'], false), (el.getAttribute('class') || '').split(' '), true))).join(' ').trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke']\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n properties_1 = iriElementsAndProperties_1[key];\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n var _loop_1 = function _loop_1(a, elementsLen) {\n currentId_1 = elements_1[a].id;\n newId_1 = currentId_1 + '-' + uniqueId();\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId_1 + '\"]');\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var attrValue = referencingElements[b].getAttribute(property);\n if (attrValue && !attrValue.match(new RegExp('url\\\\(\"?#' + currentId_1 + '\"?\\\\)'))) {\n continue;\n }\n referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');\n }\n });\n var allLinks = svg.querySelectorAll('[*|href]');\n var links = [];\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href');\n if (href && href.toString() === '#' + elements_1[a].id) {\n links.push(allLinks[c]);\n }\n }\n for (var d = 0, linksLen = links.length; d < linksLen; d++) {\n links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);\n }\n elements_1[a].id = newId_1;\n };\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n _loop_1(a);\n }\n });\n }\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n scriptType = scripts[i].getAttribute('type');\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript' || scriptType === 'text/javascript') {\n script = scripts[i].innerText || scripts[i].textContent;\n if (script) {\n scriptsToEval.push(script);\n }\n svg.removeChild(scripts[i]);\n }\n }\n if (scriptsToEval.length > 0 && (evalScripts === 'always' || evalScripts === 'once' && !ranScripts[elUrl])) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n ranScripts[elUrl] = true;\n }\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\nvar SVGInjector = function SVGInjector(elements, _a) {\n var _b = _a === void 0 ? {} : _a,\n _c = _b.afterAll,\n afterAll = _c === void 0 ? function () {\n return undefined;\n } : _c,\n _d = _b.afterEach,\n afterEach = _d === void 0 ? function () {\n return undefined;\n } : _d,\n _e = _b.beforeEach,\n beforeEach = _e === void 0 ? function () {\n return undefined;\n } : _e,\n _f = _b.cacheRequests,\n cacheRequests = _f === void 0 ? true : _f,\n _g = _b.evalScripts,\n evalScripts = _g === void 0 ? 'never' : _g,\n _h = _b.httpRequestWithCredentials,\n httpRequestWithCredentials = _h === void 0 ? false : _h,\n _j = _b.renumerateIRIElements,\n renumerateIRIElements = _j === void 0 ? true : _j;\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n for (var i = 0, j = elements.length; i < j; i++) {\n injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n if (elements && 'length' in elements && elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n } else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n } else {\n afterAll(0);\n }\n};\nexport { SVGInjector };","import _extends from '@babel/runtime/helpers/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport { SVGInjector } from '@tanem/svg-injector';\nimport * as React from 'react';\n\n// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nvar shallowDiffers = function shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (var _i in b) {\n if (a[_i] !== b[_i]) {\n return true;\n }\n }\n return false;\n};\nvar _excluded = [\"afterInjection\", \"beforeInjection\", \"evalScripts\", \"fallback\", \"httpRequestWithCredentials\", \"loading\", \"renumerateIRIElements\", \"src\", \"useRequestCache\", \"wrapper\"];\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar ReactSVG = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReactSVG, _React$Component);\n function ReactSVG() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.initialState = {\n hasError: false,\n isLoading: true\n };\n _this.state = _this.initialState;\n _this._isMounted = false;\n _this.reactWrapper = void 0;\n _this.nonReactWrapper = void 0;\n _this.refCallback = function (reactWrapper) {\n _this.reactWrapper = reactWrapper;\n };\n return _this;\n }\n var _proto = ReactSVG.prototype;\n _proto.renderSVG = function renderSVG() {\n var _this2 = this;\n /* istanbul ignore else */\n if (this.reactWrapper instanceof Node) {\n var _this$props = this.props,\n beforeInjection = _this$props.beforeInjection,\n evalScripts = _this$props.evalScripts,\n httpRequestWithCredentials = _this$props.httpRequestWithCredentials,\n renumerateIRIElements = _this$props.renumerateIRIElements,\n src = _this$props.src,\n useRequestCache = _this$props.useRequestCache;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n var afterInjection = this.props.afterInjection;\n var wrapper = this.props.wrapper;\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n var nonReactWrapper;\n var nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n } else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n var afterEach = function afterEach(error, svg) {\n if (error) {\n _this2.removeSVG();\n if (!_this2._isMounted) {\n afterInjection(error);\n return;\n }\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (_this2._isMounted) {\n _this2.setState(function () {\n return {\n hasError: !!error,\n isLoading: false\n };\n }, function () {\n afterInjection(error, svg);\n });\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach: afterEach,\n beforeEach: beforeInjection,\n cacheRequests: useRequestCache,\n evalScripts: evalScripts,\n httpRequestWithCredentials: httpRequestWithCredentials,\n renumerateIRIElements: renumerateIRIElements\n });\n }\n };\n _proto.removeSVG = function removeSVG() {\n var _this$nonReactWrapper;\n if ((_this$nonReactWrapper = this.nonReactWrapper) != null && _this$nonReactWrapper.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this3 = this;\n if (shallowDiffers(prevProps, this.props)) {\n this.setState(function () {\n return _this3.initialState;\n }, function () {\n _this3.removeSVG();\n _this3.renderSVG();\n });\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n };\n _proto.render = function render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n var _this$props2 = this.props;\n _this$props2.afterInjection;\n _this$props2.beforeInjection;\n _this$props2.evalScripts;\n var Fallback = _this$props2.fallback;\n _this$props2.httpRequestWithCredentials;\n var Loading = _this$props2.loading;\n _this$props2.renumerateIRIElements;\n _this$props2.src;\n _this$props2.useRequestCache;\n var wrapper = _this$props2.wrapper,\n rest = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var Wrapper = wrapper;\n return /*#__PURE__*/React.createElement(Wrapper, _extends({}, rest, {\n ref: this.refCallback\n }, wrapper === 'svg' ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace\n } : {}), this.state.isLoading && Loading && /*#__PURE__*/React.createElement(Loading, null), this.state.hasError && Fallback && /*#__PURE__*/React.createElement(Fallback, null));\n };\n return ReactSVG;\n}(React.Component);\nReactSVG.defaultProps = {\n afterInjection: function afterInjection() {\n return undefined;\n },\n beforeInjection: function beforeInjection() {\n return undefined;\n },\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n renumerateIRIElements: true,\n useRequestCache: true,\n wrapper: 'div'\n};\nexport { ReactSVG };","import React from \"react\"\nimport { observer } from \"mobx-react\"\nimport styled from \"styled-components\"\nimport { ReactSVG } from 'react-svg'\n\nimport clockmark from \"../clockmark.svg\"\n\n/*\nconst ImpressionableLink = styled.a`\ncolor: ${p => p.impressed ? \"#f7e8bf\" : \"#950cd6\"};\nbackground-color: ${p => p.impressed ? \"#950cd6\" : \"#f7e8bf\" };\n`\n\nconst YouAreHereLink = ({ link, here }) => (\n <>\n {link}\n \n \n)\n*/\n\nconst Blurb = observer(({ here }) => (\n \n \n \n \n\n \n produced by
\n assembled.app.\n
\n
\n))\n\nvar Column = styled.div`\ndisplay: flex;\nflex-direction: column;\nalign-items: center;\nwidth: auto;\ntext-align: center;\n`\n\nvar SizedImage = styled.div`\nsvg {\nwidth: 12rem;\nheight: 12rem;\n}\n`\n\nexport default Blurb\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar l = Symbol.for(\"react.element\"),\n n = Symbol.for(\"react.portal\"),\n p = Symbol.for(\"react.fragment\"),\n q = Symbol.for(\"react.strict_mode\"),\n r = Symbol.for(\"react.profiler\"),\n t = Symbol.for(\"react.provider\"),\n u = Symbol.for(\"react.context\"),\n v = Symbol.for(\"react.forward_ref\"),\n w = Symbol.for(\"react.suspense\"),\n x = Symbol.for(\"react.memo\"),\n y = Symbol.for(\"react.lazy\"),\n z = Symbol.iterator;\nfunction A(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = z && a[z] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\nvar B = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n C = Object.assign,\n D = {};\nfunction E(a, b, e) {\n this.props = a;\n this.context = b;\n this.refs = D;\n this.updater = e || B;\n}\nE.prototype.isReactComponent = {};\nE.prototype.setState = function (a, b) {\n if (\"object\" !== typeof a && \"function\" !== typeof a && null != a) throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");\n this.updater.enqueueSetState(this, a, b, \"setState\");\n};\nE.prototype.forceUpdate = function (a) {\n this.updater.enqueueForceUpdate(this, a, \"forceUpdate\");\n};\nfunction F() {}\nF.prototype = E.prototype;\nfunction G(a, b, e) {\n this.props = a;\n this.context = b;\n this.refs = D;\n this.updater = e || B;\n}\nvar H = G.prototype = new F();\nH.constructor = G;\nC(H, E.prototype);\nH.isPureReactComponent = !0;\nvar I = Array.isArray,\n J = Object.prototype.hasOwnProperty,\n K = {\n current: null\n },\n L = {\n key: !0,\n ref: !0,\n __self: !0,\n __source: !0\n };\nfunction M(a, b, e) {\n var d,\n c = {},\n k = null,\n h = null;\n if (null != b) for (d in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k = \"\" + b.key), b) J.call(b, d) && !L.hasOwnProperty(d) && (c[d] = b[d]);\n var g = arguments.length - 2;\n if (1 === g) c.children = e;else if (1 < g) {\n for (var f = Array(g), m = 0; m < g; m++) f[m] = arguments[m + 2];\n c.children = f;\n }\n if (a && a.defaultProps) for (d in g = a.defaultProps, g) void 0 === c[d] && (c[d] = g[d]);\n return {\n $$typeof: l,\n type: a,\n key: k,\n ref: h,\n props: c,\n _owner: K.current\n };\n}\nfunction N(a, b) {\n return {\n $$typeof: l,\n type: a.type,\n key: b,\n ref: a.ref,\n props: a.props,\n _owner: a._owner\n };\n}\nfunction O(a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === l;\n}\nfunction escape(a) {\n var b = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n return \"$\" + a.replace(/[=:]/g, function (a) {\n return b[a];\n });\n}\nvar P = /\\/+/g;\nfunction Q(a, b) {\n return \"object\" === typeof a && null !== a && null != a.key ? escape(\"\" + a.key) : b.toString(36);\n}\nfunction R(a, b, e, d, c) {\n var k = typeof a;\n if (\"undefined\" === k || \"boolean\" === k) a = null;\n var h = !1;\n if (null === a) h = !0;else switch (k) {\n case \"string\":\n case \"number\":\n h = !0;\n break;\n case \"object\":\n switch (a.$$typeof) {\n case l:\n case n:\n h = !0;\n }\n }\n if (h) return h = a, c = c(h), a = \"\" === d ? \".\" + Q(h, 0) : d, I(c) ? (e = \"\", null != a && (e = a.replace(P, \"$&/\") + \"/\"), R(c, b, e, \"\", function (a) {\n return a;\n })) : null != c && (O(c) && (c = N(c, e + (!c.key || h && h.key === c.key ? \"\" : (\"\" + c.key).replace(P, \"$&/\") + \"/\") + a)), b.push(c)), 1;\n h = 0;\n d = \"\" === d ? \".\" : d + \":\";\n if (I(a)) for (var g = 0; g < a.length; g++) {\n k = a[g];\n var f = d + Q(k, g);\n h += R(k, b, e, f, c);\n } else if (f = A(a), \"function\" === typeof f) for (a = f.call(a), g = 0; !(k = a.next()).done;) k = k.value, f = d + Q(k, g++), h += R(k, b, e, f, c);else if (\"object\" === k) throw b = String(a), Error(\"Objects are not valid as a React child (found: \" + (\"[object Object]\" === b ? \"object with keys {\" + Object.keys(a).join(\", \") + \"}\" : b) + \"). If you meant to render a collection of children, use an array instead.\");\n return h;\n}\nfunction S(a, b, e) {\n if (null == a) return a;\n var d = [],\n c = 0;\n R(a, d, \"\", \"\", function (a) {\n return b.call(e, a, c++);\n });\n return d;\n}\nfunction T(a) {\n if (-1 === a._status) {\n var b = a._result;\n b = b();\n b.then(function (b) {\n if (0 === a._status || -1 === a._status) a._status = 1, a._result = b;\n }, function (b) {\n if (0 === a._status || -1 === a._status) a._status = 2, a._result = b;\n });\n -1 === a._status && (a._status = 0, a._result = b);\n }\n if (1 === a._status) return a._result.default;\n throw a._result;\n}\nvar U = {\n current: null\n },\n V = {\n transition: null\n },\n W = {\n ReactCurrentDispatcher: U,\n ReactCurrentBatchConfig: V,\n ReactCurrentOwner: K\n };\nexports.Children = {\n map: S,\n forEach: function (a, b, e) {\n S(a, function () {\n b.apply(this, arguments);\n }, e);\n },\n count: function (a) {\n var b = 0;\n S(a, function () {\n b++;\n });\n return b;\n },\n toArray: function (a) {\n return S(a, function (a) {\n return a;\n }) || [];\n },\n only: function (a) {\n if (!O(a)) throw Error(\"React.Children.only expected to receive a single React element child.\");\n return a;\n }\n};\nexports.Component = E;\nexports.Fragment = p;\nexports.Profiler = r;\nexports.PureComponent = G;\nexports.StrictMode = q;\nexports.Suspense = w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W;\nexports.cloneElement = function (a, b, e) {\n if (null === a || void 0 === a) throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + a + \".\");\n var d = C({}, a.props),\n c = a.key,\n k = a.ref,\n h = a._owner;\n if (null != b) {\n void 0 !== b.ref && (k = b.ref, h = K.current);\n void 0 !== b.key && (c = \"\" + b.key);\n if (a.type && a.type.defaultProps) var g = a.type.defaultProps;\n for (f in b) J.call(b, f) && !L.hasOwnProperty(f) && (d[f] = void 0 === b[f] && void 0 !== g ? g[f] : b[f]);\n }\n var f = arguments.length - 2;\n if (1 === f) d.children = e;else if (1 < f) {\n g = Array(f);\n for (var m = 0; m < f; m++) g[m] = arguments[m + 2];\n d.children = g;\n }\n return {\n $$typeof: l,\n type: a.type,\n key: c,\n ref: k,\n props: d,\n _owner: h\n };\n};\nexports.createContext = function (a) {\n a = {\n $$typeof: u,\n _currentValue: a,\n _currentValue2: a,\n _threadCount: 0,\n Provider: null,\n Consumer: null,\n _defaultValue: null,\n _globalName: null\n };\n a.Provider = {\n $$typeof: t,\n _context: a\n };\n return a.Consumer = a;\n};\nexports.createElement = M;\nexports.createFactory = function (a) {\n var b = M.bind(null, a);\n b.type = a;\n return b;\n};\nexports.createRef = function () {\n return {\n current: null\n };\n};\nexports.forwardRef = function (a) {\n return {\n $$typeof: v,\n render: a\n };\n};\nexports.isValidElement = O;\nexports.lazy = function (a) {\n return {\n $$typeof: y,\n _payload: {\n _status: -1,\n _result: a\n },\n _init: T\n };\n};\nexports.memo = function (a, b) {\n return {\n $$typeof: x,\n type: a,\n compare: void 0 === b ? null : b\n };\n};\nexports.startTransition = function (a) {\n var b = V.transition;\n V.transition = {};\n try {\n a();\n } finally {\n V.transition = b;\n }\n};\nexports.unstable_act = function () {\n throw Error(\"act(...) is not supported in production builds of React.\");\n};\nexports.useCallback = function (a, b) {\n return U.current.useCallback(a, b);\n};\nexports.useContext = function (a) {\n return U.current.useContext(a);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (a) {\n return U.current.useDeferredValue(a);\n};\nexports.useEffect = function (a, b) {\n return U.current.useEffect(a, b);\n};\nexports.useId = function () {\n return U.current.useId();\n};\nexports.useImperativeHandle = function (a, b, e) {\n return U.current.useImperativeHandle(a, b, e);\n};\nexports.useInsertionEffect = function (a, b) {\n return U.current.useInsertionEffect(a, b);\n};\nexports.useLayoutEffect = function (a, b) {\n return U.current.useLayoutEffect(a, b);\n};\nexports.useMemo = function (a, b) {\n return U.current.useMemo(a, b);\n};\nexports.useReducer = function (a, b, e) {\n return U.current.useReducer(a, b, e);\n};\nexports.useRef = function (a) {\n return U.current.useRef(a);\n};\nexports.useState = function (a) {\n return U.current.useState(a);\n};\nexports.useSyncExternalStore = function (a, b, e) {\n return U.current.useSyncExternalStore(a, b, e);\n};\nexports.useTransition = function () {\n return U.current.useTransition();\n};\nexports.version = \"18.2.0\";","if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[mobx-react-lite] importing batchingForReactDom is no longer needed\");\n}","/**\n * @license React\n * react-dom.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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';\n\nvar aa = require(\"react\"),\n ca = require(\"scheduler\");\nfunction p(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n}\nvar da = new Set(),\n ea = {};\nfunction fa(a, b) {\n ha(a, b);\n ha(a + \"Capture\", b);\n}\nfunction ha(a, b) {\n ea[a] = b;\n for (a = 0; a < b.length; a++) da.add(b[a]);\n}\nvar ia = !(\"undefined\" === typeof window || \"undefined\" === typeof window.document || \"undefined\" === typeof window.document.createElement),\n ja = Object.prototype.hasOwnProperty,\n ka = /^[: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][: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\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,\n la = {},\n ma = {};\nfunction oa(a) {\n if (ja.call(ma, a)) return !0;\n if (ja.call(la, a)) return !1;\n if (ka.test(a)) return ma[a] = !0;\n la[a] = !0;\n return !1;\n}\nfunction pa(a, b, c, d) {\n if (null !== c && 0 === c.type) return !1;\n switch (typeof b) {\n case \"function\":\n case \"symbol\":\n return !0;\n case \"boolean\":\n if (d) return !1;\n if (null !== c) return !c.acceptsBooleans;\n a = a.toLowerCase().slice(0, 5);\n return \"data-\" !== a && \"aria-\" !== a;\n default:\n return !1;\n }\n}\nfunction qa(a, b, c, d) {\n if (null === b || \"undefined\" === typeof b || pa(a, b, c, d)) return !0;\n if (d) return !1;\n if (null !== c) switch (c.type) {\n case 3:\n return !b;\n case 4:\n return !1 === b;\n case 5:\n return isNaN(b);\n case 6:\n return isNaN(b) || 1 > b;\n }\n return !1;\n}\nfunction v(a, b, c, d, e, f, g) {\n this.acceptsBooleans = 2 === b || 3 === b || 4 === b;\n this.attributeName = d;\n this.attributeNamespace = e;\n this.mustUseProperty = c;\n this.propertyName = a;\n this.type = b;\n this.sanitizeURL = f;\n this.removeEmptyString = g;\n}\nvar z = {};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function (a) {\n z[a] = new v(a, 0, !1, a, null, !1, !1);\n});\n[[\"acceptCharset\", \"accept-charset\"], [\"className\", \"class\"], [\"htmlFor\", \"for\"], [\"httpEquiv\", \"http-equiv\"]].forEach(function (a) {\n var b = a[0];\n z[b] = new v(b, 1, !1, a[1], null, !1, !1);\n});\n[\"contentEditable\", \"draggable\", \"spellCheck\", \"value\"].forEach(function (a) {\n z[a] = new v(a, 2, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"autoReverse\", \"externalResourcesRequired\", \"focusable\", \"preserveAlpha\"].forEach(function (a) {\n z[a] = new v(a, 2, !1, a, null, !1, !1);\n});\n\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function (a) {\n z[a] = new v(a, 3, !1, a.toLowerCase(), null, !1, !1);\n});\n[\"checked\", \"multiple\", \"muted\", \"selected\"].forEach(function (a) {\n z[a] = new v(a, 3, !0, a, null, !1, !1);\n});\n[\"capture\", \"download\"].forEach(function (a) {\n z[a] = new v(a, 4, !1, a, null, !1, !1);\n});\n[\"cols\", \"rows\", \"size\", \"span\"].forEach(function (a) {\n z[a] = new v(a, 6, !1, a, null, !1, !1);\n});\n[\"rowSpan\", \"start\"].forEach(function (a) {\n z[a] = new v(a, 5, !1, a.toLowerCase(), null, !1, !1);\n});\nvar ra = /[\\-:]([a-z])/g;\nfunction sa(a) {\n return a[1].toUpperCase();\n}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function (a) {\n var b = a.replace(ra, sa);\n z[b] = new v(b, 1, !1, a, null, !1, !1);\n});\n\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function (a) {\n var b = a.replace(ra, sa);\n z[b] = new v(b, 1, !1, a, \"http://www.w3.org/1999/xlink\", !1, !1);\n});\n[\"xml:base\", \"xml:lang\", \"xml:space\"].forEach(function (a) {\n var b = a.replace(ra, sa);\n z[b] = new v(b, 1, !1, a, \"http://www.w3.org/XML/1998/namespace\", !1, !1);\n});\n[\"tabIndex\", \"crossOrigin\"].forEach(function (a) {\n z[a] = new v(a, 1, !1, a.toLowerCase(), null, !1, !1);\n});\nz.xlinkHref = new v(\"xlinkHref\", 1, !1, \"xlink:href\", \"http://www.w3.org/1999/xlink\", !0, !1);\n[\"src\", \"href\", \"action\", \"formAction\"].forEach(function (a) {\n z[a] = new v(a, 1, !1, a.toLowerCase(), null, !0, !0);\n});\nfunction ta(a, b, c, d) {\n var e = z.hasOwnProperty(b) ? z[b] : null;\n if (null !== e ? 0 !== e.type : d || !(2 < b.length) || \"o\" !== b[0] && \"O\" !== b[0] || \"n\" !== b[1] && \"N\" !== b[1]) qa(b, c, e, d) && (c = null), d || null === e ? oa(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, \"\" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? !1 : \"\" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && !0 === c ? \"\" : \"\" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c)));\n}\nvar ua = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n va = Symbol.for(\"react.element\"),\n wa = Symbol.for(\"react.portal\"),\n ya = Symbol.for(\"react.fragment\"),\n za = Symbol.for(\"react.strict_mode\"),\n Aa = Symbol.for(\"react.profiler\"),\n Ba = Symbol.for(\"react.provider\"),\n Ca = Symbol.for(\"react.context\"),\n Da = Symbol.for(\"react.forward_ref\"),\n Ea = Symbol.for(\"react.suspense\"),\n Fa = Symbol.for(\"react.suspense_list\"),\n Ga = Symbol.for(\"react.memo\"),\n Ha = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar Ia = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.cache\");\nSymbol.for(\"react.tracing_marker\");\nvar Ja = Symbol.iterator;\nfunction Ka(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = Ja && a[Ja] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\nvar A = Object.assign,\n La;\nfunction Ma(a) {\n if (void 0 === La) try {\n throw Error();\n } catch (c) {\n var b = c.stack.trim().match(/\\n( *(at )?)/);\n La = b && b[1] || \"\";\n }\n return \"\\n\" + La + a;\n}\nvar Na = !1;\nfunction Oa(a, b) {\n if (!a || Na) return \"\";\n Na = !0;\n var c = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n if (b) {\n if (b = function () {\n throw Error();\n }, Object.defineProperty(b.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n }), \"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(b, []);\n } catch (l) {\n var d = l;\n }\n Reflect.construct(a, [], b);\n } else {\n try {\n b.call();\n } catch (l) {\n d = l;\n }\n a.call(b.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (l) {\n d = l;\n }\n a();\n }\n } catch (l) {\n if (l && d && \"string\" === typeof l.stack) {\n for (var e = l.stack.split(\"\\n\"), f = d.stack.split(\"\\n\"), g = e.length - 1, h = f.length - 1; 1 <= g && 0 <= h && e[g] !== f[h];) h--;\n for (; 1 <= g && 0 <= h; g--, h--) if (e[g] !== f[h]) {\n if (1 !== g || 1 !== h) {\n do if (g--, h--, 0 > h || e[g] !== f[h]) {\n var k = \"\\n\" + e[g].replace(\" at new \", \" at \");\n a.displayName && k.includes(\"\") && (k = k.replace(\"\", a.displayName));\n return k;\n } while (1 <= g && 0 <= h);\n }\n break;\n }\n }\n } finally {\n Na = !1, Error.prepareStackTrace = c;\n }\n return (a = a ? a.displayName || a.name : \"\") ? Ma(a) : \"\";\n}\nfunction Pa(a) {\n switch (a.tag) {\n case 5:\n return Ma(a.type);\n case 16:\n return Ma(\"Lazy\");\n case 13:\n return Ma(\"Suspense\");\n case 19:\n return Ma(\"SuspenseList\");\n case 0:\n case 2:\n case 15:\n return a = Oa(a.type, !1), a;\n case 11:\n return a = Oa(a.type.render, !1), a;\n case 1:\n return a = Oa(a.type, !0), a;\n default:\n return \"\";\n }\n}\nfunction Qa(a) {\n if (null == a) return null;\n if (\"function\" === typeof a) return a.displayName || a.name || null;\n if (\"string\" === typeof a) return a;\n switch (a) {\n case ya:\n return \"Fragment\";\n case wa:\n return \"Portal\";\n case Aa:\n return \"Profiler\";\n case za:\n return \"StrictMode\";\n case Ea:\n return \"Suspense\";\n case Fa:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof a) switch (a.$$typeof) {\n case Ca:\n return (a.displayName || \"Context\") + \".Consumer\";\n case Ba:\n return (a._context.displayName || \"Context\") + \".Provider\";\n case Da:\n var b = a.render;\n a = a.displayName;\n a || (a = b.displayName || b.name || \"\", a = \"\" !== a ? \"ForwardRef(\" + a + \")\" : \"ForwardRef\");\n return a;\n case Ga:\n return b = a.displayName || null, null !== b ? b : Qa(a.type) || \"Memo\";\n case Ha:\n b = a._payload;\n a = a._init;\n try {\n return Qa(a(b));\n } catch (c) {}\n }\n return null;\n}\nfunction Ra(a) {\n var b = a.type;\n switch (a.tag) {\n case 24:\n return \"Cache\";\n case 9:\n return (b.displayName || \"Context\") + \".Consumer\";\n case 10:\n return (b._context.displayName || \"Context\") + \".Provider\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return a = b.render, a = a.displayName || a.name || \"\", b.displayName || (\"\" !== a ? \"ForwardRef(\" + a + \")\" : \"ForwardRef\");\n case 7:\n return \"Fragment\";\n case 5:\n return b;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return Qa(b);\n case 8:\n return b === za ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 17:\n case 2:\n case 14:\n case 15:\n if (\"function\" === typeof b) return b.displayName || b.name || null;\n if (\"string\" === typeof b) return b;\n }\n return null;\n}\nfunction Sa(a) {\n switch (typeof a) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return a;\n case \"object\":\n return a;\n default:\n return \"\";\n }\n}\nfunction Ta(a) {\n var b = a.type;\n return (a = a.nodeName) && \"input\" === a.toLowerCase() && (\"checkbox\" === b || \"radio\" === b);\n}\nfunction Ua(a) {\n var b = Ta(a) ? \"checked\" : \"value\",\n c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b),\n d = \"\" + a[b];\n if (!a.hasOwnProperty(b) && \"undefined\" !== typeof c && \"function\" === typeof c.get && \"function\" === typeof c.set) {\n var e = c.get,\n f = c.set;\n Object.defineProperty(a, b, {\n configurable: !0,\n get: function () {\n return e.call(this);\n },\n set: function (a) {\n d = \"\" + a;\n f.call(this, a);\n }\n });\n Object.defineProperty(a, b, {\n enumerable: c.enumerable\n });\n return {\n getValue: function () {\n return d;\n },\n setValue: function (a) {\n d = \"\" + a;\n },\n stopTracking: function () {\n a._valueTracker = null;\n delete a[b];\n }\n };\n }\n}\nfunction Va(a) {\n a._valueTracker || (a._valueTracker = Ua(a));\n}\nfunction Wa(a) {\n if (!a) return !1;\n var b = a._valueTracker;\n if (!b) return !0;\n var c = b.getValue();\n var d = \"\";\n a && (d = Ta(a) ? a.checked ? \"true\" : \"false\" : a.value);\n a = d;\n return a !== c ? (b.setValue(a), !0) : !1;\n}\nfunction Xa(a) {\n a = a || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof a) return null;\n try {\n return a.activeElement || a.body;\n } catch (b) {\n return a.body;\n }\n}\nfunction Ya(a, b) {\n var c = b.checked;\n return A({}, b, {\n defaultChecked: void 0,\n defaultValue: void 0,\n value: void 0,\n checked: null != c ? c : a._wrapperState.initialChecked\n });\n}\nfunction Za(a, b) {\n var c = null == b.defaultValue ? \"\" : b.defaultValue,\n d = null != b.checked ? b.checked : b.defaultChecked;\n c = Sa(null != b.value ? b.value : c);\n a._wrapperState = {\n initialChecked: d,\n initialValue: c,\n controlled: \"checkbox\" === b.type || \"radio\" === b.type ? null != b.checked : null != b.value\n };\n}\nfunction ab(a, b) {\n b = b.checked;\n null != b && ta(a, \"checked\", b, !1);\n}\nfunction bb(a, b) {\n ab(a, b);\n var c = Sa(b.value),\n d = b.type;\n if (null != c) {\n if (\"number\" === d) {\n if (0 === c && \"\" === a.value || a.value != c) a.value = \"\" + c;\n } else a.value !== \"\" + c && (a.value = \"\" + c);\n } else if (\"submit\" === d || \"reset\" === d) {\n a.removeAttribute(\"value\");\n return;\n }\n b.hasOwnProperty(\"value\") ? cb(a, b.type, c) : b.hasOwnProperty(\"defaultValue\") && cb(a, b.type, Sa(b.defaultValue));\n null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);\n}\nfunction db(a, b, c) {\n if (b.hasOwnProperty(\"value\") || b.hasOwnProperty(\"defaultValue\")) {\n var d = b.type;\n if (!(\"submit\" !== d && \"reset\" !== d || void 0 !== b.value && null !== b.value)) return;\n b = \"\" + a._wrapperState.initialValue;\n c || b === a.value || (a.value = b);\n a.defaultValue = b;\n }\n c = a.name;\n \"\" !== c && (a.name = \"\");\n a.defaultChecked = !!a._wrapperState.initialChecked;\n \"\" !== c && (a.name = c);\n}\nfunction cb(a, b, c) {\n if (\"number\" !== b || Xa(a.ownerDocument) !== a) null == c ? a.defaultValue = \"\" + a._wrapperState.initialValue : a.defaultValue !== \"\" + c && (a.defaultValue = \"\" + c);\n}\nvar eb = Array.isArray;\nfunction fb(a, b, c, d) {\n a = a.options;\n if (b) {\n b = {};\n for (var e = 0; e < c.length; e++) b[\"$\" + c[e]] = !0;\n for (c = 0; c < a.length; c++) e = b.hasOwnProperty(\"$\" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);\n } else {\n c = \"\" + Sa(c);\n b = null;\n for (e = 0; e < a.length; e++) {\n if (a[e].value === c) {\n a[e].selected = !0;\n d && (a[e].defaultSelected = !0);\n return;\n }\n null !== b || a[e].disabled || (b = a[e]);\n }\n null !== b && (b.selected = !0);\n }\n}\nfunction gb(a, b) {\n if (null != b.dangerouslySetInnerHTML) throw Error(p(91));\n return A({}, b, {\n value: void 0,\n defaultValue: void 0,\n children: \"\" + a._wrapperState.initialValue\n });\n}\nfunction hb(a, b) {\n var c = b.value;\n if (null == c) {\n c = b.children;\n b = b.defaultValue;\n if (null != c) {\n if (null != b) throw Error(p(92));\n if (eb(c)) {\n if (1 < c.length) throw Error(p(93));\n c = c[0];\n }\n b = c;\n }\n null == b && (b = \"\");\n c = b;\n }\n a._wrapperState = {\n initialValue: Sa(c)\n };\n}\nfunction ib(a, b) {\n var c = Sa(b.value),\n d = Sa(b.defaultValue);\n null != c && (c = \"\" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));\n null != d && (a.defaultValue = \"\" + d);\n}\nfunction jb(a) {\n var b = a.textContent;\n b === a._wrapperState.initialValue && \"\" !== b && null !== b && (a.value = b);\n}\nfunction kb(a) {\n switch (a) {\n case \"svg\":\n return \"http://www.w3.org/2000/svg\";\n case \"math\":\n return \"http://www.w3.org/1998/Math/MathML\";\n default:\n return \"http://www.w3.org/1999/xhtml\";\n }\n}\nfunction lb(a, b) {\n return null == a || \"http://www.w3.org/1999/xhtml\" === a ? kb(b) : \"http://www.w3.org/2000/svg\" === a && \"foreignObject\" === b ? \"http://www.w3.org/1999/xhtml\" : a;\n}\nvar mb,\n nb = function (a) {\n return \"undefined\" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function (b, c, d, e) {\n MSApp.execUnsafeLocalFunction(function () {\n return a(b, c, d, e);\n });\n } : a;\n }(function (a, b) {\n if (\"http://www.w3.org/2000/svg\" !== a.namespaceURI || \"innerHTML\" in a) a.innerHTML = b;else {\n mb = mb || document.createElement(\"div\");\n mb.innerHTML = \"\" + b.valueOf().toString() + \"\";\n for (b = mb.firstChild; a.firstChild;) a.removeChild(a.firstChild);\n for (; b.firstChild;) a.appendChild(b.firstChild);\n }\n });\nfunction ob(a, b) {\n if (b) {\n var c = a.firstChild;\n if (c && c === a.lastChild && 3 === c.nodeType) {\n c.nodeValue = b;\n return;\n }\n }\n a.textContent = b;\n}\nvar pb = {\n animationIterationCount: !0,\n aspectRatio: !0,\n borderImageOutset: !0,\n borderImageSlice: !0,\n borderImageWidth: !0,\n boxFlex: !0,\n boxFlexGroup: !0,\n boxOrdinalGroup: !0,\n columnCount: !0,\n columns: !0,\n flex: !0,\n flexGrow: !0,\n flexPositive: !0,\n flexShrink: !0,\n flexNegative: !0,\n flexOrder: !0,\n gridArea: !0,\n gridRow: !0,\n gridRowEnd: !0,\n gridRowSpan: !0,\n gridRowStart: !0,\n gridColumn: !0,\n gridColumnEnd: !0,\n gridColumnSpan: !0,\n gridColumnStart: !0,\n fontWeight: !0,\n lineClamp: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n tabSize: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0,\n fillOpacity: !0,\n floodOpacity: !0,\n stopOpacity: !0,\n strokeDasharray: !0,\n strokeDashoffset: !0,\n strokeMiterlimit: !0,\n strokeOpacity: !0,\n strokeWidth: !0\n },\n qb = [\"Webkit\", \"ms\", \"Moz\", \"O\"];\nObject.keys(pb).forEach(function (a) {\n qb.forEach(function (b) {\n b = b + a.charAt(0).toUpperCase() + a.substring(1);\n pb[b] = pb[a];\n });\n});\nfunction rb(a, b, c) {\n return null == b || \"boolean\" === typeof b || \"\" === b ? \"\" : c || \"number\" !== typeof b || 0 === b || pb.hasOwnProperty(a) && pb[a] ? (\"\" + b).trim() : b + \"px\";\n}\nfunction sb(a, b) {\n a = a.style;\n for (var c in b) if (b.hasOwnProperty(c)) {\n var d = 0 === c.indexOf(\"--\"),\n e = rb(c, b[c], d);\n \"float\" === c && (c = \"cssFloat\");\n d ? a.setProperty(c, e) : a[c] = e;\n }\n}\nvar tb = A({\n menuitem: !0\n}, {\n area: !0,\n base: !0,\n br: !0,\n col: !0,\n embed: !0,\n hr: !0,\n img: !0,\n input: !0,\n keygen: !0,\n link: !0,\n meta: !0,\n param: !0,\n source: !0,\n track: !0,\n wbr: !0\n});\nfunction ub(a, b) {\n if (b) {\n if (tb[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(p(137, a));\n if (null != b.dangerouslySetInnerHTML) {\n if (null != b.children) throw Error(p(60));\n if (\"object\" !== typeof b.dangerouslySetInnerHTML || !(\"__html\" in b.dangerouslySetInnerHTML)) throw Error(p(61));\n }\n if (null != b.style && \"object\" !== typeof b.style) throw Error(p(62));\n }\n}\nfunction vb(a, b) {\n if (-1 === a.indexOf(\"-\")) return \"string\" === typeof b.is;\n switch (a) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar wb = null;\nfunction xb(a) {\n a = a.target || a.srcElement || window;\n a.correspondingUseElement && (a = a.correspondingUseElement);\n return 3 === a.nodeType ? a.parentNode : a;\n}\nvar yb = null,\n zb = null,\n Ab = null;\nfunction Bb(a) {\n if (a = Cb(a)) {\n if (\"function\" !== typeof yb) throw Error(p(280));\n var b = a.stateNode;\n b && (b = Db(b), yb(a.stateNode, a.type, b));\n }\n}\nfunction Eb(a) {\n zb ? Ab ? Ab.push(a) : Ab = [a] : zb = a;\n}\nfunction Fb() {\n if (zb) {\n var a = zb,\n b = Ab;\n Ab = zb = null;\n Bb(a);\n if (b) for (a = 0; a < b.length; a++) Bb(b[a]);\n }\n}\nfunction Gb(a, b) {\n return a(b);\n}\nfunction Hb() {}\nvar Ib = !1;\nfunction Jb(a, b, c) {\n if (Ib) return a(b, c);\n Ib = !0;\n try {\n return Gb(a, b, c);\n } finally {\n if (Ib = !1, null !== zb || null !== Ab) Hb(), Fb();\n }\n}\nfunction Kb(a, b) {\n var c = a.stateNode;\n if (null === c) return null;\n var d = Db(c);\n if (null === d) return null;\n c = d[b];\n a: switch (b) {\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 case \"onMouseEnter\":\n (d = !d.disabled) || (a = a.type, d = !(\"button\" === a || \"input\" === a || \"select\" === a || \"textarea\" === a));\n a = !d;\n break a;\n default:\n a = !1;\n }\n if (a) return null;\n if (c && \"function\" !== typeof c) throw Error(p(231, b, typeof c));\n return c;\n}\nvar Lb = !1;\nif (ia) try {\n var Mb = {};\n Object.defineProperty(Mb, \"passive\", {\n get: function () {\n Lb = !0;\n }\n });\n window.addEventListener(\"test\", Mb, Mb);\n window.removeEventListener(\"test\", Mb, Mb);\n} catch (a) {\n Lb = !1;\n}\nfunction Nb(a, b, c, d, e, f, g, h, k) {\n var l = Array.prototype.slice.call(arguments, 3);\n try {\n b.apply(c, l);\n } catch (m) {\n this.onError(m);\n }\n}\nvar Ob = !1,\n Pb = null,\n Qb = !1,\n Rb = null,\n Sb = {\n onError: function (a) {\n Ob = !0;\n Pb = a;\n }\n };\nfunction Tb(a, b, c, d, e, f, g, h, k) {\n Ob = !1;\n Pb = null;\n Nb.apply(Sb, arguments);\n}\nfunction Ub(a, b, c, d, e, f, g, h, k) {\n Tb.apply(this, arguments);\n if (Ob) {\n if (Ob) {\n var l = Pb;\n Ob = !1;\n Pb = null;\n } else throw Error(p(198));\n Qb || (Qb = !0, Rb = l);\n }\n}\nfunction Vb(a) {\n var b = a,\n c = a;\n if (a.alternate) for (; b.return;) b = b.return;else {\n a = b;\n do b = a, 0 !== (b.flags & 4098) && (c = b.return), a = b.return; while (a);\n }\n return 3 === b.tag ? c : null;\n}\nfunction Wb(a) {\n if (13 === a.tag) {\n var b = a.memoizedState;\n null === b && (a = a.alternate, null !== a && (b = a.memoizedState));\n if (null !== b) return b.dehydrated;\n }\n return null;\n}\nfunction Xb(a) {\n if (Vb(a) !== a) throw Error(p(188));\n}\nfunction Yb(a) {\n var b = a.alternate;\n if (!b) {\n b = Vb(a);\n if (null === b) throw Error(p(188));\n return b !== a ? null : a;\n }\n for (var c = a, d = b;;) {\n var e = c.return;\n if (null === e) break;\n var f = e.alternate;\n if (null === f) {\n d = e.return;\n if (null !== d) {\n c = d;\n continue;\n }\n break;\n }\n if (e.child === f.child) {\n for (f = e.child; f;) {\n if (f === c) return Xb(e), a;\n if (f === d) return Xb(e), b;\n f = f.sibling;\n }\n throw Error(p(188));\n }\n if (c.return !== d.return) c = e, d = f;else {\n for (var g = !1, h = e.child; h;) {\n if (h === c) {\n g = !0;\n c = e;\n d = f;\n break;\n }\n if (h === d) {\n g = !0;\n d = e;\n c = f;\n break;\n }\n h = h.sibling;\n }\n if (!g) {\n for (h = f.child; h;) {\n if (h === c) {\n g = !0;\n c = f;\n d = e;\n break;\n }\n if (h === d) {\n g = !0;\n d = f;\n c = e;\n break;\n }\n h = h.sibling;\n }\n if (!g) throw Error(p(189));\n }\n }\n if (c.alternate !== d) throw Error(p(190));\n }\n if (3 !== c.tag) throw Error(p(188));\n return c.stateNode.current === c ? a : b;\n}\nfunction Zb(a) {\n a = Yb(a);\n return null !== a ? $b(a) : null;\n}\nfunction $b(a) {\n if (5 === a.tag || 6 === a.tag) return a;\n for (a = a.child; null !== a;) {\n var b = $b(a);\n if (null !== b) return b;\n a = a.sibling;\n }\n return null;\n}\nvar ac = ca.unstable_scheduleCallback,\n bc = ca.unstable_cancelCallback,\n cc = ca.unstable_shouldYield,\n dc = ca.unstable_requestPaint,\n B = ca.unstable_now,\n ec = ca.unstable_getCurrentPriorityLevel,\n fc = ca.unstable_ImmediatePriority,\n gc = ca.unstable_UserBlockingPriority,\n hc = ca.unstable_NormalPriority,\n ic = ca.unstable_LowPriority,\n jc = ca.unstable_IdlePriority,\n kc = null,\n lc = null;\nfunction mc(a) {\n if (lc && \"function\" === typeof lc.onCommitFiberRoot) try {\n lc.onCommitFiberRoot(kc, a, void 0, 128 === (a.current.flags & 128));\n } catch (b) {}\n}\nvar oc = Math.clz32 ? Math.clz32 : nc,\n pc = Math.log,\n qc = Math.LN2;\nfunction nc(a) {\n a >>>= 0;\n return 0 === a ? 32 : 31 - (pc(a) / qc | 0) | 0;\n}\nvar rc = 64,\n sc = 4194304;\nfunction tc(a) {\n switch (a & -a) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return a & 4194240;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return a & 130023424;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 1073741824;\n default:\n return a;\n }\n}\nfunction uc(a, b) {\n var c = a.pendingLanes;\n if (0 === c) return 0;\n var d = 0,\n e = a.suspendedLanes,\n f = a.pingedLanes,\n g = c & 268435455;\n if (0 !== g) {\n var h = g & ~e;\n 0 !== h ? d = tc(h) : (f &= g, 0 !== f && (d = tc(f)));\n } else g = c & ~e, 0 !== g ? d = tc(g) : 0 !== f && (d = tc(f));\n if (0 === d) return 0;\n if (0 !== b && b !== d && 0 === (b & e) && (e = d & -d, f = b & -b, e >= f || 16 === e && 0 !== (f & 4194240))) return b;\n 0 !== (d & 4) && (d |= c & 16);\n b = a.entangledLanes;\n if (0 !== b) for (a = a.entanglements, b &= d; 0 < b;) c = 31 - oc(b), e = 1 << c, d |= a[c], b &= ~e;\n return d;\n}\nfunction vc(a, b) {\n switch (a) {\n case 1:\n case 2:\n case 4:\n return b + 250;\n case 8:\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return b + 5E3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n return -1;\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction wc(a, b) {\n for (var c = a.suspendedLanes, d = a.pingedLanes, e = a.expirationTimes, f = a.pendingLanes; 0 < f;) {\n var g = 31 - oc(f),\n h = 1 << g,\n k = e[g];\n if (-1 === k) {\n if (0 === (h & c) || 0 !== (h & d)) e[g] = vc(h, b);\n } else k <= b && (a.expiredLanes |= h);\n f &= ~h;\n }\n}\nfunction xc(a) {\n a = a.pendingLanes & -1073741825;\n return 0 !== a ? a : a & 1073741824 ? 1073741824 : 0;\n}\nfunction yc() {\n var a = rc;\n rc <<= 1;\n 0 === (rc & 4194240) && (rc = 64);\n return a;\n}\nfunction zc(a) {\n for (var b = [], c = 0; 31 > c; c++) b.push(a);\n return b;\n}\nfunction Ac(a, b, c) {\n a.pendingLanes |= b;\n 536870912 !== b && (a.suspendedLanes = 0, a.pingedLanes = 0);\n a = a.eventTimes;\n b = 31 - oc(b);\n a[b] = c;\n}\nfunction Bc(a, b) {\n var c = a.pendingLanes & ~b;\n a.pendingLanes = b;\n a.suspendedLanes = 0;\n a.pingedLanes = 0;\n a.expiredLanes &= b;\n a.mutableReadLanes &= b;\n a.entangledLanes &= b;\n b = a.entanglements;\n var d = a.eventTimes;\n for (a = a.expirationTimes; 0 < c;) {\n var e = 31 - oc(c),\n f = 1 << e;\n b[e] = 0;\n d[e] = -1;\n a[e] = -1;\n c &= ~f;\n }\n}\nfunction Cc(a, b) {\n var c = a.entangledLanes |= b;\n for (a = a.entanglements; c;) {\n var d = 31 - oc(c),\n e = 1 << d;\n e & b | a[d] & b && (a[d] |= b);\n c &= ~e;\n }\n}\nvar C = 0;\nfunction Dc(a) {\n a &= -a;\n return 1 < a ? 4 < a ? 0 !== (a & 268435455) ? 16 : 536870912 : 4 : 1;\n}\nvar Ec,\n Fc,\n Gc,\n Hc,\n Ic,\n Jc = !1,\n Kc = [],\n Lc = null,\n Mc = null,\n Nc = null,\n Oc = new Map(),\n Pc = new Map(),\n Qc = [],\n Rc = \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a, b) {\n switch (a) {\n case \"focusin\":\n case \"focusout\":\n Lc = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n Mc = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n Nc = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n Oc.delete(b.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n Pc.delete(b.pointerId);\n }\n}\nfunction Tc(a, b, c, d, e, f) {\n if (null === a || a.nativeEvent !== f) return a = {\n blockedOn: b,\n domEventName: c,\n eventSystemFlags: d,\n nativeEvent: f,\n targetContainers: [e]\n }, null !== b && (b = Cb(b), null !== b && Fc(b)), a;\n a.eventSystemFlags |= d;\n b = a.targetContainers;\n null !== e && -1 === b.indexOf(e) && b.push(e);\n return a;\n}\nfunction Uc(a, b, c, d, e) {\n switch (b) {\n case \"focusin\":\n return Lc = Tc(Lc, a, b, c, d, e), !0;\n case \"dragenter\":\n return Mc = Tc(Mc, a, b, c, d, e), !0;\n case \"mouseover\":\n return Nc = Tc(Nc, a, b, c, d, e), !0;\n case \"pointerover\":\n var f = e.pointerId;\n Oc.set(f, Tc(Oc.get(f) || null, a, b, c, d, e));\n return !0;\n case \"gotpointercapture\":\n return f = e.pointerId, Pc.set(f, Tc(Pc.get(f) || null, a, b, c, d, e)), !0;\n }\n return !1;\n}\nfunction Vc(a) {\n var b = Wc(a.target);\n if (null !== b) {\n var c = Vb(b);\n if (null !== c) if (b = c.tag, 13 === b) {\n if (b = Wb(c), null !== b) {\n a.blockedOn = b;\n Ic(a.priority, function () {\n Gc(c);\n });\n return;\n }\n } else if (3 === b && c.stateNode.current.memoizedState.isDehydrated) {\n a.blockedOn = 3 === c.tag ? c.stateNode.containerInfo : null;\n return;\n }\n }\n a.blockedOn = null;\n}\nfunction Xc(a) {\n if (null !== a.blockedOn) return !1;\n for (var b = a.targetContainers; 0 < b.length;) {\n var c = Yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);\n if (null === c) {\n c = a.nativeEvent;\n var d = new c.constructor(c.type, c);\n wb = d;\n c.target.dispatchEvent(d);\n wb = null;\n } else return b = Cb(c), null !== b && Fc(b), a.blockedOn = c, !1;\n b.shift();\n }\n return !0;\n}\nfunction Zc(a, b, c) {\n Xc(a) && c.delete(b);\n}\nfunction $c() {\n Jc = !1;\n null !== Lc && Xc(Lc) && (Lc = null);\n null !== Mc && Xc(Mc) && (Mc = null);\n null !== Nc && Xc(Nc) && (Nc = null);\n Oc.forEach(Zc);\n Pc.forEach(Zc);\n}\nfunction ad(a, b) {\n a.blockedOn === b && (a.blockedOn = null, Jc || (Jc = !0, ca.unstable_scheduleCallback(ca.unstable_NormalPriority, $c)));\n}\nfunction bd(a) {\n function b(b) {\n return ad(b, a);\n }\n if (0 < Kc.length) {\n ad(Kc[0], a);\n for (var c = 1; c < Kc.length; c++) {\n var d = Kc[c];\n d.blockedOn === a && (d.blockedOn = null);\n }\n }\n null !== Lc && ad(Lc, a);\n null !== Mc && ad(Mc, a);\n null !== Nc && ad(Nc, a);\n Oc.forEach(b);\n Pc.forEach(b);\n for (c = 0; c < Qc.length; c++) d = Qc[c], d.blockedOn === a && (d.blockedOn = null);\n for (; 0 < Qc.length && (c = Qc[0], null === c.blockedOn);) Vc(c), null === c.blockedOn && Qc.shift();\n}\nvar cd = ua.ReactCurrentBatchConfig,\n dd = !0;\nfunction ed(a, b, c, d) {\n var e = C,\n f = cd.transition;\n cd.transition = null;\n try {\n C = 1, fd(a, b, c, d);\n } finally {\n C = e, cd.transition = f;\n }\n}\nfunction gd(a, b, c, d) {\n var e = C,\n f = cd.transition;\n cd.transition = null;\n try {\n C = 4, fd(a, b, c, d);\n } finally {\n C = e, cd.transition = f;\n }\n}\nfunction fd(a, b, c, d) {\n if (dd) {\n var e = Yc(a, b, c, d);\n if (null === e) hd(a, b, d, id, c), Sc(a, d);else if (Uc(e, a, b, c, d)) d.stopPropagation();else if (Sc(a, d), b & 4 && -1 < Rc.indexOf(a)) {\n for (; null !== e;) {\n var f = Cb(e);\n null !== f && Ec(f);\n f = Yc(a, b, c, d);\n null === f && hd(a, b, d, id, c);\n if (f === e) break;\n e = f;\n }\n null !== e && d.stopPropagation();\n } else hd(a, b, d, null, c);\n }\n}\nvar id = null;\nfunction Yc(a, b, c, d) {\n id = null;\n a = xb(d);\n a = Wc(a);\n if (null !== a) if (b = Vb(a), null === b) a = null;else if (c = b.tag, 13 === c) {\n a = Wb(b);\n if (null !== a) return a;\n a = null;\n } else if (3 === c) {\n if (b.stateNode.current.memoizedState.isDehydrated) return 3 === b.tag ? b.stateNode.containerInfo : null;\n a = null;\n } else b !== a && (a = null);\n id = a;\n return null;\n}\nfunction jd(a) {\n switch (a) {\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 1;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"toggle\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 4;\n case \"message\":\n switch (ec()) {\n case fc:\n return 1;\n case gc:\n return 4;\n case hc:\n case ic:\n return 16;\n case jc:\n return 536870912;\n default:\n return 16;\n }\n default:\n return 16;\n }\n}\nvar kd = null,\n ld = null,\n md = null;\nfunction nd() {\n if (md) return md;\n var a,\n b = ld,\n c = b.length,\n d,\n e = \"value\" in kd ? kd.value : kd.textContent,\n f = e.length;\n for (a = 0; a < c && b[a] === e[a]; a++);\n var g = c - a;\n for (d = 1; d <= g && b[c - d] === e[f - d]; d++);\n return md = e.slice(a, 1 < d ? 1 - d : void 0);\n}\nfunction od(a) {\n var b = a.keyCode;\n \"charCode\" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;\n 10 === a && (a = 13);\n return 32 <= a || 13 === a ? a : 0;\n}\nfunction pd() {\n return !0;\n}\nfunction qd() {\n return !1;\n}\nfunction rd(a) {\n function b(b, d, e, f, g) {\n this._reactName = b;\n this._targetInst = e;\n this.type = d;\n this.nativeEvent = f;\n this.target = g;\n this.currentTarget = null;\n for (var c in a) a.hasOwnProperty(c) && (b = a[c], this[c] = b ? b(f) : f[c]);\n this.isDefaultPrevented = (null != f.defaultPrevented ? f.defaultPrevented : !1 === f.returnValue) ? pd : qd;\n this.isPropagationStopped = qd;\n return this;\n }\n A(b.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var a = this.nativeEvent;\n a && (a.preventDefault ? a.preventDefault() : \"unknown\" !== typeof a.returnValue && (a.returnValue = !1), this.isDefaultPrevented = pd);\n },\n stopPropagation: function () {\n var a = this.nativeEvent;\n a && (a.stopPropagation ? a.stopPropagation() : \"unknown\" !== typeof a.cancelBubble && (a.cancelBubble = !0), this.isPropagationStopped = pd);\n },\n persist: function () {},\n isPersistent: pd\n });\n return b;\n}\nvar sd = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (a) {\n return a.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n td = rd(sd),\n ud = A({}, sd, {\n view: 0,\n detail: 0\n }),\n vd = rd(ud),\n wd,\n xd,\n yd,\n Ad = A({}, ud, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: zd,\n button: 0,\n buttons: 0,\n relatedTarget: function (a) {\n return void 0 === a.relatedTarget ? a.fromElement === a.srcElement ? a.toElement : a.fromElement : a.relatedTarget;\n },\n movementX: function (a) {\n if (\"movementX\" in a) return a.movementX;\n a !== yd && (yd && \"mousemove\" === a.type ? (wd = a.screenX - yd.screenX, xd = a.screenY - yd.screenY) : xd = wd = 0, yd = a);\n return wd;\n },\n movementY: function (a) {\n return \"movementY\" in a ? a.movementY : xd;\n }\n }),\n Bd = rd(Ad),\n Cd = A({}, Ad, {\n dataTransfer: 0\n }),\n Dd = rd(Cd),\n Ed = A({}, ud, {\n relatedTarget: 0\n }),\n Fd = rd(Ed),\n Gd = A({}, sd, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n Hd = rd(Gd),\n Id = A({}, sd, {\n clipboardData: function (a) {\n return \"clipboardData\" in a ? a.clipboardData : window.clipboardData;\n }\n }),\n Jd = rd(Id),\n Kd = A({}, sd, {\n data: 0\n }),\n Ld = rd(Kd),\n Md = {\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 Nd = {\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\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n Od = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction Pd(a) {\n var b = this.nativeEvent;\n return b.getModifierState ? b.getModifierState(a) : (a = Od[a]) ? !!b[a] : !1;\n}\nfunction zd() {\n return Pd;\n}\nvar Qd = A({}, ud, {\n key: function (a) {\n if (a.key) {\n var b = Md[a.key] || a.key;\n if (\"Unidentified\" !== b) return b;\n }\n return \"keypress\" === a.type ? (a = od(a), 13 === a ? \"Enter\" : String.fromCharCode(a)) : \"keydown\" === a.type || \"keyup\" === a.type ? Nd[a.keyCode] || \"Unidentified\" : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: zd,\n charCode: function (a) {\n return \"keypress\" === a.type ? od(a) : 0;\n },\n keyCode: function (a) {\n return \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n },\n which: function (a) {\n return \"keypress\" === a.type ? od(a) : \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n }\n }),\n Rd = rd(Qd),\n Sd = A({}, Ad, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n Td = rd(Sd),\n Ud = A({}, ud, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: zd\n }),\n Vd = rd(Ud),\n Wd = A({}, sd, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n Xd = rd(Wd),\n Yd = A({}, Ad, {\n deltaX: function (a) {\n return \"deltaX\" in a ? a.deltaX : \"wheelDeltaX\" in a ? -a.wheelDeltaX : 0;\n },\n deltaY: function (a) {\n return \"deltaY\" in a ? a.deltaY : \"wheelDeltaY\" in a ? -a.wheelDeltaY : \"wheelDelta\" in a ? -a.wheelDelta : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n Zd = rd(Yd),\n $d = [9, 13, 27, 32],\n ae = ia && \"CompositionEvent\" in window,\n be = null;\nia && \"documentMode\" in document && (be = document.documentMode);\nvar ce = ia && \"TextEvent\" in window && !be,\n de = ia && (!ae || be && 8 < be && 11 >= be),\n ee = String.fromCharCode(32),\n fe = !1;\nfunction ge(a, b) {\n switch (a) {\n case \"keyup\":\n return -1 !== $d.indexOf(b.keyCode);\n case \"keydown\":\n return 229 !== b.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction he(a) {\n a = a.detail;\n return \"object\" === typeof a && \"data\" in a ? a.data : null;\n}\nvar ie = !1;\nfunction je(a, b) {\n switch (a) {\n case \"compositionend\":\n return he(b);\n case \"keypress\":\n if (32 !== b.which) return null;\n fe = !0;\n return ee;\n case \"textInput\":\n return a = b.data, a === ee && fe ? null : a;\n default:\n return null;\n }\n}\nfunction ke(a, b) {\n if (ie) return \"compositionend\" === a || !ae && ge(a, b) ? (a = nd(), md = ld = kd = null, ie = !1, a) : null;\n switch (a) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {\n if (b.char && 1 < b.char.length) return b.char;\n if (b.which) return String.fromCharCode(b.which);\n }\n return null;\n case \"compositionend\":\n return de && \"ko\" !== b.locale ? null : b.data;\n default:\n return null;\n }\n}\nvar le = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction me(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return \"input\" === b ? !!le[a.type] : \"textarea\" === b ? !0 : !1;\n}\nfunction ne(a, b, c, d) {\n Eb(d);\n b = oe(b, \"onChange\");\n 0 < b.length && (c = new td(\"onChange\", \"change\", null, c, d), a.push({\n event: c,\n listeners: b\n }));\n}\nvar pe = null,\n qe = null;\nfunction re(a) {\n se(a, 0);\n}\nfunction te(a) {\n var b = ue(a);\n if (Wa(b)) return a;\n}\nfunction ve(a, b) {\n if (\"change\" === a) return b;\n}\nvar we = !1;\nif (ia) {\n var xe;\n if (ia) {\n var ye = (\"oninput\" in document);\n if (!ye) {\n var ze = document.createElement(\"div\");\n ze.setAttribute(\"oninput\", \"return;\");\n ye = \"function\" === typeof ze.oninput;\n }\n xe = ye;\n } else xe = !1;\n we = xe && (!document.documentMode || 9 < document.documentMode);\n}\nfunction Ae() {\n pe && (pe.detachEvent(\"onpropertychange\", Be), qe = pe = null);\n}\nfunction Be(a) {\n if (\"value\" === a.propertyName && te(qe)) {\n var b = [];\n ne(b, qe, a, xb(a));\n Jb(re, b);\n }\n}\nfunction Ce(a, b, c) {\n \"focusin\" === a ? (Ae(), pe = b, qe = c, pe.attachEvent(\"onpropertychange\", Be)) : \"focusout\" === a && Ae();\n}\nfunction De(a) {\n if (\"selectionchange\" === a || \"keyup\" === a || \"keydown\" === a) return te(qe);\n}\nfunction Ee(a, b) {\n if (\"click\" === a) return te(b);\n}\nfunction Fe(a, b) {\n if (\"input\" === a || \"change\" === a) return te(b);\n}\nfunction Ge(a, b) {\n return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;\n}\nvar He = \"function\" === typeof Object.is ? Object.is : Ge;\nfunction Ie(a, b) {\n if (He(a, b)) return !0;\n if (\"object\" !== typeof a || null === a || \"object\" !== typeof b || null === b) return !1;\n var c = Object.keys(a),\n d = Object.keys(b);\n if (c.length !== d.length) return !1;\n for (d = 0; d < c.length; d++) {\n var e = c[d];\n if (!ja.call(b, e) || !He(a[e], b[e])) return !1;\n }\n return !0;\n}\nfunction Je(a) {\n for (; a && a.firstChild;) a = a.firstChild;\n return a;\n}\nfunction Ke(a, b) {\n var c = Je(a);\n a = 0;\n for (var d; c;) {\n if (3 === c.nodeType) {\n d = a + c.textContent.length;\n if (a <= b && d >= b) return {\n node: c,\n offset: b - a\n };\n a = d;\n }\n a: {\n for (; c;) {\n if (c.nextSibling) {\n c = c.nextSibling;\n break a;\n }\n c = c.parentNode;\n }\n c = void 0;\n }\n c = Je(c);\n }\n}\nfunction Le(a, b) {\n return a && b ? a === b ? !0 : a && 3 === a.nodeType ? !1 : b && 3 === b.nodeType ? Le(a, b.parentNode) : \"contains\" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;\n}\nfunction Me() {\n for (var a = window, b = Xa(); b instanceof a.HTMLIFrameElement;) {\n try {\n var c = \"string\" === typeof b.contentWindow.location.href;\n } catch (d) {\n c = !1;\n }\n if (c) a = b.contentWindow;else break;\n b = Xa(a.document);\n }\n return b;\n}\nfunction Ne(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return b && (\"input\" === b && (\"text\" === a.type || \"search\" === a.type || \"tel\" === a.type || \"url\" === a.type || \"password\" === a.type) || \"textarea\" === b || \"true\" === a.contentEditable);\n}\nfunction Oe(a) {\n var b = Me(),\n c = a.focusedElem,\n d = a.selectionRange;\n if (b !== c && c && c.ownerDocument && Le(c.ownerDocument.documentElement, c)) {\n if (null !== d && Ne(c)) if (b = d.start, a = d.end, void 0 === a && (a = b), \"selectionStart\" in c) c.selectionStart = b, c.selectionEnd = Math.min(a, c.value.length);else if (a = (b = c.ownerDocument || document) && b.defaultView || window, a.getSelection) {\n a = a.getSelection();\n var e = c.textContent.length,\n f = Math.min(d.start, e);\n d = void 0 === d.end ? f : Math.min(d.end, e);\n !a.extend && f > d && (e = d, d = f, f = e);\n e = Ke(c, f);\n var g = Ke(c, d);\n e && g && (1 !== a.rangeCount || a.anchorNode !== e.node || a.anchorOffset !== e.offset || a.focusNode !== g.node || a.focusOffset !== g.offset) && (b = b.createRange(), b.setStart(e.node, e.offset), a.removeAllRanges(), f > d ? (a.addRange(b), a.extend(g.node, g.offset)) : (b.setEnd(g.node, g.offset), a.addRange(b)));\n }\n b = [];\n for (a = c; a = a.parentNode;) 1 === a.nodeType && b.push({\n element: a,\n left: a.scrollLeft,\n top: a.scrollTop\n });\n \"function\" === typeof c.focus && c.focus();\n for (c = 0; c < b.length; c++) a = b[c], a.element.scrollLeft = a.left, a.element.scrollTop = a.top;\n }\n}\nvar Pe = ia && \"documentMode\" in document && 11 >= document.documentMode,\n Qe = null,\n Re = null,\n Se = null,\n Te = !1;\nfunction Ue(a, b, c) {\n var d = c.window === c ? c.document : 9 === c.nodeType ? c : c.ownerDocument;\n Te || null == Qe || Qe !== Xa(d) || (d = Qe, \"selectionStart\" in d && Ne(d) ? d = {\n start: d.selectionStart,\n end: d.selectionEnd\n } : (d = (d.ownerDocument && d.ownerDocument.defaultView || window).getSelection(), d = {\n anchorNode: d.anchorNode,\n anchorOffset: d.anchorOffset,\n focusNode: d.focusNode,\n focusOffset: d.focusOffset\n }), Se && Ie(Se, d) || (Se = d, d = oe(Re, \"onSelect\"), 0 < d.length && (b = new td(\"onSelect\", \"select\", null, b, c), a.push({\n event: b,\n listeners: d\n }), b.target = Qe)));\n}\nfunction Ve(a, b) {\n var c = {};\n c[a.toLowerCase()] = b.toLowerCase();\n c[\"Webkit\" + a] = \"webkit\" + b;\n c[\"Moz\" + a] = \"moz\" + b;\n return c;\n}\nvar We = {\n animationend: Ve(\"Animation\", \"AnimationEnd\"),\n animationiteration: Ve(\"Animation\", \"AnimationIteration\"),\n animationstart: Ve(\"Animation\", \"AnimationStart\"),\n transitionend: Ve(\"Transition\", \"TransitionEnd\")\n },\n Xe = {},\n Ye = {};\nia && (Ye = document.createElement(\"div\").style, \"AnimationEvent\" in window || (delete We.animationend.animation, delete We.animationiteration.animation, delete We.animationstart.animation), \"TransitionEvent\" in window || delete We.transitionend.transition);\nfunction Ze(a) {\n if (Xe[a]) return Xe[a];\n if (!We[a]) return a;\n var b = We[a],\n c;\n for (c in b) if (b.hasOwnProperty(c) && c in Ye) return Xe[a] = b[c];\n return a;\n}\nvar $e = Ze(\"animationend\"),\n af = Ze(\"animationiteration\"),\n bf = Ze(\"animationstart\"),\n cf = Ze(\"transitionend\"),\n df = new Map(),\n ef = \"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a, b) {\n df.set(a, b);\n fa(b, [a]);\n}\nfor (var gf = 0; gf < ef.length; gf++) {\n var hf = ef[gf],\n jf = hf.toLowerCase(),\n kf = hf[0].toUpperCase() + hf.slice(1);\n ff(jf, \"on\" + kf);\n}\nff($e, \"onAnimationEnd\");\nff(af, \"onAnimationIteration\");\nff(bf, \"onAnimationStart\");\nff(\"dblclick\", \"onDoubleClick\");\nff(\"focusin\", \"onFocus\");\nff(\"focusout\", \"onBlur\");\nff(cf, \"onTransitionEnd\");\nha(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nha(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nha(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nha(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nfa(\"onChange\", \"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));\nfa(\"onSelect\", \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));\nfa(\"onBeforeInput\", [\"compositionend\", \"keypress\", \"textInput\", \"paste\"]);\nfa(\"onCompositionEnd\", \"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionStart\", \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\", \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));\nvar lf = \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),\n mf = new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a, b, c) {\n var d = a.type || \"unknown-event\";\n a.currentTarget = c;\n Ub(d, b, void 0, a);\n a.currentTarget = null;\n}\nfunction se(a, b) {\n b = 0 !== (b & 4);\n for (var c = 0; c < a.length; c++) {\n var d = a[c],\n e = d.event;\n d = d.listeners;\n a: {\n var f = void 0;\n if (b) for (var g = d.length - 1; 0 <= g; g--) {\n var h = d[g],\n k = h.instance,\n l = h.currentTarget;\n h = h.listener;\n if (k !== f && e.isPropagationStopped()) break a;\n nf(e, h, l);\n f = k;\n } else for (g = 0; g < d.length; g++) {\n h = d[g];\n k = h.instance;\n l = h.currentTarget;\n h = h.listener;\n if (k !== f && e.isPropagationStopped()) break a;\n nf(e, h, l);\n f = k;\n }\n }\n }\n if (Qb) throw a = Rb, Qb = !1, Rb = null, a;\n}\nfunction D(a, b) {\n var c = b[of];\n void 0 === c && (c = b[of] = new Set());\n var d = a + \"__bubble\";\n c.has(d) || (pf(b, a, 2, !1), c.add(d));\n}\nfunction qf(a, b, c) {\n var d = 0;\n b && (d |= 4);\n pf(c, a, d, b);\n}\nvar rf = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction sf(a) {\n if (!a[rf]) {\n a[rf] = !0;\n da.forEach(function (b) {\n \"selectionchange\" !== b && (mf.has(b) || qf(b, !1, a), qf(b, !0, a));\n });\n var b = 9 === a.nodeType ? a : a.ownerDocument;\n null === b || b[rf] || (b[rf] = !0, qf(\"selectionchange\", !1, b));\n }\n}\nfunction pf(a, b, c, d) {\n switch (jd(b)) {\n case 1:\n var e = ed;\n break;\n case 4:\n e = gd;\n break;\n default:\n e = fd;\n }\n c = e.bind(null, b, c, a);\n e = void 0;\n !Lb || \"touchstart\" !== b && \"touchmove\" !== b && \"wheel\" !== b || (e = !0);\n d ? void 0 !== e ? a.addEventListener(b, c, {\n capture: !0,\n passive: e\n }) : a.addEventListener(b, c, !0) : void 0 !== e ? a.addEventListener(b, c, {\n passive: e\n }) : a.addEventListener(b, c, !1);\n}\nfunction hd(a, b, c, d, e) {\n var f = d;\n if (0 === (b & 1) && 0 === (b & 2) && null !== d) a: for (;;) {\n if (null === d) return;\n var g = d.tag;\n if (3 === g || 4 === g) {\n var h = d.stateNode.containerInfo;\n if (h === e || 8 === h.nodeType && h.parentNode === e) break;\n if (4 === g) for (g = d.return; null !== g;) {\n var k = g.tag;\n if (3 === k || 4 === k) if (k = g.stateNode.containerInfo, k === e || 8 === k.nodeType && k.parentNode === e) return;\n g = g.return;\n }\n for (; null !== h;) {\n g = Wc(h);\n if (null === g) return;\n k = g.tag;\n if (5 === k || 6 === k) {\n d = f = g;\n continue a;\n }\n h = h.parentNode;\n }\n }\n d = d.return;\n }\n Jb(function () {\n var d = f,\n e = xb(c),\n g = [];\n a: {\n var h = df.get(a);\n if (void 0 !== h) {\n var k = td,\n n = a;\n switch (a) {\n case \"keypress\":\n if (0 === od(c)) break a;\n case \"keydown\":\n case \"keyup\":\n k = Rd;\n break;\n case \"focusin\":\n n = \"focus\";\n k = Fd;\n break;\n case \"focusout\":\n n = \"blur\";\n k = Fd;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n k = Fd;\n break;\n case \"click\":\n if (2 === c.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n k = Bd;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n k = Dd;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n k = Vd;\n break;\n case $e:\n case af:\n case bf:\n k = Hd;\n break;\n case cf:\n k = Xd;\n break;\n case \"scroll\":\n k = vd;\n break;\n case \"wheel\":\n k = Zd;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n k = Jd;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n k = Td;\n }\n var t = 0 !== (b & 4),\n J = !t && \"scroll\" === a,\n x = t ? null !== h ? h + \"Capture\" : null : h;\n t = [];\n for (var w = d, u; null !== w;) {\n u = w;\n var F = u.stateNode;\n 5 === u.tag && null !== F && (u = F, null !== x && (F = Kb(w, x), null != F && t.push(tf(w, F, u))));\n if (J) break;\n w = w.return;\n }\n 0 < t.length && (h = new k(h, n, null, c, e), g.push({\n event: h,\n listeners: t\n }));\n }\n }\n if (0 === (b & 7)) {\n a: {\n h = \"mouseover\" === a || \"pointerover\" === a;\n k = \"mouseout\" === a || \"pointerout\" === a;\n if (h && c !== wb && (n = c.relatedTarget || c.fromElement) && (Wc(n) || n[uf])) break a;\n if (k || h) {\n h = e.window === e ? e : (h = e.ownerDocument) ? h.defaultView || h.parentWindow : window;\n if (k) {\n if (n = c.relatedTarget || c.toElement, k = d, n = n ? Wc(n) : null, null !== n && (J = Vb(n), n !== J || 5 !== n.tag && 6 !== n.tag)) n = null;\n } else k = null, n = d;\n if (k !== n) {\n t = Bd;\n F = \"onMouseLeave\";\n x = \"onMouseEnter\";\n w = \"mouse\";\n if (\"pointerout\" === a || \"pointerover\" === a) t = Td, F = \"onPointerLeave\", x = \"onPointerEnter\", w = \"pointer\";\n J = null == k ? h : ue(k);\n u = null == n ? h : ue(n);\n h = new t(F, w + \"leave\", k, c, e);\n h.target = J;\n h.relatedTarget = u;\n F = null;\n Wc(e) === d && (t = new t(x, w + \"enter\", n, c, e), t.target = u, t.relatedTarget = J, F = t);\n J = F;\n if (k && n) b: {\n t = k;\n x = n;\n w = 0;\n for (u = t; u; u = vf(u)) w++;\n u = 0;\n for (F = x; F; F = vf(F)) u++;\n for (; 0 < w - u;) t = vf(t), w--;\n for (; 0 < u - w;) x = vf(x), u--;\n for (; w--;) {\n if (t === x || null !== x && t === x.alternate) break b;\n t = vf(t);\n x = vf(x);\n }\n t = null;\n } else t = null;\n null !== k && wf(g, h, k, t, !1);\n null !== n && null !== J && wf(g, J, n, t, !0);\n }\n }\n }\n a: {\n h = d ? ue(d) : window;\n k = h.nodeName && h.nodeName.toLowerCase();\n if (\"select\" === k || \"input\" === k && \"file\" === h.type) var na = ve;else if (me(h)) {\n if (we) na = Fe;else {\n na = De;\n var xa = Ce;\n }\n } else (k = h.nodeName) && \"input\" === k.toLowerCase() && (\"checkbox\" === h.type || \"radio\" === h.type) && (na = Ee);\n if (na && (na = na(a, d))) {\n ne(g, na, c, e);\n break a;\n }\n xa && xa(a, h, d);\n \"focusout\" === a && (xa = h._wrapperState) && xa.controlled && \"number\" === h.type && cb(h, \"number\", h.value);\n }\n xa = d ? ue(d) : window;\n switch (a) {\n case \"focusin\":\n if (me(xa) || \"true\" === xa.contentEditable) Qe = xa, Re = d, Se = null;\n break;\n case \"focusout\":\n Se = Re = Qe = null;\n break;\n case \"mousedown\":\n Te = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n Te = !1;\n Ue(g, c, e);\n break;\n case \"selectionchange\":\n if (Pe) break;\n case \"keydown\":\n case \"keyup\":\n Ue(g, c, e);\n }\n var $a;\n if (ae) b: {\n switch (a) {\n case \"compositionstart\":\n var ba = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n ba = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n ba = \"onCompositionUpdate\";\n break b;\n }\n ba = void 0;\n } else ie ? ge(a, c) && (ba = \"onCompositionEnd\") : \"keydown\" === a && 229 === c.keyCode && (ba = \"onCompositionStart\");\n ba && (de && \"ko\" !== c.locale && (ie || \"onCompositionStart\" !== ba ? \"onCompositionEnd\" === ba && ie && ($a = nd()) : (kd = e, ld = \"value\" in kd ? kd.value : kd.textContent, ie = !0)), xa = oe(d, ba), 0 < xa.length && (ba = new Ld(ba, a, null, c, e), g.push({\n event: ba,\n listeners: xa\n }), $a ? ba.data = $a : ($a = he(c), null !== $a && (ba.data = $a))));\n if ($a = ce ? je(a, c) : ke(a, c)) d = oe(d, \"onBeforeInput\"), 0 < d.length && (e = new Ld(\"onBeforeInput\", \"beforeinput\", null, c, e), g.push({\n event: e,\n listeners: d\n }), e.data = $a);\n }\n se(g, b);\n });\n}\nfunction tf(a, b, c) {\n return {\n instance: a,\n listener: b,\n currentTarget: c\n };\n}\nfunction oe(a, b) {\n for (var c = b + \"Capture\", d = []; null !== a;) {\n var e = a,\n f = e.stateNode;\n 5 === e.tag && null !== f && (e = f, f = Kb(a, c), null != f && d.unshift(tf(a, f, e)), f = Kb(a, b), null != f && d.push(tf(a, f, e)));\n a = a.return;\n }\n return d;\n}\nfunction vf(a) {\n if (null === a) return null;\n do a = a.return; while (a && 5 !== a.tag);\n return a ? a : null;\n}\nfunction wf(a, b, c, d, e) {\n for (var f = b._reactName, g = []; null !== c && c !== d;) {\n var h = c,\n k = h.alternate,\n l = h.stateNode;\n if (null !== k && k === d) break;\n 5 === h.tag && null !== l && (h = l, e ? (k = Kb(c, f), null != k && g.unshift(tf(c, k, h))) : e || (k = Kb(c, f), null != k && g.push(tf(c, k, h))));\n c = c.return;\n }\n 0 !== g.length && a.push({\n event: b,\n listeners: g\n });\n}\nvar xf = /\\r\\n?/g,\n yf = /\\u0000|\\uFFFD/g;\nfunction zf(a) {\n return (\"string\" === typeof a ? a : \"\" + a).replace(xf, \"\\n\").replace(yf, \"\");\n}\nfunction Af(a, b, c) {\n b = zf(b);\n if (zf(a) !== b && c) throw Error(p(425));\n}\nfunction Bf() {}\nvar Cf = null,\n Df = null;\nfunction Ef(a, b) {\n return \"textarea\" === a || \"noscript\" === a || \"string\" === typeof b.children || \"number\" === typeof b.children || \"object\" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;\n}\nvar Ff = \"function\" === typeof setTimeout ? setTimeout : void 0,\n Gf = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n Hf = \"function\" === typeof Promise ? Promise : void 0,\n Jf = \"function\" === typeof queueMicrotask ? queueMicrotask : \"undefined\" !== typeof Hf ? function (a) {\n return Hf.resolve(null).then(a).catch(If);\n } : Ff;\nfunction If(a) {\n setTimeout(function () {\n throw a;\n });\n}\nfunction Kf(a, b) {\n var c = b,\n d = 0;\n do {\n var e = c.nextSibling;\n a.removeChild(c);\n if (e && 8 === e.nodeType) if (c = e.data, \"/$\" === c) {\n if (0 === d) {\n a.removeChild(e);\n bd(b);\n return;\n }\n d--;\n } else \"$\" !== c && \"$?\" !== c && \"$!\" !== c || d++;\n c = e;\n } while (c);\n bd(b);\n}\nfunction Lf(a) {\n for (; null != a; a = a.nextSibling) {\n var b = a.nodeType;\n if (1 === b || 3 === b) break;\n if (8 === b) {\n b = a.data;\n if (\"$\" === b || \"$!\" === b || \"$?\" === b) break;\n if (\"/$\" === b) return null;\n }\n }\n return a;\n}\nfunction Mf(a) {\n a = a.previousSibling;\n for (var b = 0; a;) {\n if (8 === a.nodeType) {\n var c = a.data;\n if (\"$\" === c || \"$!\" === c || \"$?\" === c) {\n if (0 === b) return a;\n b--;\n } else \"/$\" === c && b++;\n }\n a = a.previousSibling;\n }\n return null;\n}\nvar Nf = Math.random().toString(36).slice(2),\n Of = \"__reactFiber$\" + Nf,\n Pf = \"__reactProps$\" + Nf,\n uf = \"__reactContainer$\" + Nf,\n of = \"__reactEvents$\" + Nf,\n Qf = \"__reactListeners$\" + Nf,\n Rf = \"__reactHandles$\" + Nf;\nfunction Wc(a) {\n var b = a[Of];\n if (b) return b;\n for (var c = a.parentNode; c;) {\n if (b = c[uf] || c[Of]) {\n c = b.alternate;\n if (null !== b.child || null !== c && null !== c.child) for (a = Mf(a); null !== a;) {\n if (c = a[Of]) return c;\n a = Mf(a);\n }\n return b;\n }\n a = c;\n c = a.parentNode;\n }\n return null;\n}\nfunction Cb(a) {\n a = a[Of] || a[uf];\n return !a || 5 !== a.tag && 6 !== a.tag && 13 !== a.tag && 3 !== a.tag ? null : a;\n}\nfunction ue(a) {\n if (5 === a.tag || 6 === a.tag) return a.stateNode;\n throw Error(p(33));\n}\nfunction Db(a) {\n return a[Pf] || null;\n}\nvar Sf = [],\n Tf = -1;\nfunction Uf(a) {\n return {\n current: a\n };\n}\nfunction E(a) {\n 0 > Tf || (a.current = Sf[Tf], Sf[Tf] = null, Tf--);\n}\nfunction G(a, b) {\n Tf++;\n Sf[Tf] = a.current;\n a.current = b;\n}\nvar Vf = {},\n H = Uf(Vf),\n Wf = Uf(!1),\n Xf = Vf;\nfunction Yf(a, b) {\n var c = a.type.contextTypes;\n if (!c) return Vf;\n var d = a.stateNode;\n if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;\n var e = {},\n f;\n for (f in c) e[f] = b[f];\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);\n return e;\n}\nfunction Zf(a) {\n a = a.childContextTypes;\n return null !== a && void 0 !== a;\n}\nfunction $f() {\n E(Wf);\n E(H);\n}\nfunction ag(a, b, c) {\n if (H.current !== Vf) throw Error(p(168));\n G(H, b);\n G(Wf, c);\n}\nfunction bg(a, b, c) {\n var d = a.stateNode;\n b = b.childContextTypes;\n if (\"function\" !== typeof d.getChildContext) return c;\n d = d.getChildContext();\n for (var e in d) if (!(e in b)) throw Error(p(108, Ra(a) || \"Unknown\", e));\n return A({}, c, d);\n}\nfunction cg(a) {\n a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Vf;\n Xf = H.current;\n G(H, a);\n G(Wf, Wf.current);\n return !0;\n}\nfunction dg(a, b, c) {\n var d = a.stateNode;\n if (!d) throw Error(p(169));\n c ? (a = bg(a, b, Xf), d.__reactInternalMemoizedMergedChildContext = a, E(Wf), E(H), G(H, a)) : E(Wf);\n G(Wf, c);\n}\nvar eg = null,\n fg = !1,\n gg = !1;\nfunction hg(a) {\n null === eg ? eg = [a] : eg.push(a);\n}\nfunction ig(a) {\n fg = !0;\n hg(a);\n}\nfunction jg() {\n if (!gg && null !== eg) {\n gg = !0;\n var a = 0,\n b = C;\n try {\n var c = eg;\n for (C = 1; a < c.length; a++) {\n var d = c[a];\n do d = d(!0); while (null !== d);\n }\n eg = null;\n fg = !1;\n } catch (e) {\n throw null !== eg && (eg = eg.slice(a + 1)), ac(fc, jg), e;\n } finally {\n C = b, gg = !1;\n }\n }\n return null;\n}\nvar kg = [],\n lg = 0,\n mg = null,\n ng = 0,\n og = [],\n pg = 0,\n qg = null,\n rg = 1,\n sg = \"\";\nfunction tg(a, b) {\n kg[lg++] = ng;\n kg[lg++] = mg;\n mg = a;\n ng = b;\n}\nfunction ug(a, b, c) {\n og[pg++] = rg;\n og[pg++] = sg;\n og[pg++] = qg;\n qg = a;\n var d = rg;\n a = sg;\n var e = 32 - oc(d) - 1;\n d &= ~(1 << e);\n c += 1;\n var f = 32 - oc(b) + e;\n if (30 < f) {\n var g = e - e % 5;\n f = (d & (1 << g) - 1).toString(32);\n d >>= g;\n e -= g;\n rg = 1 << 32 - oc(b) + e | c << e | d;\n sg = f + a;\n } else rg = 1 << f | c << e | d, sg = a;\n}\nfunction vg(a) {\n null !== a.return && (tg(a, 1), ug(a, 1, 0));\n}\nfunction wg(a) {\n for (; a === mg;) mg = kg[--lg], kg[lg] = null, ng = kg[--lg], kg[lg] = null;\n for (; a === qg;) qg = og[--pg], og[pg] = null, sg = og[--pg], og[pg] = null, rg = og[--pg], og[pg] = null;\n}\nvar xg = null,\n yg = null,\n I = !1,\n zg = null;\nfunction Ag(a, b) {\n var c = Bg(5, null, null, 0);\n c.elementType = \"DELETED\";\n c.stateNode = b;\n c.return = a;\n b = a.deletions;\n null === b ? (a.deletions = [c], a.flags |= 16) : b.push(c);\n}\nfunction Cg(a, b) {\n switch (a.tag) {\n case 5:\n var c = a.type;\n b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;\n return null !== b ? (a.stateNode = b, xg = a, yg = Lf(b.firstChild), !0) : !1;\n case 6:\n return b = \"\" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, xg = a, yg = null, !0) : !1;\n case 13:\n return b = 8 !== b.nodeType ? null : b, null !== b ? (c = null !== qg ? {\n id: rg,\n overflow: sg\n } : null, a.memoizedState = {\n dehydrated: b,\n treeContext: c,\n retryLane: 1073741824\n }, c = Bg(18, null, null, 0), c.stateNode = b, c.return = a, a.child = c, xg = a, yg = null, !0) : !1;\n default:\n return !1;\n }\n}\nfunction Dg(a) {\n return 0 !== (a.mode & 1) && 0 === (a.flags & 128);\n}\nfunction Eg(a) {\n if (I) {\n var b = yg;\n if (b) {\n var c = b;\n if (!Cg(a, b)) {\n if (Dg(a)) throw Error(p(418));\n b = Lf(c.nextSibling);\n var d = xg;\n b && Cg(a, b) ? Ag(d, c) : (a.flags = a.flags & -4097 | 2, I = !1, xg = a);\n }\n } else {\n if (Dg(a)) throw Error(p(418));\n a.flags = a.flags & -4097 | 2;\n I = !1;\n xg = a;\n }\n }\n}\nfunction Fg(a) {\n for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag;) a = a.return;\n xg = a;\n}\nfunction Gg(a) {\n if (a !== xg) return !1;\n if (!I) return Fg(a), I = !0, !1;\n var b;\n (b = 3 !== a.tag) && !(b = 5 !== a.tag) && (b = a.type, b = \"head\" !== b && \"body\" !== b && !Ef(a.type, a.memoizedProps));\n if (b && (b = yg)) {\n if (Dg(a)) throw Hg(), Error(p(418));\n for (; b;) Ag(a, b), b = Lf(b.nextSibling);\n }\n Fg(a);\n if (13 === a.tag) {\n a = a.memoizedState;\n a = null !== a ? a.dehydrated : null;\n if (!a) throw Error(p(317));\n a: {\n a = a.nextSibling;\n for (b = 0; a;) {\n if (8 === a.nodeType) {\n var c = a.data;\n if (\"/$\" === c) {\n if (0 === b) {\n yg = Lf(a.nextSibling);\n break a;\n }\n b--;\n } else \"$\" !== c && \"$!\" !== c && \"$?\" !== c || b++;\n }\n a = a.nextSibling;\n }\n yg = null;\n }\n } else yg = xg ? Lf(a.stateNode.nextSibling) : null;\n return !0;\n}\nfunction Hg() {\n for (var a = yg; a;) a = Lf(a.nextSibling);\n}\nfunction Ig() {\n yg = xg = null;\n I = !1;\n}\nfunction Jg(a) {\n null === zg ? zg = [a] : zg.push(a);\n}\nvar Kg = ua.ReactCurrentBatchConfig;\nfunction Lg(a, b) {\n if (a && a.defaultProps) {\n b = A({}, b);\n a = a.defaultProps;\n for (var c in a) void 0 === b[c] && (b[c] = a[c]);\n return b;\n }\n return b;\n}\nvar Mg = Uf(null),\n Ng = null,\n Og = null,\n Pg = null;\nfunction Qg() {\n Pg = Og = Ng = null;\n}\nfunction Rg(a) {\n var b = Mg.current;\n E(Mg);\n a._currentValue = b;\n}\nfunction Sg(a, b, c) {\n for (; null !== a;) {\n var d = a.alternate;\n (a.childLanes & b) !== b ? (a.childLanes |= b, null !== d && (d.childLanes |= b)) : null !== d && (d.childLanes & b) !== b && (d.childLanes |= b);\n if (a === c) break;\n a = a.return;\n }\n}\nfunction Tg(a, b) {\n Ng = a;\n Pg = Og = null;\n a = a.dependencies;\n null !== a && null !== a.firstContext && (0 !== (a.lanes & b) && (Ug = !0), a.firstContext = null);\n}\nfunction Vg(a) {\n var b = a._currentValue;\n if (Pg !== a) if (a = {\n context: a,\n memoizedValue: b,\n next: null\n }, null === Og) {\n if (null === Ng) throw Error(p(308));\n Og = a;\n Ng.dependencies = {\n lanes: 0,\n firstContext: a\n };\n } else Og = Og.next = a;\n return b;\n}\nvar Wg = null;\nfunction Xg(a) {\n null === Wg ? Wg = [a] : Wg.push(a);\n}\nfunction Yg(a, b, c, d) {\n var e = b.interleaved;\n null === e ? (c.next = c, Xg(b)) : (c.next = e.next, e.next = c);\n b.interleaved = c;\n return Zg(a, d);\n}\nfunction Zg(a, b) {\n a.lanes |= b;\n var c = a.alternate;\n null !== c && (c.lanes |= b);\n c = a;\n for (a = a.return; null !== a;) a.childLanes |= b, c = a.alternate, null !== c && (c.childLanes |= b), c = a, a = a.return;\n return 3 === c.tag ? c.stateNode : null;\n}\nvar $g = !1;\nfunction ah(a) {\n a.updateQueue = {\n baseState: a.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: {\n pending: null,\n interleaved: null,\n lanes: 0\n },\n effects: null\n };\n}\nfunction bh(a, b) {\n a = a.updateQueue;\n b.updateQueue === a && (b.updateQueue = {\n baseState: a.baseState,\n firstBaseUpdate: a.firstBaseUpdate,\n lastBaseUpdate: a.lastBaseUpdate,\n shared: a.shared,\n effects: a.effects\n });\n}\nfunction ch(a, b) {\n return {\n eventTime: a,\n lane: b,\n tag: 0,\n payload: null,\n callback: null,\n next: null\n };\n}\nfunction dh(a, b, c) {\n var d = a.updateQueue;\n if (null === d) return null;\n d = d.shared;\n if (0 !== (K & 2)) {\n var e = d.pending;\n null === e ? b.next = b : (b.next = e.next, e.next = b);\n d.pending = b;\n return Zg(a, c);\n }\n e = d.interleaved;\n null === e ? (b.next = b, Xg(d)) : (b.next = e.next, e.next = b);\n d.interleaved = b;\n return Zg(a, c);\n}\nfunction eh(a, b, c) {\n b = b.updateQueue;\n if (null !== b && (b = b.shared, 0 !== (c & 4194240))) {\n var d = b.lanes;\n d &= a.pendingLanes;\n c |= d;\n b.lanes = c;\n Cc(a, c);\n }\n}\nfunction fh(a, b) {\n var c = a.updateQueue,\n d = a.alternate;\n if (null !== d && (d = d.updateQueue, c === d)) {\n var e = null,\n f = null;\n c = c.firstBaseUpdate;\n if (null !== c) {\n do {\n var g = {\n eventTime: c.eventTime,\n lane: c.lane,\n tag: c.tag,\n payload: c.payload,\n callback: c.callback,\n next: null\n };\n null === f ? e = f = g : f = f.next = g;\n c = c.next;\n } while (null !== c);\n null === f ? e = f = b : f = f.next = b;\n } else e = f = b;\n c = {\n baseState: d.baseState,\n firstBaseUpdate: e,\n lastBaseUpdate: f,\n shared: d.shared,\n effects: d.effects\n };\n a.updateQueue = c;\n return;\n }\n a = c.lastBaseUpdate;\n null === a ? c.firstBaseUpdate = b : a.next = b;\n c.lastBaseUpdate = b;\n}\nfunction gh(a, b, c, d) {\n var e = a.updateQueue;\n $g = !1;\n var f = e.firstBaseUpdate,\n g = e.lastBaseUpdate,\n h = e.shared.pending;\n if (null !== h) {\n e.shared.pending = null;\n var k = h,\n l = k.next;\n k.next = null;\n null === g ? f = l : g.next = l;\n g = k;\n var m = a.alternate;\n null !== m && (m = m.updateQueue, h = m.lastBaseUpdate, h !== g && (null === h ? m.firstBaseUpdate = l : h.next = l, m.lastBaseUpdate = k));\n }\n if (null !== f) {\n var q = e.baseState;\n g = 0;\n m = l = k = null;\n h = f;\n do {\n var r = h.lane,\n y = h.eventTime;\n if ((d & r) === r) {\n null !== m && (m = m.next = {\n eventTime: y,\n lane: 0,\n tag: h.tag,\n payload: h.payload,\n callback: h.callback,\n next: null\n });\n a: {\n var n = a,\n t = h;\n r = b;\n y = c;\n switch (t.tag) {\n case 1:\n n = t.payload;\n if (\"function\" === typeof n) {\n q = n.call(y, q, r);\n break a;\n }\n q = n;\n break a;\n case 3:\n n.flags = n.flags & -65537 | 128;\n case 0:\n n = t.payload;\n r = \"function\" === typeof n ? n.call(y, q, r) : n;\n if (null === r || void 0 === r) break a;\n q = A({}, q, r);\n break a;\n case 2:\n $g = !0;\n }\n }\n null !== h.callback && 0 !== h.lane && (a.flags |= 64, r = e.effects, null === r ? e.effects = [h] : r.push(h));\n } else y = {\n eventTime: y,\n lane: r,\n tag: h.tag,\n payload: h.payload,\n callback: h.callback,\n next: null\n }, null === m ? (l = m = y, k = q) : m = m.next = y, g |= r;\n h = h.next;\n if (null === h) if (h = e.shared.pending, null === h) break;else r = h, h = r.next, r.next = null, e.lastBaseUpdate = r, e.shared.pending = null;\n } while (1);\n null === m && (k = q);\n e.baseState = k;\n e.firstBaseUpdate = l;\n e.lastBaseUpdate = m;\n b = e.shared.interleaved;\n if (null !== b) {\n e = b;\n do g |= e.lane, e = e.next; while (e !== b);\n } else null === f && (e.shared.lanes = 0);\n hh |= g;\n a.lanes = g;\n a.memoizedState = q;\n }\n}\nfunction ih(a, b, c) {\n a = b.effects;\n b.effects = null;\n if (null !== a) for (b = 0; b < a.length; b++) {\n var d = a[b],\n e = d.callback;\n if (null !== e) {\n d.callback = null;\n d = c;\n if (\"function\" !== typeof e) throw Error(p(191, e));\n e.call(d);\n }\n }\n}\nvar jh = new aa.Component().refs;\nfunction kh(a, b, c, d) {\n b = a.memoizedState;\n c = c(d, b);\n c = null === c || void 0 === c ? b : A({}, b, c);\n a.memoizedState = c;\n 0 === a.lanes && (a.updateQueue.baseState = c);\n}\nvar nh = {\n isMounted: function (a) {\n return (a = a._reactInternals) ? Vb(a) === a : !1;\n },\n enqueueSetState: function (a, b, c) {\n a = a._reactInternals;\n var d = L(),\n e = lh(a),\n f = ch(d, e);\n f.payload = b;\n void 0 !== c && null !== c && (f.callback = c);\n b = dh(a, f, e);\n null !== b && (mh(b, a, e, d), eh(b, a, e));\n },\n enqueueReplaceState: function (a, b, c) {\n a = a._reactInternals;\n var d = L(),\n e = lh(a),\n f = ch(d, e);\n f.tag = 1;\n f.payload = b;\n void 0 !== c && null !== c && (f.callback = c);\n b = dh(a, f, e);\n null !== b && (mh(b, a, e, d), eh(b, a, e));\n },\n enqueueForceUpdate: function (a, b) {\n a = a._reactInternals;\n var c = L(),\n d = lh(a),\n e = ch(c, d);\n e.tag = 2;\n void 0 !== b && null !== b && (e.callback = b);\n b = dh(a, e, d);\n null !== b && (mh(b, a, d, c), eh(b, a, d));\n }\n};\nfunction oh(a, b, c, d, e, f, g) {\n a = a.stateNode;\n return \"function\" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !Ie(c, d) || !Ie(e, f) : !0;\n}\nfunction ph(a, b, c) {\n var d = !1,\n e = Vf;\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? f = Vg(f) : (e = Zf(b) ? Xf : H.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Yf(a, e) : Vf);\n b = new b(c, f);\n a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;\n b.updater = nh;\n a.stateNode = b;\n b._reactInternals = a;\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);\n return b;\n}\nfunction qh(a, b, c, d) {\n a = b.state;\n \"function\" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);\n \"function\" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);\n b.state !== a && nh.enqueueReplaceState(b, b.state, null);\n}\nfunction rh(a, b, c, d) {\n var e = a.stateNode;\n e.props = c;\n e.state = a.memoizedState;\n e.refs = jh;\n ah(a);\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? e.context = Vg(f) : (f = Zf(b) ? Xf : H.current, e.context = Yf(a, f));\n e.state = a.memoizedState;\n f = b.getDerivedStateFromProps;\n \"function\" === typeof f && (kh(a, b, f, c), e.state = a.memoizedState);\n \"function\" === typeof b.getDerivedStateFromProps || \"function\" === typeof e.getSnapshotBeforeUpdate || \"function\" !== typeof e.UNSAFE_componentWillMount && \"function\" !== typeof e.componentWillMount || (b = e.state, \"function\" === typeof e.componentWillMount && e.componentWillMount(), \"function\" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && nh.enqueueReplaceState(e, e.state, null), gh(a, c, e, d), e.state = a.memoizedState);\n \"function\" === typeof e.componentDidMount && (a.flags |= 4194308);\n}\nfunction sh(a, b, c) {\n a = c.ref;\n if (null !== a && \"function\" !== typeof a && \"object\" !== typeof a) {\n if (c._owner) {\n c = c._owner;\n if (c) {\n if (1 !== c.tag) throw Error(p(309));\n var d = c.stateNode;\n }\n if (!d) throw Error(p(147, a));\n var e = d,\n f = \"\" + a;\n if (null !== b && null !== b.ref && \"function\" === typeof b.ref && b.ref._stringRef === f) return b.ref;\n b = function (a) {\n var b = e.refs;\n b === jh && (b = e.refs = {});\n null === a ? delete b[f] : b[f] = a;\n };\n b._stringRef = f;\n return b;\n }\n if (\"string\" !== typeof a) throw Error(p(284));\n if (!c._owner) throw Error(p(290, a));\n }\n return a;\n}\nfunction th(a, b) {\n a = Object.prototype.toString.call(b);\n throw Error(p(31, \"[object Object]\" === a ? \"object with keys {\" + Object.keys(b).join(\", \") + \"}\" : a));\n}\nfunction uh(a) {\n var b = a._init;\n return b(a._payload);\n}\nfunction vh(a) {\n function b(b, c) {\n if (a) {\n var d = b.deletions;\n null === d ? (b.deletions = [c], b.flags |= 16) : d.push(c);\n }\n }\n function c(c, d) {\n if (!a) return null;\n for (; null !== d;) b(c, d), d = d.sibling;\n return null;\n }\n function d(a, b) {\n for (a = new Map(); null !== b;) null !== b.key ? a.set(b.key, b) : a.set(b.index, b), b = b.sibling;\n return a;\n }\n function e(a, b) {\n a = wh(a, b);\n a.index = 0;\n a.sibling = null;\n return a;\n }\n function f(b, c, d) {\n b.index = d;\n if (!a) return b.flags |= 1048576, c;\n d = b.alternate;\n if (null !== d) return d = d.index, d < c ? (b.flags |= 2, c) : d;\n b.flags |= 2;\n return c;\n }\n function g(b) {\n a && null === b.alternate && (b.flags |= 2);\n return b;\n }\n function h(a, b, c, d) {\n if (null === b || 6 !== b.tag) return b = xh(c, a.mode, d), b.return = a, b;\n b = e(b, c);\n b.return = a;\n return b;\n }\n function k(a, b, c, d) {\n var f = c.type;\n if (f === ya) return m(a, b, c.props.children, d, c.key);\n if (null !== b && (b.elementType === f || \"object\" === typeof f && null !== f && f.$$typeof === Ha && uh(f) === b.type)) return d = e(b, c.props), d.ref = sh(a, b, c), d.return = a, d;\n d = yh(c.type, c.key, c.props, null, a.mode, d);\n d.ref = sh(a, b, c);\n d.return = a;\n return d;\n }\n function l(a, b, c, d) {\n if (null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation) return b = zh(c, a.mode, d), b.return = a, b;\n b = e(b, c.children || []);\n b.return = a;\n return b;\n }\n function m(a, b, c, d, f) {\n if (null === b || 7 !== b.tag) return b = Ah(c, a.mode, d, f), b.return = a, b;\n b = e(b, c);\n b.return = a;\n return b;\n }\n function q(a, b, c) {\n if (\"string\" === typeof b && \"\" !== b || \"number\" === typeof b) return b = xh(\"\" + b, a.mode, c), b.return = a, b;\n if (\"object\" === typeof b && null !== b) {\n switch (b.$$typeof) {\n case va:\n return c = yh(b.type, b.key, b.props, null, a.mode, c), c.ref = sh(a, null, b), c.return = a, c;\n case wa:\n return b = zh(b, a.mode, c), b.return = a, b;\n case Ha:\n var d = b._init;\n return q(a, d(b._payload), c);\n }\n if (eb(b) || Ka(b)) return b = Ah(b, a.mode, c, null), b.return = a, b;\n th(a, b);\n }\n return null;\n }\n function r(a, b, c, d) {\n var e = null !== b ? b.key : null;\n if (\"string\" === typeof c && \"\" !== c || \"number\" === typeof c) return null !== e ? null : h(a, b, \"\" + c, d);\n if (\"object\" === typeof c && null !== c) {\n switch (c.$$typeof) {\n case va:\n return c.key === e ? k(a, b, c, d) : null;\n case wa:\n return c.key === e ? l(a, b, c, d) : null;\n case Ha:\n return e = c._init, r(a, b, e(c._payload), d);\n }\n if (eb(c) || Ka(c)) return null !== e ? null : m(a, b, c, d, null);\n th(a, c);\n }\n return null;\n }\n function y(a, b, c, d, e) {\n if (\"string\" === typeof d && \"\" !== d || \"number\" === typeof d) return a = a.get(c) || null, h(b, a, \"\" + d, e);\n if (\"object\" === typeof d && null !== d) {\n switch (d.$$typeof) {\n case va:\n return a = a.get(null === d.key ? c : d.key) || null, k(b, a, d, e);\n case wa:\n return a = a.get(null === d.key ? c : d.key) || null, l(b, a, d, e);\n case Ha:\n var f = d._init;\n return y(a, b, c, f(d._payload), e);\n }\n if (eb(d) || Ka(d)) return a = a.get(c) || null, m(b, a, d, e, null);\n th(b, d);\n }\n return null;\n }\n function n(e, g, h, k) {\n for (var l = null, m = null, u = g, w = g = 0, x = null; null !== u && w < h.length; w++) {\n u.index > w ? (x = u, u = null) : x = u.sibling;\n var n = r(e, u, h[w], k);\n if (null === n) {\n null === u && (u = x);\n break;\n }\n a && u && null === n.alternate && b(e, u);\n g = f(n, g, w);\n null === m ? l = n : m.sibling = n;\n m = n;\n u = x;\n }\n if (w === h.length) return c(e, u), I && tg(e, w), l;\n if (null === u) {\n for (; w < h.length; w++) u = q(e, h[w], k), null !== u && (g = f(u, g, w), null === m ? l = u : m.sibling = u, m = u);\n I && tg(e, w);\n return l;\n }\n for (u = d(e, u); w < h.length; w++) x = y(u, e, w, h[w], k), null !== x && (a && null !== x.alternate && u.delete(null === x.key ? w : x.key), g = f(x, g, w), null === m ? l = x : m.sibling = x, m = x);\n a && u.forEach(function (a) {\n return b(e, a);\n });\n I && tg(e, w);\n return l;\n }\n function t(e, g, h, k) {\n var l = Ka(h);\n if (\"function\" !== typeof l) throw Error(p(150));\n h = l.call(h);\n if (null == h) throw Error(p(151));\n for (var u = l = null, m = g, w = g = 0, x = null, n = h.next(); null !== m && !n.done; w++, n = h.next()) {\n m.index > w ? (x = m, m = null) : x = m.sibling;\n var t = r(e, m, n.value, k);\n if (null === t) {\n null === m && (m = x);\n break;\n }\n a && m && null === t.alternate && b(e, m);\n g = f(t, g, w);\n null === u ? l = t : u.sibling = t;\n u = t;\n m = x;\n }\n if (n.done) return c(e, m), I && tg(e, w), l;\n if (null === m) {\n for (; !n.done; w++, n = h.next()) n = q(e, n.value, k), null !== n && (g = f(n, g, w), null === u ? l = n : u.sibling = n, u = n);\n I && tg(e, w);\n return l;\n }\n for (m = d(e, m); !n.done; w++, n = h.next()) n = y(m, e, w, n.value, k), null !== n && (a && null !== n.alternate && m.delete(null === n.key ? w : n.key), g = f(n, g, w), null === u ? l = n : u.sibling = n, u = n);\n a && m.forEach(function (a) {\n return b(e, a);\n });\n I && tg(e, w);\n return l;\n }\n function J(a, d, f, h) {\n \"object\" === typeof f && null !== f && f.type === ya && null === f.key && (f = f.props.children);\n if (\"object\" === typeof f && null !== f) {\n switch (f.$$typeof) {\n case va:\n a: {\n for (var k = f.key, l = d; null !== l;) {\n if (l.key === k) {\n k = f.type;\n if (k === ya) {\n if (7 === l.tag) {\n c(a, l.sibling);\n d = e(l, f.props.children);\n d.return = a;\n a = d;\n break a;\n }\n } else if (l.elementType === k || \"object\" === typeof k && null !== k && k.$$typeof === Ha && uh(k) === l.type) {\n c(a, l.sibling);\n d = e(l, f.props);\n d.ref = sh(a, l, f);\n d.return = a;\n a = d;\n break a;\n }\n c(a, l);\n break;\n } else b(a, l);\n l = l.sibling;\n }\n f.type === ya ? (d = Ah(f.props.children, a.mode, h, f.key), d.return = a, a = d) : (h = yh(f.type, f.key, f.props, null, a.mode, h), h.ref = sh(a, d, f), h.return = a, a = h);\n }\n return g(a);\n case wa:\n a: {\n for (l = f.key; null !== d;) {\n if (d.key === l) {\n if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {\n c(a, d.sibling);\n d = e(d, f.children || []);\n d.return = a;\n a = d;\n break a;\n } else {\n c(a, d);\n break;\n }\n } else b(a, d);\n d = d.sibling;\n }\n d = zh(f, a.mode, h);\n d.return = a;\n a = d;\n }\n return g(a);\n case Ha:\n return l = f._init, J(a, d, l(f._payload), h);\n }\n if (eb(f)) return n(a, d, f, h);\n if (Ka(f)) return t(a, d, f, h);\n th(a, f);\n }\n return \"string\" === typeof f && \"\" !== f || \"number\" === typeof f ? (f = \"\" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f), d.return = a, a = d) : (c(a, d), d = xh(f, a.mode, h), d.return = a, a = d), g(a)) : c(a, d);\n }\n return J;\n}\nvar Bh = vh(!0),\n Ch = vh(!1),\n Dh = {},\n Eh = Uf(Dh),\n Fh = Uf(Dh),\n Gh = Uf(Dh);\nfunction Hh(a) {\n if (a === Dh) throw Error(p(174));\n return a;\n}\nfunction Ih(a, b) {\n G(Gh, b);\n G(Fh, a);\n G(Eh, Dh);\n a = b.nodeType;\n switch (a) {\n case 9:\n case 11:\n b = (b = b.documentElement) ? b.namespaceURI : lb(null, \"\");\n break;\n default:\n a = 8 === a ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = lb(b, a);\n }\n E(Eh);\n G(Eh, b);\n}\nfunction Jh() {\n E(Eh);\n E(Fh);\n E(Gh);\n}\nfunction Kh(a) {\n Hh(Gh.current);\n var b = Hh(Eh.current);\n var c = lb(b, a.type);\n b !== c && (G(Fh, a), G(Eh, c));\n}\nfunction Lh(a) {\n Fh.current === a && (E(Eh), E(Fh));\n}\nvar M = Uf(0);\nfunction Mh(a) {\n for (var b = a; null !== b;) {\n if (13 === b.tag) {\n var c = b.memoizedState;\n if (null !== c && (c = c.dehydrated, null === c || \"$?\" === c.data || \"$!\" === c.data)) return b;\n } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {\n if (0 !== (b.flags & 128)) return b;\n } else if (null !== b.child) {\n b.child.return = b;\n b = b.child;\n continue;\n }\n if (b === a) break;\n for (; null === b.sibling;) {\n if (null === b.return || b.return === a) return null;\n b = b.return;\n }\n b.sibling.return = b.return;\n b = b.sibling;\n }\n return null;\n}\nvar Nh = [];\nfunction Oh() {\n for (var a = 0; a < Nh.length; a++) Nh[a]._workInProgressVersionPrimary = null;\n Nh.length = 0;\n}\nvar Ph = ua.ReactCurrentDispatcher,\n Qh = ua.ReactCurrentBatchConfig,\n Rh = 0,\n N = null,\n O = null,\n P = null,\n Sh = !1,\n Th = !1,\n Uh = 0,\n Vh = 0;\nfunction Q() {\n throw Error(p(321));\n}\nfunction Wh(a, b) {\n if (null === b) return !1;\n for (var c = 0; c < b.length && c < a.length; c++) if (!He(a[c], b[c])) return !1;\n return !0;\n}\nfunction Xh(a, b, c, d, e, f) {\n Rh = f;\n N = b;\n b.memoizedState = null;\n b.updateQueue = null;\n b.lanes = 0;\n Ph.current = null === a || null === a.memoizedState ? Yh : Zh;\n a = c(d, e);\n if (Th) {\n f = 0;\n do {\n Th = !1;\n Uh = 0;\n if (25 <= f) throw Error(p(301));\n f += 1;\n P = O = null;\n b.updateQueue = null;\n Ph.current = $h;\n a = c(d, e);\n } while (Th);\n }\n Ph.current = ai;\n b = null !== O && null !== O.next;\n Rh = 0;\n P = O = N = null;\n Sh = !1;\n if (b) throw Error(p(300));\n return a;\n}\nfunction bi() {\n var a = 0 !== Uh;\n Uh = 0;\n return a;\n}\nfunction ci() {\n var a = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === P ? N.memoizedState = P = a : P = P.next = a;\n return P;\n}\nfunction di() {\n if (null === O) {\n var a = N.alternate;\n a = null !== a ? a.memoizedState : null;\n } else a = O.next;\n var b = null === P ? N.memoizedState : P.next;\n if (null !== b) P = b, O = a;else {\n if (null === a) throw Error(p(310));\n O = a;\n a = {\n memoizedState: O.memoizedState,\n baseState: O.baseState,\n baseQueue: O.baseQueue,\n queue: O.queue,\n next: null\n };\n null === P ? N.memoizedState = P = a : P = P.next = a;\n }\n return P;\n}\nfunction ei(a, b) {\n return \"function\" === typeof b ? b(a) : b;\n}\nfunction fi(a) {\n var b = di(),\n c = b.queue;\n if (null === c) throw Error(p(311));\n c.lastRenderedReducer = a;\n var d = O,\n e = d.baseQueue,\n f = c.pending;\n if (null !== f) {\n if (null !== e) {\n var g = e.next;\n e.next = f.next;\n f.next = g;\n }\n d.baseQueue = e = f;\n c.pending = null;\n }\n if (null !== e) {\n f = e.next;\n d = d.baseState;\n var h = g = null,\n k = null,\n l = f;\n do {\n var m = l.lane;\n if ((Rh & m) === m) null !== k && (k = k.next = {\n lane: 0,\n action: l.action,\n hasEagerState: l.hasEagerState,\n eagerState: l.eagerState,\n next: null\n }), d = l.hasEagerState ? l.eagerState : a(d, l.action);else {\n var q = {\n lane: m,\n action: l.action,\n hasEagerState: l.hasEagerState,\n eagerState: l.eagerState,\n next: null\n };\n null === k ? (h = k = q, g = d) : k = k.next = q;\n N.lanes |= m;\n hh |= m;\n }\n l = l.next;\n } while (null !== l && l !== f);\n null === k ? g = d : k.next = h;\n He(d, b.memoizedState) || (Ug = !0);\n b.memoizedState = d;\n b.baseState = g;\n b.baseQueue = k;\n c.lastRenderedState = d;\n }\n a = c.interleaved;\n if (null !== a) {\n e = a;\n do f = e.lane, N.lanes |= f, hh |= f, e = e.next; while (e !== a);\n } else null === e && (c.lanes = 0);\n return [b.memoizedState, c.dispatch];\n}\nfunction gi(a) {\n var b = di(),\n c = b.queue;\n if (null === c) throw Error(p(311));\n c.lastRenderedReducer = a;\n var d = c.dispatch,\n e = c.pending,\n f = b.memoizedState;\n if (null !== e) {\n c.pending = null;\n var g = e = e.next;\n do f = a(f, g.action), g = g.next; while (g !== e);\n He(f, b.memoizedState) || (Ug = !0);\n b.memoizedState = f;\n null === b.baseQueue && (b.baseState = f);\n c.lastRenderedState = f;\n }\n return [f, d];\n}\nfunction hi() {}\nfunction ii(a, b) {\n var c = N,\n d = di(),\n e = b(),\n f = !He(d.memoizedState, e);\n f && (d.memoizedState = e, Ug = !0);\n d = d.queue;\n ji(ki.bind(null, c, d, a), [a]);\n if (d.getSnapshot !== b || f || null !== P && P.memoizedState.tag & 1) {\n c.flags |= 2048;\n li(9, mi.bind(null, c, d, e, b), void 0, null);\n if (null === R) throw Error(p(349));\n 0 !== (Rh & 30) || ni(c, b, e);\n }\n return e;\n}\nfunction ni(a, b, c) {\n a.flags |= 16384;\n a = {\n getSnapshot: b,\n value: c\n };\n b = N.updateQueue;\n null === b ? (b = {\n lastEffect: null,\n stores: null\n }, N.updateQueue = b, b.stores = [a]) : (c = b.stores, null === c ? b.stores = [a] : c.push(a));\n}\nfunction mi(a, b, c, d) {\n b.value = c;\n b.getSnapshot = d;\n oi(b) && pi(a);\n}\nfunction ki(a, b, c) {\n return c(function () {\n oi(b) && pi(a);\n });\n}\nfunction oi(a) {\n var b = a.getSnapshot;\n a = a.value;\n try {\n var c = b();\n return !He(a, c);\n } catch (d) {\n return !0;\n }\n}\nfunction pi(a) {\n var b = Zg(a, 1);\n null !== b && mh(b, a, 1, -1);\n}\nfunction qi(a) {\n var b = ci();\n \"function\" === typeof a && (a = a());\n b.memoizedState = b.baseState = a;\n a = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: ei,\n lastRenderedState: a\n };\n b.queue = a;\n a = a.dispatch = ri.bind(null, N, a);\n return [b.memoizedState, a];\n}\nfunction li(a, b, c, d) {\n a = {\n tag: a,\n create: b,\n destroy: c,\n deps: d,\n next: null\n };\n b = N.updateQueue;\n null === b ? (b = {\n lastEffect: null,\n stores: null\n }, N.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, null === c ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a));\n return a;\n}\nfunction si() {\n return di().memoizedState;\n}\nfunction ti(a, b, c, d) {\n var e = ci();\n N.flags |= a;\n e.memoizedState = li(1 | b, c, void 0, void 0 === d ? null : d);\n}\nfunction ui(a, b, c, d) {\n var e = di();\n d = void 0 === d ? null : d;\n var f = void 0;\n if (null !== O) {\n var g = O.memoizedState;\n f = g.destroy;\n if (null !== d && Wh(d, g.deps)) {\n e.memoizedState = li(b, c, f, d);\n return;\n }\n }\n N.flags |= a;\n e.memoizedState = li(1 | b, c, f, d);\n}\nfunction vi(a, b) {\n return ti(8390656, 8, a, b);\n}\nfunction ji(a, b) {\n return ui(2048, 8, a, b);\n}\nfunction wi(a, b) {\n return ui(4, 2, a, b);\n}\nfunction xi(a, b) {\n return ui(4, 4, a, b);\n}\nfunction yi(a, b) {\n if (\"function\" === typeof b) return a = a(), b(a), function () {\n b(null);\n };\n if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {\n b.current = null;\n };\n}\nfunction zi(a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return ui(4, 4, yi.bind(null, b, a), c);\n}\nfunction Ai() {}\nfunction Bi(a, b) {\n var c = di();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Wh(b, d[1])) return d[0];\n c.memoizedState = [a, b];\n return a;\n}\nfunction Ci(a, b) {\n var c = di();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Wh(b, d[1])) return d[0];\n a = a();\n c.memoizedState = [a, b];\n return a;\n}\nfunction Di(a, b, c) {\n if (0 === (Rh & 21)) return a.baseState && (a.baseState = !1, Ug = !0), a.memoizedState = c;\n He(c, b) || (c = yc(), N.lanes |= c, hh |= c, a.baseState = !0);\n return b;\n}\nfunction Ei(a, b) {\n var c = C;\n C = 0 !== c && 4 > c ? c : 4;\n a(!0);\n var d = Qh.transition;\n Qh.transition = {};\n try {\n a(!1), b();\n } finally {\n C = c, Qh.transition = d;\n }\n}\nfunction Fi() {\n return di().memoizedState;\n}\nfunction Gi(a, b, c) {\n var d = lh(a);\n c = {\n lane: d,\n action: c,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (Hi(a)) Ii(b, c);else if (c = Yg(a, b, c, d), null !== c) {\n var e = L();\n mh(c, a, d, e);\n Ji(c, b, d);\n }\n}\nfunction ri(a, b, c) {\n var d = lh(a),\n e = {\n lane: d,\n action: c,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (Hi(a)) Ii(b, e);else {\n var f = a.alternate;\n if (0 === a.lanes && (null === f || 0 === f.lanes) && (f = b.lastRenderedReducer, null !== f)) try {\n var g = b.lastRenderedState,\n h = f(g, c);\n e.hasEagerState = !0;\n e.eagerState = h;\n if (He(h, g)) {\n var k = b.interleaved;\n null === k ? (e.next = e, Xg(b)) : (e.next = k.next, k.next = e);\n b.interleaved = e;\n return;\n }\n } catch (l) {} finally {}\n c = Yg(a, b, e, d);\n null !== c && (e = L(), mh(c, a, d, e), Ji(c, b, d));\n }\n}\nfunction Hi(a) {\n var b = a.alternate;\n return a === N || null !== b && b === N;\n}\nfunction Ii(a, b) {\n Th = Sh = !0;\n var c = a.pending;\n null === c ? b.next = b : (b.next = c.next, c.next = b);\n a.pending = b;\n}\nfunction Ji(a, b, c) {\n if (0 !== (c & 4194240)) {\n var d = b.lanes;\n d &= a.pendingLanes;\n c |= d;\n b.lanes = c;\n Cc(a, c);\n }\n}\nvar ai = {\n readContext: Vg,\n useCallback: Q,\n useContext: Q,\n useEffect: Q,\n useImperativeHandle: Q,\n useInsertionEffect: Q,\n useLayoutEffect: Q,\n useMemo: Q,\n useReducer: Q,\n useRef: Q,\n useState: Q,\n useDebugValue: Q,\n useDeferredValue: Q,\n useTransition: Q,\n useMutableSource: Q,\n useSyncExternalStore: Q,\n useId: Q,\n unstable_isNewReconciler: !1\n },\n Yh = {\n readContext: Vg,\n useCallback: function (a, b) {\n ci().memoizedState = [a, void 0 === b ? null : b];\n return a;\n },\n useContext: Vg,\n useEffect: vi,\n useImperativeHandle: function (a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return ti(4194308, 4, yi.bind(null, b, a), c);\n },\n useLayoutEffect: function (a, b) {\n return ti(4194308, 4, a, b);\n },\n useInsertionEffect: function (a, b) {\n return ti(4, 2, a, b);\n },\n useMemo: function (a, b) {\n var c = ci();\n b = void 0 === b ? null : b;\n a = a();\n c.memoizedState = [a, b];\n return a;\n },\n useReducer: function (a, b, c) {\n var d = ci();\n b = void 0 !== c ? c(b) : b;\n d.memoizedState = d.baseState = b;\n a = {\n pending: null,\n interleaved: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: a,\n lastRenderedState: b\n };\n d.queue = a;\n a = a.dispatch = Gi.bind(null, N, a);\n return [d.memoizedState, a];\n },\n useRef: function (a) {\n var b = ci();\n a = {\n current: a\n };\n return b.memoizedState = a;\n },\n useState: qi,\n useDebugValue: Ai,\n useDeferredValue: function (a) {\n return ci().memoizedState = a;\n },\n useTransition: function () {\n var a = qi(!1),\n b = a[0];\n a = Ei.bind(null, a[1]);\n ci().memoizedState = a;\n return [b, a];\n },\n useMutableSource: function () {},\n useSyncExternalStore: function (a, b, c) {\n var d = N,\n e = ci();\n if (I) {\n if (void 0 === c) throw Error(p(407));\n c = c();\n } else {\n c = b();\n if (null === R) throw Error(p(349));\n 0 !== (Rh & 30) || ni(d, b, c);\n }\n e.memoizedState = c;\n var f = {\n value: c,\n getSnapshot: b\n };\n e.queue = f;\n vi(ki.bind(null, d, f, a), [a]);\n d.flags |= 2048;\n li(9, mi.bind(null, d, f, c, b), void 0, null);\n return c;\n },\n useId: function () {\n var a = ci(),\n b = R.identifierPrefix;\n if (I) {\n var c = sg;\n var d = rg;\n c = (d & ~(1 << 32 - oc(d) - 1)).toString(32) + c;\n b = \":\" + b + \"R\" + c;\n c = Uh++;\n 0 < c && (b += \"H\" + c.toString(32));\n b += \":\";\n } else c = Vh++, b = \":\" + b + \"r\" + c.toString(32) + \":\";\n return a.memoizedState = b;\n },\n unstable_isNewReconciler: !1\n },\n Zh = {\n readContext: Vg,\n useCallback: Bi,\n useContext: Vg,\n useEffect: ji,\n useImperativeHandle: zi,\n useInsertionEffect: wi,\n useLayoutEffect: xi,\n useMemo: Ci,\n useReducer: fi,\n useRef: si,\n useState: function () {\n return fi(ei);\n },\n useDebugValue: Ai,\n useDeferredValue: function (a) {\n var b = di();\n return Di(b, O.memoizedState, a);\n },\n useTransition: function () {\n var a = fi(ei)[0],\n b = di().memoizedState;\n return [a, b];\n },\n useMutableSource: hi,\n useSyncExternalStore: ii,\n useId: Fi,\n unstable_isNewReconciler: !1\n },\n $h = {\n readContext: Vg,\n useCallback: Bi,\n useContext: Vg,\n useEffect: ji,\n useImperativeHandle: zi,\n useInsertionEffect: wi,\n useLayoutEffect: xi,\n useMemo: Ci,\n useReducer: gi,\n useRef: si,\n useState: function () {\n return gi(ei);\n },\n useDebugValue: Ai,\n useDeferredValue: function (a) {\n var b = di();\n return null === O ? b.memoizedState = a : Di(b, O.memoizedState, a);\n },\n useTransition: function () {\n var a = gi(ei)[0],\n b = di().memoizedState;\n return [a, b];\n },\n useMutableSource: hi,\n useSyncExternalStore: ii,\n useId: Fi,\n unstable_isNewReconciler: !1\n };\nfunction Ki(a, b) {\n try {\n var c = \"\",\n d = b;\n do c += Pa(d), d = d.return; while (d);\n var e = c;\n } catch (f) {\n e = \"\\nError generating stack: \" + f.message + \"\\n\" + f.stack;\n }\n return {\n value: a,\n source: b,\n stack: e,\n digest: null\n };\n}\nfunction Li(a, b, c) {\n return {\n value: a,\n source: null,\n stack: null != c ? c : null,\n digest: null != b ? b : null\n };\n}\nfunction Mi(a, b) {\n try {\n console.error(b.value);\n } catch (c) {\n setTimeout(function () {\n throw c;\n });\n }\n}\nvar Ni = \"function\" === typeof WeakMap ? WeakMap : Map;\nfunction Oi(a, b, c) {\n c = ch(-1, c);\n c.tag = 3;\n c.payload = {\n element: null\n };\n var d = b.value;\n c.callback = function () {\n Pi || (Pi = !0, Qi = d);\n Mi(a, b);\n };\n return c;\n}\nfunction Ri(a, b, c) {\n c = ch(-1, c);\n c.tag = 3;\n var d = a.type.getDerivedStateFromError;\n if (\"function\" === typeof d) {\n var e = b.value;\n c.payload = function () {\n return d(e);\n };\n c.callback = function () {\n Mi(a, b);\n };\n }\n var f = a.stateNode;\n null !== f && \"function\" === typeof f.componentDidCatch && (c.callback = function () {\n Mi(a, b);\n \"function\" !== typeof d && (null === Si ? Si = new Set([this]) : Si.add(this));\n var c = b.stack;\n this.componentDidCatch(b.value, {\n componentStack: null !== c ? c : \"\"\n });\n });\n return c;\n}\nfunction Ti(a, b, c) {\n var d = a.pingCache;\n if (null === d) {\n d = a.pingCache = new Ni();\n var e = new Set();\n d.set(b, e);\n } else e = d.get(b), void 0 === e && (e = new Set(), d.set(b, e));\n e.has(c) || (e.add(c), a = Ui.bind(null, a, b, c), b.then(a, a));\n}\nfunction Vi(a) {\n do {\n var b;\n if (b = 13 === a.tag) b = a.memoizedState, b = null !== b ? null !== b.dehydrated ? !0 : !1 : !0;\n if (b) return a;\n a = a.return;\n } while (null !== a);\n return null;\n}\nfunction Wi(a, b, c, d, e) {\n if (0 === (a.mode & 1)) return a === b ? a.flags |= 65536 : (a.flags |= 128, c.flags |= 131072, c.flags &= -52805, 1 === c.tag && (null === c.alternate ? c.tag = 17 : (b = ch(-1, 1), b.tag = 2, dh(c, b, 1))), c.lanes |= 1), a;\n a.flags |= 65536;\n a.lanes = e;\n return a;\n}\nvar Xi = ua.ReactCurrentOwner,\n Ug = !1;\nfunction Yi(a, b, c, d) {\n b.child = null === a ? Ch(b, null, c, d) : Bh(b, a.child, c, d);\n}\nfunction Zi(a, b, c, d, e) {\n c = c.render;\n var f = b.ref;\n Tg(b, e);\n d = Xh(a, b, c, d, f, e);\n c = bi();\n if (null !== a && !Ug) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, $i(a, b, e);\n I && c && vg(b);\n b.flags |= 1;\n Yi(a, b, d, e);\n return b.child;\n}\nfunction aj(a, b, c, d, e) {\n if (null === a) {\n var f = c.type;\n if (\"function\" === typeof f && !bj(f) && void 0 === f.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = f, cj(a, b, f, d, e);\n a = yh(c.type, null, d, b, b.mode, e);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n }\n f = a.child;\n if (0 === (a.lanes & e)) {\n var g = f.memoizedProps;\n c = c.compare;\n c = null !== c ? c : Ie;\n if (c(g, d) && a.ref === b.ref) return $i(a, b, e);\n }\n b.flags |= 1;\n a = wh(f, d);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n}\nfunction cj(a, b, c, d, e) {\n if (null !== a) {\n var f = a.memoizedProps;\n if (Ie(f, d) && a.ref === b.ref) if (Ug = !1, b.pendingProps = d = f, 0 !== (a.lanes & e)) 0 !== (a.flags & 131072) && (Ug = !0);else return b.lanes = a.lanes, $i(a, b, e);\n }\n return dj(a, b, c, d, e);\n}\nfunction ej(a, b, c) {\n var d = b.pendingProps,\n e = d.children,\n f = null !== a ? a.memoizedState : null;\n if (\"hidden\" === d.mode) {\n if (0 === (b.mode & 1)) b.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n }, G(fj, gj), gj |= c;else {\n if (0 === (c & 1073741824)) return a = null !== f ? f.baseLanes | c : c, b.lanes = b.childLanes = 1073741824, b.memoizedState = {\n baseLanes: a,\n cachePool: null,\n transitions: null\n }, b.updateQueue = null, G(fj, gj), gj |= a, null;\n b.memoizedState = {\n baseLanes: 0,\n cachePool: null,\n transitions: null\n };\n d = null !== f ? f.baseLanes : c;\n G(fj, gj);\n gj |= d;\n }\n } else null !== f ? (d = f.baseLanes | c, b.memoizedState = null) : d = c, G(fj, gj), gj |= d;\n Yi(a, b, e, c);\n return b.child;\n}\nfunction hj(a, b) {\n var c = b.ref;\n if (null === a && null !== c || null !== a && a.ref !== c) b.flags |= 512, b.flags |= 2097152;\n}\nfunction dj(a, b, c, d, e) {\n var f = Zf(c) ? Xf : H.current;\n f = Yf(b, f);\n Tg(b, e);\n c = Xh(a, b, c, d, f, e);\n d = bi();\n if (null !== a && !Ug) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, $i(a, b, e);\n I && d && vg(b);\n b.flags |= 1;\n Yi(a, b, c, e);\n return b.child;\n}\nfunction ij(a, b, c, d, e) {\n if (Zf(c)) {\n var f = !0;\n cg(b);\n } else f = !1;\n Tg(b, e);\n if (null === b.stateNode) jj(a, b), ph(b, c, d), rh(b, c, d, e), d = !0;else if (null === a) {\n var g = b.stateNode,\n h = b.memoizedProps;\n g.props = h;\n var k = g.context,\n l = c.contextType;\n \"object\" === typeof l && null !== l ? l = Vg(l) : (l = Zf(c) ? Xf : H.current, l = Yf(b, l));\n var m = c.getDerivedStateFromProps,\n q = \"function\" === typeof m || \"function\" === typeof g.getSnapshotBeforeUpdate;\n q || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && qh(b, g, d, l);\n $g = !1;\n var r = b.memoizedState;\n g.state = r;\n gh(b, d, g, e);\n k = b.memoizedState;\n h !== d || r !== k || Wf.current || $g ? (\"function\" === typeof m && (kh(b, c, m, d), k = b.memoizedState), (h = $g || oh(b, c, h, d, r, k, l)) ? (q || \"function\" !== typeof g.UNSAFE_componentWillMount && \"function\" !== typeof g.componentWillMount || (\"function\" === typeof g.componentWillMount && g.componentWillMount(), \"function\" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), \"function\" === typeof g.componentDidMount && (b.flags |= 4194308)) : (\"function\" === typeof g.componentDidMount && (b.flags |= 4194308), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : (\"function\" === typeof g.componentDidMount && (b.flags |= 4194308), d = !1);\n } else {\n g = b.stateNode;\n bh(a, b);\n h = b.memoizedProps;\n l = b.type === b.elementType ? h : Lg(b.type, h);\n g.props = l;\n q = b.pendingProps;\n r = g.context;\n k = c.contextType;\n \"object\" === typeof k && null !== k ? k = Vg(k) : (k = Zf(c) ? Xf : H.current, k = Yf(b, k));\n var y = c.getDerivedStateFromProps;\n (m = \"function\" === typeof y || \"function\" === typeof g.getSnapshotBeforeUpdate) || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (h !== q || r !== k) && qh(b, g, d, k);\n $g = !1;\n r = b.memoizedState;\n g.state = r;\n gh(b, d, g, e);\n var n = b.memoizedState;\n h !== q || r !== n || Wf.current || $g ? (\"function\" === typeof y && (kh(b, c, y, d), n = b.memoizedState), (l = $g || oh(b, c, l, d, r, n, k) || !1) ? (m || \"function\" !== typeof g.UNSAFE_componentWillUpdate && \"function\" !== typeof g.componentWillUpdate || (\"function\" === typeof g.componentWillUpdate && g.componentWillUpdate(d, n, k), \"function\" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, n, k)), \"function\" === typeof g.componentDidUpdate && (b.flags |= 4), \"function\" === typeof g.getSnapshotBeforeUpdate && (b.flags |= 1024)) : (\"function\" !== typeof g.componentDidUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 1024), b.memoizedProps = d, b.memoizedState = n), g.props = d, g.state = n, g.context = k, d = l) : (\"function\" !== typeof g.componentDidUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 1024), d = !1);\n }\n return kj(a, b, c, d, f, e);\n}\nfunction kj(a, b, c, d, e, f) {\n hj(a, b);\n var g = 0 !== (b.flags & 128);\n if (!d && !g) return e && dg(b, c, !1), $i(a, b, f);\n d = b.stateNode;\n Xi.current = b;\n var h = g && \"function\" !== typeof c.getDerivedStateFromError ? null : d.render();\n b.flags |= 1;\n null !== a && g ? (b.child = Bh(b, a.child, null, f), b.child = Bh(b, null, h, f)) : Yi(a, b, h, f);\n b.memoizedState = d.state;\n e && dg(b, c, !0);\n return b.child;\n}\nfunction lj(a) {\n var b = a.stateNode;\n b.pendingContext ? ag(a, b.pendingContext, b.pendingContext !== b.context) : b.context && ag(a, b.context, !1);\n Ih(a, b.containerInfo);\n}\nfunction mj(a, b, c, d, e) {\n Ig();\n Jg(e);\n b.flags |= 256;\n Yi(a, b, c, d);\n return b.child;\n}\nvar nj = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0\n};\nfunction oj(a) {\n return {\n baseLanes: a,\n cachePool: null,\n transitions: null\n };\n}\nfunction pj(a, b, c) {\n var d = b.pendingProps,\n e = M.current,\n f = !1,\n g = 0 !== (b.flags & 128),\n h;\n (h = g) || (h = null !== a && null === a.memoizedState ? !1 : 0 !== (e & 2));\n if (h) f = !0, b.flags &= -129;else if (null === a || null !== a.memoizedState) e |= 1;\n G(M, e & 1);\n if (null === a) {\n Eg(b);\n a = b.memoizedState;\n if (null !== a && (a = a.dehydrated, null !== a)) return 0 === (b.mode & 1) ? b.lanes = 1 : \"$!\" === a.data ? b.lanes = 8 : b.lanes = 1073741824, null;\n g = d.children;\n a = d.fallback;\n return f ? (d = b.mode, f = b.child, g = {\n mode: \"hidden\",\n children: g\n }, 0 === (d & 1) && null !== f ? (f.childLanes = 0, f.pendingProps = g) : f = qj(g, d, 0, null), a = Ah(a, d, c, null), f.return = b, a.return = b, f.sibling = a, b.child = f, b.child.memoizedState = oj(c), b.memoizedState = nj, a) : rj(b, g);\n }\n e = a.memoizedState;\n if (null !== e && (h = e.dehydrated, null !== h)) return sj(a, b, g, d, h, e, c);\n if (f) {\n f = d.fallback;\n g = b.mode;\n e = a.child;\n h = e.sibling;\n var k = {\n mode: \"hidden\",\n children: d.children\n };\n 0 === (g & 1) && b.child !== e ? (d = b.child, d.childLanes = 0, d.pendingProps = k, b.deletions = null) : (d = wh(e, k), d.subtreeFlags = e.subtreeFlags & 14680064);\n null !== h ? f = wh(h, f) : (f = Ah(f, g, c, null), f.flags |= 2);\n f.return = b;\n d.return = b;\n d.sibling = f;\n b.child = d;\n d = f;\n f = b.child;\n g = a.child.memoizedState;\n g = null === g ? oj(c) : {\n baseLanes: g.baseLanes | c,\n cachePool: null,\n transitions: g.transitions\n };\n f.memoizedState = g;\n f.childLanes = a.childLanes & ~c;\n b.memoizedState = nj;\n return d;\n }\n f = a.child;\n a = f.sibling;\n d = wh(f, {\n mode: \"visible\",\n children: d.children\n });\n 0 === (b.mode & 1) && (d.lanes = c);\n d.return = b;\n d.sibling = null;\n null !== a && (c = b.deletions, null === c ? (b.deletions = [a], b.flags |= 16) : c.push(a));\n b.child = d;\n b.memoizedState = null;\n return d;\n}\nfunction rj(a, b) {\n b = qj({\n mode: \"visible\",\n children: b\n }, a.mode, 0, null);\n b.return = a;\n return a.child = b;\n}\nfunction tj(a, b, c, d) {\n null !== d && Jg(d);\n Bh(b, a.child, null, c);\n a = rj(b, b.pendingProps.children);\n a.flags |= 2;\n b.memoizedState = null;\n return a;\n}\nfunction sj(a, b, c, d, e, f, g) {\n if (c) {\n if (b.flags & 256) return b.flags &= -257, d = Li(Error(p(422))), tj(a, b, g, d);\n if (null !== b.memoizedState) return b.child = a.child, b.flags |= 128, null;\n f = d.fallback;\n e = b.mode;\n d = qj({\n mode: \"visible\",\n children: d.children\n }, e, 0, null);\n f = Ah(f, e, g, null);\n f.flags |= 2;\n d.return = b;\n f.return = b;\n d.sibling = f;\n b.child = d;\n 0 !== (b.mode & 1) && Bh(b, a.child, null, g);\n b.child.memoizedState = oj(g);\n b.memoizedState = nj;\n return f;\n }\n if (0 === (b.mode & 1)) return tj(a, b, g, null);\n if (\"$!\" === e.data) {\n d = e.nextSibling && e.nextSibling.dataset;\n if (d) var h = d.dgst;\n d = h;\n f = Error(p(419));\n d = Li(f, d, void 0);\n return tj(a, b, g, d);\n }\n h = 0 !== (g & a.childLanes);\n if (Ug || h) {\n d = R;\n if (null !== d) {\n switch (g & -g) {\n case 4:\n e = 2;\n break;\n case 16:\n e = 8;\n break;\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n case 67108864:\n e = 32;\n break;\n case 536870912:\n e = 268435456;\n break;\n default:\n e = 0;\n }\n e = 0 !== (e & (d.suspendedLanes | g)) ? 0 : e;\n 0 !== e && e !== f.retryLane && (f.retryLane = e, Zg(a, e), mh(d, a, e, -1));\n }\n uj();\n d = Li(Error(p(421)));\n return tj(a, b, g, d);\n }\n if (\"$?\" === e.data) return b.flags |= 128, b.child = a.child, b = vj.bind(null, a), e._reactRetry = b, null;\n a = f.treeContext;\n yg = Lf(e.nextSibling);\n xg = b;\n I = !0;\n zg = null;\n null !== a && (og[pg++] = rg, og[pg++] = sg, og[pg++] = qg, rg = a.id, sg = a.overflow, qg = b);\n b = rj(b, d.children);\n b.flags |= 4096;\n return b;\n}\nfunction wj(a, b, c) {\n a.lanes |= b;\n var d = a.alternate;\n null !== d && (d.lanes |= b);\n Sg(a.return, b, c);\n}\nfunction xj(a, b, c, d, e) {\n var f = a.memoizedState;\n null === f ? a.memoizedState = {\n isBackwards: b,\n rendering: null,\n renderingStartTime: 0,\n last: d,\n tail: c,\n tailMode: e\n } : (f.isBackwards = b, f.rendering = null, f.renderingStartTime = 0, f.last = d, f.tail = c, f.tailMode = e);\n}\nfunction yj(a, b, c) {\n var d = b.pendingProps,\n e = d.revealOrder,\n f = d.tail;\n Yi(a, b, d.children, c);\n d = M.current;\n if (0 !== (d & 2)) d = d & 1 | 2, b.flags |= 128;else {\n if (null !== a && 0 !== (a.flags & 128)) a: for (a = b.child; null !== a;) {\n if (13 === a.tag) null !== a.memoizedState && wj(a, c, b);else if (19 === a.tag) wj(a, c, b);else if (null !== a.child) {\n a.child.return = a;\n a = a.child;\n continue;\n }\n if (a === b) break a;\n for (; null === a.sibling;) {\n if (null === a.return || a.return === b) break a;\n a = a.return;\n }\n a.sibling.return = a.return;\n a = a.sibling;\n }\n d &= 1;\n }\n G(M, d);\n if (0 === (b.mode & 1)) b.memoizedState = null;else switch (e) {\n case \"forwards\":\n c = b.child;\n for (e = null; null !== c;) a = c.alternate, null !== a && null === Mh(a) && (e = c), c = c.sibling;\n c = e;\n null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);\n xj(b, !1, e, c, f);\n break;\n case \"backwards\":\n c = null;\n e = b.child;\n for (b.child = null; null !== e;) {\n a = e.alternate;\n if (null !== a && null === Mh(a)) {\n b.child = e;\n break;\n }\n a = e.sibling;\n e.sibling = c;\n c = e;\n e = a;\n }\n xj(b, !0, c, null, f);\n break;\n case \"together\":\n xj(b, !1, null, null, void 0);\n break;\n default:\n b.memoizedState = null;\n }\n return b.child;\n}\nfunction jj(a, b) {\n 0 === (b.mode & 1) && null !== a && (a.alternate = null, b.alternate = null, b.flags |= 2);\n}\nfunction $i(a, b, c) {\n null !== a && (b.dependencies = a.dependencies);\n hh |= b.lanes;\n if (0 === (c & b.childLanes)) return null;\n if (null !== a && b.child !== a.child) throw Error(p(153));\n if (null !== b.child) {\n a = b.child;\n c = wh(a, a.pendingProps);\n b.child = c;\n for (c.return = b; null !== a.sibling;) a = a.sibling, c = c.sibling = wh(a, a.pendingProps), c.return = b;\n c.sibling = null;\n }\n return b.child;\n}\nfunction zj(a, b, c) {\n switch (b.tag) {\n case 3:\n lj(b);\n Ig();\n break;\n case 5:\n Kh(b);\n break;\n case 1:\n Zf(b.type) && cg(b);\n break;\n case 4:\n Ih(b, b.stateNode.containerInfo);\n break;\n case 10:\n var d = b.type._context,\n e = b.memoizedProps.value;\n G(Mg, d._currentValue);\n d._currentValue = e;\n break;\n case 13:\n d = b.memoizedState;\n if (null !== d) {\n if (null !== d.dehydrated) return G(M, M.current & 1), b.flags |= 128, null;\n if (0 !== (c & b.child.childLanes)) return pj(a, b, c);\n G(M, M.current & 1);\n a = $i(a, b, c);\n return null !== a ? a.sibling : null;\n }\n G(M, M.current & 1);\n break;\n case 19:\n d = 0 !== (c & b.childLanes);\n if (0 !== (a.flags & 128)) {\n if (d) return yj(a, b, c);\n b.flags |= 128;\n }\n e = b.memoizedState;\n null !== e && (e.rendering = null, e.tail = null, e.lastEffect = null);\n G(M, M.current);\n if (d) break;else return null;\n case 22:\n case 23:\n return b.lanes = 0, ej(a, b, c);\n }\n return $i(a, b, c);\n}\nvar Aj, Bj, Cj, Dj;\nAj = function (a, b) {\n for (var c = b.child; null !== c;) {\n if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);else if (4 !== c.tag && null !== c.child) {\n c.child.return = c;\n c = c.child;\n continue;\n }\n if (c === b) break;\n for (; null === c.sibling;) {\n if (null === c.return || c.return === b) return;\n c = c.return;\n }\n c.sibling.return = c.return;\n c = c.sibling;\n }\n};\nBj = function () {};\nCj = function (a, b, c, d) {\n var e = a.memoizedProps;\n if (e !== d) {\n a = b.stateNode;\n Hh(Eh.current);\n var f = null;\n switch (c) {\n case \"input\":\n e = Ya(a, e);\n d = Ya(a, d);\n f = [];\n break;\n case \"select\":\n e = A({}, e, {\n value: void 0\n });\n d = A({}, d, {\n value: void 0\n });\n f = [];\n break;\n case \"textarea\":\n e = gb(a, e);\n d = gb(a, d);\n f = [];\n break;\n default:\n \"function\" !== typeof e.onClick && \"function\" === typeof d.onClick && (a.onclick = Bf);\n }\n ub(c, d);\n var g;\n c = null;\n for (l in e) if (!d.hasOwnProperty(l) && e.hasOwnProperty(l) && null != e[l]) if (\"style\" === l) {\n var h = e[l];\n for (g in h) h.hasOwnProperty(g) && (c || (c = {}), c[g] = \"\");\n } else \"dangerouslySetInnerHTML\" !== l && \"children\" !== l && \"suppressContentEditableWarning\" !== l && \"suppressHydrationWarning\" !== l && \"autoFocus\" !== l && (ea.hasOwnProperty(l) ? f || (f = []) : (f = f || []).push(l, null));\n for (l in d) {\n var k = d[l];\n h = null != e ? e[l] : void 0;\n if (d.hasOwnProperty(l) && k !== h && (null != k || null != h)) if (\"style\" === l) {\n if (h) {\n for (g in h) !h.hasOwnProperty(g) || k && k.hasOwnProperty(g) || (c || (c = {}), c[g] = \"\");\n for (g in k) k.hasOwnProperty(g) && h[g] !== k[g] && (c || (c = {}), c[g] = k[g]);\n } else c || (f || (f = []), f.push(l, c)), c = k;\n } else \"dangerouslySetInnerHTML\" === l ? (k = k ? k.__html : void 0, h = h ? h.__html : void 0, null != k && h !== k && (f = f || []).push(l, k)) : \"children\" === l ? \"string\" !== typeof k && \"number\" !== typeof k || (f = f || []).push(l, \"\" + k) : \"suppressContentEditableWarning\" !== l && \"suppressHydrationWarning\" !== l && (ea.hasOwnProperty(l) ? (null != k && \"onScroll\" === l && D(\"scroll\", a), f || h === k || (f = [])) : (f = f || []).push(l, k));\n }\n c && (f = f || []).push(\"style\", c);\n var l = f;\n if (b.updateQueue = l) b.flags |= 4;\n }\n};\nDj = function (a, b, c, d) {\n c !== d && (b.flags |= 4);\n};\nfunction Ej(a, b) {\n if (!I) switch (a.tailMode) {\n case \"hidden\":\n b = a.tail;\n for (var c = null; null !== b;) null !== b.alternate && (c = b), b = b.sibling;\n null === c ? a.tail = null : c.sibling = null;\n break;\n case \"collapsed\":\n c = a.tail;\n for (var d = null; null !== c;) null !== c.alternate && (d = c), c = c.sibling;\n null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;\n }\n}\nfunction S(a) {\n var b = null !== a.alternate && a.alternate.child === a.child,\n c = 0,\n d = 0;\n if (b) for (var e = a.child; null !== e;) c |= e.lanes | e.childLanes, d |= e.subtreeFlags & 14680064, d |= e.flags & 14680064, e.return = a, e = e.sibling;else for (e = a.child; null !== e;) c |= e.lanes | e.childLanes, d |= e.subtreeFlags, d |= e.flags, e.return = a, e = e.sibling;\n a.subtreeFlags |= d;\n a.childLanes = c;\n return b;\n}\nfunction Fj(a, b, c) {\n var d = b.pendingProps;\n wg(b);\n switch (b.tag) {\n case 2:\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return S(b), null;\n case 1:\n return Zf(b.type) && $f(), S(b), null;\n case 3:\n d = b.stateNode;\n Jh();\n E(Wf);\n E(H);\n Oh();\n d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null);\n if (null === a || null === a.child) Gg(b) ? b.flags |= 4 : null === a || a.memoizedState.isDehydrated && 0 === (b.flags & 256) || (b.flags |= 1024, null !== zg && (Gj(zg), zg = null));\n Bj(a, b);\n S(b);\n return null;\n case 5:\n Lh(b);\n var e = Hh(Gh.current);\n c = b.type;\n if (null !== a && null != b.stateNode) Cj(a, b, c, d, e), a.ref !== b.ref && (b.flags |= 512, b.flags |= 2097152);else {\n if (!d) {\n if (null === b.stateNode) throw Error(p(166));\n S(b);\n return null;\n }\n a = Hh(Eh.current);\n if (Gg(b)) {\n d = b.stateNode;\n c = b.type;\n var f = b.memoizedProps;\n d[Of] = b;\n d[Pf] = f;\n a = 0 !== (b.mode & 1);\n switch (c) {\n case \"dialog\":\n D(\"cancel\", d);\n D(\"close\", d);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n D(\"load\", d);\n break;\n case \"video\":\n case \"audio\":\n for (e = 0; e < lf.length; e++) D(lf[e], d);\n break;\n case \"source\":\n D(\"error\", d);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n D(\"error\", d);\n D(\"load\", d);\n break;\n case \"details\":\n D(\"toggle\", d);\n break;\n case \"input\":\n Za(d, f);\n D(\"invalid\", d);\n break;\n case \"select\":\n d._wrapperState = {\n wasMultiple: !!f.multiple\n };\n D(\"invalid\", d);\n break;\n case \"textarea\":\n hb(d, f), D(\"invalid\", d);\n }\n ub(c, f);\n e = null;\n for (var g in f) if (f.hasOwnProperty(g)) {\n var h = f[g];\n \"children\" === g ? \"string\" === typeof h ? d.textContent !== h && (!0 !== f.suppressHydrationWarning && Af(d.textContent, h, a), e = [\"children\", h]) : \"number\" === typeof h && d.textContent !== \"\" + h && (!0 !== f.suppressHydrationWarning && Af(d.textContent, h, a), e = [\"children\", \"\" + h]) : ea.hasOwnProperty(g) && null != h && \"onScroll\" === g && D(\"scroll\", d);\n }\n switch (c) {\n case \"input\":\n Va(d);\n db(d, f, !0);\n break;\n case \"textarea\":\n Va(d);\n jb(d);\n break;\n case \"select\":\n case \"option\":\n break;\n default:\n \"function\" === typeof f.onClick && (d.onclick = Bf);\n }\n d = e;\n b.updateQueue = d;\n null !== d && (b.flags |= 4);\n } else {\n g = 9 === e.nodeType ? e : e.ownerDocument;\n \"http://www.w3.org/1999/xhtml\" === a && (a = kb(c));\n \"http://www.w3.org/1999/xhtml\" === a ? \"script\" === c ? (a = g.createElement(\"div\"), a.innerHTML = \"