{"version":3,"file":"polyfills.js","mappings":"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","names":["window","document","exportName","undefined","assign","VENDOR_PREFIXES","TEST_ELEMENT","createElement","round","Math","abs","now","Date","setTimeoutContext","fn","timeout","context","setTimeout","bindFn","invokeArrayArg","arg","Array","isArray","each","obj","iterator","i","forEach","length","call","hasOwnProperty","deprecate","method","name","message","deprecationMessage","e","Error","stack","replace","log","console","warn","apply","this","arguments","Object","target","TypeError","output","index","source","nextKey","extend","dest","src","merge","keys","inherit","child","base","properties","childP","baseP","prototype","create","constructor","_super","boolOrFn","val","args","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","type","addEventListener","removeEventListeners","removeEventListener","hasParent","node","parent","parentNode","inStr","str","find","indexOf","trim","split","inArray","findByKey","toArray","slice","uniqueArray","key","sort","results","values","push","a","b","prefixed","property","prefix","prop","camelProp","toUpperCase","_uniqueId","getWindowForElement","element","doc","ownerDocument","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","test","navigator","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","PROPS_XY","PROPS_CLIENT_XY","Input","manager","callback","self","options","inputTarget","domHandler","ev","enable","init","inputHandler","eventType","input","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","computeInputData","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","computeDeltaXY","offset","offsetDelta","prevDelta","prevInput","x","deltaX","y","deltaY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","scale","getScale","start","end","rotation","getRotation","maxPointers","computeIntervalInputData","velocity","velocityX","velocityY","direction","last","lastInterval","v","srcEvent","emit","recognize","clientX","clientY","p1","p2","props","sqrt","atan2","PI","evEl","evTarget","evWin","destroy","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","toLowerCase","isTouch","storeIndex","pointerId","splice","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","all","touches","changed","changedTouches","concat","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","filter","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","t","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","style","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","getTouchActionProps","touchMap","cssSupports","CSS","supports","TouchAction","value","set","Recognizer","defaults","id","uniqueId","state","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","get","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","Hammer","recognizers","preset","Manager","handlers","oldCssProps","createInputInstance","inputClass","touchAction","toggleCssProps","item","add","recognizeWith","requireFailure","cssProps","compute","actions","update","getTouchAction","cleanTouchActions","hasPanX","hasPanY","join","preventDefaults","prevented","hasNone","DIRECTION_LEFT","DIRECTION_UP","preventSrc","preventDefault","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","attrTest","optionPointers","isRecognized","isValid","threshold","DIRECTION_HORIZONTAL","directionTest","hasMoved","time","validPointers","validMovement","validTime","clearTimeout","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","stop","force","stopped","curRecognizer","existing","remove","on","events","off","data","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_VERTICAL","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","define","global","performance","mark","performanceMeasure","label","measure","symbolPrefix","__Zone_symbol_prefix","__symbol__","checkDuplicate","Zone","zoneSpec","_parent","_name","_properties","_zoneDelegate","_ZoneDelegate","static","Promise","patches","ZoneAwarePromise","root","zone","current","_currentZoneFrame","currentTask","_currentTask","ignoreDuplicate","perfName","_api","getZoneWith","fork","wrap","_callback","intercept","runGuarded","run","applyThis","applyArgs","invoke","error","handleError","runTask","task","NO_ZONE","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","runCount","previousTask","isPeriodic","cancelFn","invokeTask","unknown","_updateTaskCount","scheduleTask","newZone","scheduling","zoneDelegates","_zoneDelegates","_zone","err","scheduleMicroTask","customSchedule","ZoneTask","microTask","scheduleMacroTask","customCancel","scheduleEventTask","cancelTask","canceling","DELEGATE_ZS","onHasTask","delegate","_","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","targetZone","returnTask","scheduleFn","isEmpty","counts","prev","next","change","_state","useG","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","toString","handleId","toJSON","symbolSetTimeout","symbolPromise","symbolThen","nativeMicroTaskQueuePromise","_microTaskQueue","_isDrainingMicrotaskQueue","nativeScheduleMicroTask","func","resolve","nativeThen","then","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","getOwnPropertyDescriptor","defineProperty","ObjectGetPrototypeOf","getPrototypeOf","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","internalWindow","_global","isPropertyWritable","propertyDesc","writable","isWebWorker","WorkerGlobalScope","isNode","isBrowser","HTMLElement","isMix","zoneSymbolEventNames$1","wrapFn","eventNameSymbol","listener","result","errorEvent","filename","lineno","colno","patchProperty","desc","enumerable","configurable","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","REMOVE_ATTRIBUTE","removeAttribute","onProperties","j","originalInstanceKey","className","OriginalClass","instance","patchFn","proto","delegateName","patchDelegate","funcName","metaCreator","setNative","cbIdx","meta","patched","original","isDetectedIEOrEdge","ieOrEdge","ua","__load_patch","api","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","rejection","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","isThenable","forwardResolution","forwardRejection","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","REJECTED","makeResolver","promise","resolvePromise","once","wasCalled","wrappedFunction","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","clearRejectedNoCatch","trace","creationTrace","scheduleResolveOrReject","readableObjectToString","JSON","stringify","REJECTION_HANDLED_HANDLER","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","AggregateError","Symbol","promises","finished","errors","res","rej","onResolve","onReject","allWithCallback","thenCallback","status","errorCallback","reason","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","executor","toStringTag","species","_a","C","catch","finally","onFinally","race","NativePromise","symbolThenPatched","Ctor","originalThen","zoneify","resultPromise","ctor","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","originalDelegate","nativePromise","nativeError","originalObjectToString","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbolCapture","apis","patchOptions","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","globalCallback","isCapture","tasks","copyTasks","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","rt","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","buildEventListenerOptions","passive","capture","prepend","isExisting","symbolEventNames","symbolEventName","existingTasks","allRemoved","compare","diff","typeOfDelegate","unpatchedEvents","passiveEvents","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","constructorName","targetSource","unshift","PREPEND_EVENT_LISTENER","existingTask","findEventTasks","captureTasks","removeTasks","match","exec","evtName","foundTasks","captureFalseTasks","captureTrueTasks","Event","targetName","callbacks","nativeDelegate","opts","descriptor","ignoreProperties","tip","ip","targetIgnoreProperties","op","patchFilteredProperties","getOnEventNames","getOwnPropertyNames","startsWith","map","substring","eventNames","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","clearTask","delay","handle","ref","unref","bind","legacyPatch","clear","blockingMethods","s","patchEvent","eventTargetPatch","EVENT_TARGET","EventTarget","XMLHttpRequestEventTarget","propertyDescriptorPatch","__Zone_ignore_on_properties","patchTargets","ignoreErrorProperties","isIE","patchCustomElements","customElements","patchXHR","XMLHttpRequest","XMLHttpRequestPrototype","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","XHR_SCHEDULED","XHR_ERROR_BEFORE_SCHEDULED","XHR_LISTENER","newListener","readyState","DONE","aborted","loadTasks","oriInvoke","XHR_TASK","sendNative","placeholderCallback","abortNative","openNative","XHR_SYNC","XHR_URL","fetchTaskAborting","fetchTaskScheduling","url","findPendingTask","geolocation","patchPrototype","fnNames","findPromiseRejectionHandler","PromiseRejectionEvent","evt","__webpack_require__","module","ArrayProto","toAbsoluteIndex","toLength","len","to","from","inc","O","aLen","endPos","IObject","toObject","asc","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","f","TYPE","aFunction","memo","isRight","SPECIES","isObject","arraySlice","factories","construct","partArgs","bound","TAG","ARG","cof","tryGet","redefineAll","ctx","anInstance","forOf","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","entry","getConstructor","that","delete","has","def","p","n","r","setStrong","kind","IS_MAP","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","ufstore","$export","redefine","fails","$iterDetect","setToStringTag","inheritIfRequired","ADDER","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","IS_WEAK","version","createDesc","object","getTime","$toISOString","lz","m","toPrimitive","NUMBER","is","gOPS","pIE","getSymbols","symbols","isEnum","core","hide","PROTOTYPE","IS_FORCED","IS_GLOBAL","IS_PROTO","IS_BIND","exports","expProto","out","own","exp","defined","wks","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","re","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","fns","SYMBOL","done","rxfn","isArrayIter","getIterFn","BREAK","RETURN","iterFn","setPrototypeOf","P","S","ITERATOR","floor","MATCH","IteratorPrototype","Constructor","Iterators","$iterCreate","BUGGY","KEYS","VALUES","returnThis","methods","getMethod","DEF_VALUES","VALUES_BUG","$native","DEFAULT","$default","$entries","$anyNative","LIBRARY","entries","FORCED","SAFE_CLOSING","riter","iter","arr","$expm1","pow","EPSILON","EPSILON32","MAX32","MIN32","$abs","$sign","setDesc","isExtensible","FREEZE","setMeta","w","KEY","NEED","onFreeze","it","shared","getOrCreateMetadataMap","targetMetadata","getKeys","$assign","B","K","A","T","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","open","IE8_DOM_DEFINE","dP","__defineSetter__","toIObject","gOPD","gOPN","windowNames","getWindowNames","hiddenKeys","ObjectProto","arrayIndexOf","propertyIsEnumerable","Reflect","$trim","$parseFloat","ws","hex","$parseInt","SRC","$toString","TO_STRING","TPL","isFunction","safe","builtinExec","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","lastIndex","reCopy","check","buggy","uid","SHARED","mode","copyright","l","quot","createHTML","spaces","space","ltrim","rtrim","exporter","FORCE","ALIAS","string","max","min","px","wksExt","USE_SYMBOL","copyWithin","$every","every","fill","$filter","$find","forced","findIndex","$forEach","STRICT","createProperty","mapfn","mapping","$indexOf","NEGATIVE_ZERO","addToUnscopables","arrayJoin","toInteger","lastIndexOf","$map","of","$reduce","reduceRight","reduce","html","klass","upTo","size","cloned","$some","some","$sort","toISOString","pv","TO_PRIMITIVE","INVALID_DATE","DateProto","HAS_INSTANCE","FunctionProto","FProto","nameRE","NAME","MAP","strong","log1p","$acosh","acosh","$asinh","asinh","$atanh","atanh","sign","cbrt","clz32","cosh","expm1","fround","hypot","sum","larg","div","$imul","imul","xn","yn","xl","yl","log10","log2","sinh","tanh","trunc","$Number","Base","BROKEN_COF","TRIM","toNumber","third","first","charCodeAt","maxCode","code","_isFinite","isFinite","isInteger","isNaN","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseFloat","parseInt","aNumberValue","repeat","$toFixed","ERROR","ZERO","multiply","c2","divide","c","numToString","toFixed","x2","z","k","$fails","$toPrecision","toPrecision","defineProperties","$getOwnPropertyDescriptor","$getPrototypeOf","$keys","rApply","fApply","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","propertyKey","deleteProperty","Enumerate","enumerate","getProto","receiver","$isExtensible","ownKeys","$preventExtensions","preventExtensions","setProto","existingDescriptor","ownDesc","isRegExp","$flags","$RegExp","CORRECT_NEW","piRE","fiU","tiRE","proxy","advanceStringIndex","regExpExec","rx","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","$replace","functionalReplace","String","accumulatedResult","nextSourcePosition","matched","position","captures","replacement","namedCaptures","sameValue","previousLastIndex","speciesConstructor","callRegExpExec","$min","$push","$SPLIT","LENGTH","MAX_UINT32","SUPPORTS_Y","internalSplit","lastLastIndex","splitLimit","separatorCopy","separator","lastLength","$split","splitter","unicodeMatching","lim","q","$at","codePointAt","ENDS_WITH","$endsWith","endsWith","endPosition","search","fromCharCode","$fromCodePoint","fromCodePoint","INCLUDES","includes","point","raw","tpl","STARTS_WITH","$startsWith","META","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$Symbol","$JSON","_stringify","HIDDEN","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperty","D","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyNames","names","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","getOwnPropertySymbols","replacer","$replacer","InternalMap","weak","NATIVE_WEAK_MAP","IS_IE11","WEAK_MAP","wrapper","$WeakMap","__defineGetter__","getOwnPropertyDescriptors","getDesc","__lookupGetter__","__lookupSetter__","$values","toMetaKey","ordinaryDefineOwnMetadata","metadata","defineMetadata","deleteMetadata","metadataMap","ordinaryOwnMetadataKeys","ordinaryMetadataKeys","getMetadataKeys","ordinaryHasOwnMetadata","ordinaryGetOwnMetadata","ordinaryGetMetadata","getMetadata","getOwnMetadataKeys","getOwnMetadata","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","$metadata","metadataKey","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","$localize$1","messageParts","expressions","translate","translation","stripBlock","messagePart","rawMessagePart","charAt","findEndOfBlock","cooked","cookedIndex","rawIndex","globalThis","ɵ_global","ɵ$localize"],"sourceRoot":"webpack:///","sources":["./node_modules/hammerjs/hammer.js","./node_modules/zone.js/fesm2015/zone.js","./node_modules/core-js/es6/array.js","./node_modules/core-js/es6/date.js","./node_modules/core-js/es6/function.js","./node_modules/core-js/es6/map.js","./node_modules/core-js/es6/math.js","./node_modules/core-js/es6/number.js","./node_modules/core-js/es6/object.js","./node_modules/core-js/es6/parse-float.js","./node_modules/core-js/es6/parse-int.js","./node_modules/core-js/es6/reflect.js","./node_modules/core-js/es6/regexp.js","./node_modules/core-js/es6/set.js","./node_modules/core-js/es6/string.js","./node_modules/core-js/es6/symbol.js","./node_modules/core-js/es7/object.js","./node_modules/core-js/es7/reflect.js","./node_modules/core-js/modules/_a-function.js","./node_modules/core-js/modules/_a-number-value.js","./node_modules/core-js/modules/_add-to-unscopables.js","./node_modules/core-js/modules/_advance-string-index.js","./node_modules/core-js/modules/_an-instance.js","./node_modules/core-js/modules/_an-object.js","./node_modules/core-js/modules/_array-copy-within.js","./node_modules/core-js/modules/_array-fill.js","./node_modules/core-js/modules/_array-from-iterable.js","./node_modules/core-js/modules/_array-includes.js","./node_modules/core-js/modules/_array-methods.js","./node_modules/core-js/modules/_array-reduce.js","./node_modules/core-js/modules/_array-species-constructor.js","./node_modules/core-js/modules/_array-species-create.js","./node_modules/core-js/modules/_bind.js","./node_modules/core-js/modules/_classof.js","./node_modules/core-js/modules/_cof.js","./node_modules/core-js/modules/_collection-strong.js","./node_modules/core-js/modules/_collection-weak.js","./node_modules/core-js/modules/_collection.js","./node_modules/core-js/modules/_core.js","./node_modules/core-js/modules/_create-property.js","./node_modules/core-js/modules/_ctx.js","./node_modules/core-js/modules/_date-to-iso-string.js","./node_modules/core-js/modules/_date-to-primitive.js","./node_modules/core-js/modules/_defined.js","./node_modules/core-js/modules/_descriptors.js","./node_modules/core-js/modules/_dom-create.js","./node_modules/core-js/modules/_enum-bug-keys.js","./node_modules/core-js/modules/_enum-keys.js","./node_modules/core-js/modules/_export.js","./node_modules/core-js/modules/_fails-is-regexp.js","./node_modules/core-js/modules/_fails.js","./node_modules/core-js/modules/_fix-re-wks.js","./node_modules/core-js/modules/_flags.js","./node_modules/core-js/modules/_for-of.js","./node_modules/core-js/modules/_function-to-string.js","./node_modules/core-js/modules/_global.js","./node_modules/core-js/modules/_has.js","./node_modules/core-js/modules/_hide.js","./node_modules/core-js/modules/_html.js","./node_modules/core-js/modules/_ie8-dom-define.js","./node_modules/core-js/modules/_inherit-if-required.js","./node_modules/core-js/modules/_invoke.js","./node_modules/core-js/modules/_iobject.js","./node_modules/core-js/modules/_is-array-iter.js","./node_modules/core-js/modules/_is-array.js","./node_modules/core-js/modules/_is-integer.js","./node_modules/core-js/modules/_is-object.js","./node_modules/core-js/modules/_is-regexp.js","./node_modules/core-js/modules/_iter-call.js","./node_modules/core-js/modules/_iter-create.js","./node_modules/core-js/modules/_iter-define.js","./node_modules/core-js/modules/_iter-detect.js","./node_modules/core-js/modules/_iter-step.js","./node_modules/core-js/modules/_iterators.js","./node_modules/core-js/modules/_library.js","./node_modules/core-js/modules/_math-expm1.js","./node_modules/core-js/modules/_math-fround.js","./node_modules/core-js/modules/_math-log1p.js","./node_modules/core-js/modules/_math-sign.js","./node_modules/core-js/modules/_meta.js","./node_modules/core-js/modules/_metadata.js","./node_modules/core-js/modules/_object-assign.js","./node_modules/core-js/modules/_object-create.js","./node_modules/core-js/modules/_object-dp.js","./node_modules/core-js/modules/_object-dps.js","./node_modules/core-js/modules/_object-forced-pam.js","./node_modules/core-js/modules/_object-gopd.js","./node_modules/core-js/modules/_object-gopn-ext.js","./node_modules/core-js/modules/_object-gopn.js","./node_modules/core-js/modules/_object-gops.js","./node_modules/core-js/modules/_object-gpo.js","./node_modules/core-js/modules/_object-keys-internal.js","./node_modules/core-js/modules/_object-keys.js","./node_modules/core-js/modules/_object-pie.js","./node_modules/core-js/modules/_object-sap.js","./node_modules/core-js/modules/_object-to-array.js","./node_modules/core-js/modules/_own-keys.js","./node_modules/core-js/modules/_parse-float.js","./node_modules/core-js/modules/_parse-int.js","./node_modules/core-js/modules/_property-desc.js","./node_modules/core-js/modules/_redefine-all.js","./node_modules/core-js/modules/_redefine.js","./node_modules/core-js/modules/_regexp-exec-abstract.js","./node_modules/core-js/modules/_regexp-exec.js","./node_modules/core-js/modules/_same-value.js","./node_modules/core-js/modules/_set-proto.js","./node_modules/core-js/modules/_set-species.js","./node_modules/core-js/modules/_set-to-string-tag.js","./node_modules/core-js/modules/_shared-key.js","./node_modules/core-js/modules/_shared.js","./node_modules/core-js/modules/_species-constructor.js","./node_modules/core-js/modules/_strict-method.js","./node_modules/core-js/modules/_string-at.js","./node_modules/core-js/modules/_string-context.js","./node_modules/core-js/modules/_string-html.js","./node_modules/core-js/modules/_string-repeat.js","./node_modules/core-js/modules/_string-trim.js","./node_modules/core-js/modules/_string-ws.js","./node_modules/core-js/modules/_to-absolute-index.js","./node_modules/core-js/modules/_to-integer.js","./node_modules/core-js/modules/_to-iobject.js","./node_modules/core-js/modules/_to-length.js","./node_modules/core-js/modules/_to-object.js","./node_modules/core-js/modules/_to-primitive.js","./node_modules/core-js/modules/_uid.js","./node_modules/core-js/modules/_validate-collection.js","./node_modules/core-js/modules/_wks-define.js","./node_modules/core-js/modules/_wks-ext.js","./node_modules/core-js/modules/_wks.js","./node_modules/core-js/modules/core.get-iterator-method.js","./node_modules/core-js/modules/es6.array.copy-within.js","./node_modules/core-js/modules/es6.array.every.js","./node_modules/core-js/modules/es6.array.fill.js","./node_modules/core-js/modules/es6.array.filter.js","./node_modules/core-js/modules/es6.array.find-index.js","./node_modules/core-js/modules/es6.array.find.js","./node_modules/core-js/modules/es6.array.for-each.js","./node_modules/core-js/modules/es6.array.from.js","./node_modules/core-js/modules/es6.array.index-of.js","./node_modules/core-js/modules/es6.array.is-array.js","./node_modules/core-js/modules/es6.array.iterator.js","./node_modules/core-js/modules/es6.array.join.js","./node_modules/core-js/modules/es6.array.last-index-of.js","./node_modules/core-js/modules/es6.array.map.js","./node_modules/core-js/modules/es6.array.of.js","./node_modules/core-js/modules/es6.array.reduce-right.js","./node_modules/core-js/modules/es6.array.reduce.js","./node_modules/core-js/modules/es6.array.slice.js","./node_modules/core-js/modules/es6.array.some.js","./node_modules/core-js/modules/es6.array.sort.js","./node_modules/core-js/modules/es6.array.species.js","./node_modules/core-js/modules/es6.date.now.js","./node_modules/core-js/modules/es6.date.to-iso-string.js","./node_modules/core-js/modules/es6.date.to-json.js","./node_modules/core-js/modules/es6.date.to-primitive.js","./node_modules/core-js/modules/es6.date.to-string.js","./node_modules/core-js/modules/es6.function.bind.js","./node_modules/core-js/modules/es6.function.has-instance.js","./node_modules/core-js/modules/es6.function.name.js","./node_modules/core-js/modules/es6.map.js","./node_modules/core-js/modules/es6.math.acosh.js","./node_modules/core-js/modules/es6.math.asinh.js","./node_modules/core-js/modules/es6.math.atanh.js","./node_modules/core-js/modules/es6.math.cbrt.js","./node_modules/core-js/modules/es6.math.clz32.js","./node_modules/core-js/modules/es6.math.cosh.js","./node_modules/core-js/modules/es6.math.expm1.js","./node_modules/core-js/modules/es6.math.fround.js","./node_modules/core-js/modules/es6.math.hypot.js","./node_modules/core-js/modules/es6.math.imul.js","./node_modules/core-js/modules/es6.math.log10.js","./node_modules/core-js/modules/es6.math.log1p.js","./node_modules/core-js/modules/es6.math.log2.js","./node_modules/core-js/modules/es6.math.sign.js","./node_modules/core-js/modules/es6.math.sinh.js","./node_modules/core-js/modules/es6.math.tanh.js","./node_modules/core-js/modules/es6.math.trunc.js","./node_modules/core-js/modules/es6.number.constructor.js","./node_modules/core-js/modules/es6.number.epsilon.js","./node_modules/core-js/modules/es6.number.is-finite.js","./node_modules/core-js/modules/es6.number.is-integer.js","./node_modules/core-js/modules/es6.number.is-nan.js","./node_modules/core-js/modules/es6.number.is-safe-integer.js","./node_modules/core-js/modules/es6.number.max-safe-integer.js","./node_modules/core-js/modules/es6.number.min-safe-integer.js","./node_modules/core-js/modules/es6.number.parse-float.js","./node_modules/core-js/modules/es6.number.parse-int.js","./node_modules/core-js/modules/es6.number.to-fixed.js","./node_modules/core-js/modules/es6.number.to-precision.js","./node_modules/core-js/modules/es6.object.assign.js","./node_modules/core-js/modules/es6.object.create.js","./node_modules/core-js/modules/es6.object.define-properties.js","./node_modules/core-js/modules/es6.object.define-property.js","./node_modules/core-js/modules/es6.object.freeze.js","./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","./node_modules/core-js/modules/es6.object.get-own-property-names.js","./node_modules/core-js/modules/es6.object.get-prototype-of.js","./node_modules/core-js/modules/es6.object.is-extensible.js","./node_modules/core-js/modules/es6.object.is-frozen.js","./node_modules/core-js/modules/es6.object.is-sealed.js","./node_modules/core-js/modules/es6.object.is.js","./node_modules/core-js/modules/es6.object.keys.js","./node_modules/core-js/modules/es6.object.prevent-extensions.js","./node_modules/core-js/modules/es6.object.seal.js","./node_modules/core-js/modules/es6.object.set-prototype-of.js","./node_modules/core-js/modules/es6.object.to-string.js","./node_modules/core-js/modules/es6.parse-float.js","./node_modules/core-js/modules/es6.parse-int.js","./node_modules/core-js/modules/es6.reflect.apply.js","./node_modules/core-js/modules/es6.reflect.construct.js","./node_modules/core-js/modules/es6.reflect.define-property.js","./node_modules/core-js/modules/es6.reflect.delete-property.js","./node_modules/core-js/modules/es6.reflect.enumerate.js","./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","./node_modules/core-js/modules/es6.reflect.get.js","./node_modules/core-js/modules/es6.reflect.has.js","./node_modules/core-js/modules/es6.reflect.is-extensible.js","./node_modules/core-js/modules/es6.reflect.own-keys.js","./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","./node_modules/core-js/modules/es6.reflect.set.js","./node_modules/core-js/modules/es6.regexp.constructor.js","./node_modules/core-js/modules/es6.regexp.exec.js","./node_modules/core-js/modules/es6.regexp.flags.js","./node_modules/core-js/modules/es6.regexp.match.js","./node_modules/core-js/modules/es6.regexp.replace.js","./node_modules/core-js/modules/es6.regexp.search.js","./node_modules/core-js/modules/es6.regexp.split.js","./node_modules/core-js/modules/es6.regexp.to-string.js","./node_modules/core-js/modules/es6.set.js","./node_modules/core-js/modules/es6.string.anchor.js","./node_modules/core-js/modules/es6.string.big.js","./node_modules/core-js/modules/es6.string.blink.js","./node_modules/core-js/modules/es6.string.bold.js","./node_modules/core-js/modules/es6.string.code-point-at.js","./node_modules/core-js/modules/es6.string.ends-with.js","./node_modules/core-js/modules/es6.string.fixed.js","./node_modules/core-js/modules/es6.string.fontcolor.js","./node_modules/core-js/modules/es6.string.fontsize.js","./node_modules/core-js/modules/es6.string.from-code-point.js","./node_modules/core-js/modules/es6.string.includes.js","./node_modules/core-js/modules/es6.string.italics.js","./node_modules/core-js/modules/es6.string.iterator.js","./node_modules/core-js/modules/es6.string.link.js","./node_modules/core-js/modules/es6.string.raw.js","./node_modules/core-js/modules/es6.string.repeat.js","./node_modules/core-js/modules/es6.string.small.js","./node_modules/core-js/modules/es6.string.starts-with.js","./node_modules/core-js/modules/es6.string.strike.js","./node_modules/core-js/modules/es6.string.sub.js","./node_modules/core-js/modules/es6.string.sup.js","./node_modules/core-js/modules/es6.string.trim.js","./node_modules/core-js/modules/es6.symbol.js","./node_modules/core-js/modules/es6.weak-map.js","./node_modules/core-js/modules/es7.object.define-getter.js","./node_modules/core-js/modules/es7.object.define-setter.js","./node_modules/core-js/modules/es7.object.entries.js","./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","./node_modules/core-js/modules/es7.object.lookup-getter.js","./node_modules/core-js/modules/es7.object.lookup-setter.js","./node_modules/core-js/modules/es7.object.values.js","./node_modules/core-js/modules/es7.reflect.define-metadata.js","./node_modules/core-js/modules/es7.reflect.delete-metadata.js","./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","./node_modules/core-js/modules/es7.reflect.get-metadata.js","./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","./node_modules/core-js/modules/es7.reflect.has-metadata.js","./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","./node_modules/core-js/modules/es7.reflect.metadata.js","./node_modules/core-js/modules/web.dom.iterable.js","./node_modules/@angular/localize/fesm2020/localize.mjs","./node_modules/@angular/localize/fesm2020/init.mjs"],"sourcesContent":["/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","'use strict';\n/**\n * @license Angular v14.2.0-next.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n((function (global) {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class _ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n}))(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n/// \n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = Zone.__symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected :\n forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then(v => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, err => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n ;\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n var _a;\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and invokes\n // it with the `value` context. Otherwise, this will throw an error: `TypeError: Cannot read\n // properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n var _a;\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', delegate => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = buildEventListenerOptions(arguments[2], passive);\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch (_a) {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(name => name.startsWith('on') && name.length > 2)\n .map(name => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement',\n 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker'\n ]);\n const ignoreErrorProperties = isIE() ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest',\n 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket'\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target && target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR\n });\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative.call(window, task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n if (!(options.isPeriodic)) {\n if (typeof options.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[options.handleId];\n }\n else if (options.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n options.handleId[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('queueMicrotask', (global, Zone, api) => {\n api.patchMethod(global, 'queueMicrotask', delegate => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n});\nZone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n});\nZone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n});\nZone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n});\nZone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n});\nZone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n});\nZone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\n","require('../modules/es6.string.iterator');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nmodule.exports = require('../modules/_core').Array;\n","require('../modules/es6.date.now');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-string');\nrequire('../modules/es6.date.to-primitive');\nmodule.exports = Date;\n","require('../modules/es6.function.bind');\nrequire('../modules/es6.function.name');\nrequire('../modules/es6.function.has-instance');\nmodule.exports = require('../modules/_core').Function;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.map');\nmodule.exports = require('../modules/_core').Map;\n","require('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nmodule.exports = require('../modules/_core').Math;\n","require('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nmodule.exports = require('../modules/_core').Number;\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\n\nmodule.exports = require('../modules/_core').Object;\n","require('../modules/es6.parse-float');\nmodule.exports = require('../modules/_core').parseFloat;\n","require('../modules/es6.parse-int');\nmodule.exports = require('../modules/_core').parseInt;\n","require('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core').Reflect;\n","require('../modules/es6.regexp.constructor');\nrequire('../modules/es6.regexp.exec');\nrequire('../modules/es6.regexp.to-string');\nrequire('../modules/es6.regexp.flags');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nmodule.exports = require('../modules/_core').RegExp;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nmodule.exports = require('../modules/_core').Set;\n","require('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nmodule.exports = require('../modules/_core').String;\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","require('../modules/es7.object.get-own-property-descriptors');\nrequire('../modules/es7.object.values');\nrequire('../modules/es7.object.entries');\nrequire('../modules/es7.object.define-getter');\nrequire('../modules/es7.object.define-setter');\nrequire('../modules/es7.object.lookup-getter');\nrequire('../modules/es7.object.lookup-setter');\nmodule.exports = require('../modules/_core').Object;\n","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","'use strict';\n// Forced replacement prototype accessors methods\nmodule.exports = require('./_library') || !require('./_fails')(function () {\n var K = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, K, function () { /* empty */ });\n delete require('./_global')[K];\n});\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","require('./_set-species')('Array');\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter) {\n $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n } while (O = getPrototypeOf(O));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n } while (O = getPrototypeOf(O));\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","/**\n * @license Angular v14.2.12\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { computeMsgId } from '@angular/compiler';\nexport { computeMsgId as ɵcomputeMsgId } from '@angular/compiler';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The character used to mark the start and end of a \"block\" in a `$localize` tagged string.\n * A block can indicate metadata about the message or specify a name of a placeholder for a\n * substitution expressions.\n *\n * For example:\n *\n * ```ts\n * $localize`Hello, ${title}:title:!`;\n * $localize`:meaning|description@@id:source message text`;\n * ```\n */\nconst BLOCK_MARKER$1 = ':';\n/**\n * The marker used to separate a message's \"meaning\" from its \"description\" in a metadata block.\n *\n * For example:\n *\n * ```ts\n * $localize `:correct|Indicates that the user got the answer correct: Right!`;\n * $localize `:movement|Button label for moving to the right: Right!`;\n * ```\n */\nconst MEANING_SEPARATOR = '|';\n/**\n * The marker used to separate a message's custom \"id\" from its \"description\" in a metadata block.\n *\n * For example:\n *\n * ```ts\n * $localize `:A welcome message on the home page@@myApp-homepage-welcome: Welcome!`;\n * ```\n */\nconst ID_SEPARATOR = '@@';\n/**\n * The marker used to separate legacy message ids from the rest of a metadata block.\n *\n * For example:\n *\n * ```ts\n * $localize `:@@custom-id␟2df64767cd895a8fabe3e18b94b5b6b6f9e2e3f0: Welcome!`;\n * ```\n *\n * Note that this character is the \"symbol for the unit separator\" (␟) not the \"unit separator\n * character\" itself, since that has no visual representation. See https://graphemica.com/%E2%90%9F.\n *\n * Here is some background for the original \"unit separator character\":\n * https://stackoverflow.com/questions/8695118/whats-the-file-group-record-unit-separator-control-characters-and-its-usage\n */\nconst LEGACY_ID_INDICATOR = '\\u241F';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Parse a `$localize` tagged string into a structure that can be used for translation or\n * extraction.\n *\n * See `ParsedMessage` for an example.\n */\nfunction parseMessage(messageParts, expressions, location, messagePartLocations, expressionLocations = []) {\n const substitutions = {};\n const substitutionLocations = {};\n const associatedMessageIds = {};\n const metadata = parseMetadata(messageParts[0], messageParts.raw[0]);\n const cleanedMessageParts = [metadata.text];\n const placeholderNames = [];\n let messageString = metadata.text;\n for (let i = 1; i < messageParts.length; i++) {\n const { messagePart, placeholderName = computePlaceholderName(i), associatedMessageId } = parsePlaceholder(messageParts[i], messageParts.raw[i]);\n messageString += `{$${placeholderName}}${messagePart}`;\n if (expressions !== undefined) {\n substitutions[placeholderName] = expressions[i - 1];\n substitutionLocations[placeholderName] = expressionLocations[i - 1];\n }\n placeholderNames.push(placeholderName);\n if (associatedMessageId !== undefined) {\n associatedMessageIds[placeholderName] = associatedMessageId;\n }\n cleanedMessageParts.push(messagePart);\n }\n const messageId = metadata.customId || computeMsgId(messageString, metadata.meaning || '');\n const legacyIds = metadata.legacyIds ? metadata.legacyIds.filter(id => id !== messageId) : [];\n return {\n id: messageId,\n legacyIds,\n substitutions,\n substitutionLocations,\n text: messageString,\n customId: metadata.customId,\n meaning: metadata.meaning || '',\n description: metadata.description || '',\n messageParts: cleanedMessageParts,\n messagePartLocations,\n placeholderNames,\n associatedMessageIds,\n location,\n };\n}\n/**\n * Parse the given message part (`cooked` + `raw`) to extract the message metadata from the text.\n *\n * If the message part has a metadata block this function will extract the `meaning`,\n * `description`, `customId` and `legacyId` (if provided) from the block. These metadata properties\n * are serialized in the string delimited by `|`, `@@` and `␟` respectively.\n *\n * (Note that `␟` is the `LEGACY_ID_INDICATOR` - see `constants.ts`.)\n *\n * For example:\n *\n * ```ts\n * `:meaning|description@@custom-id:`\n * `:meaning|@@custom-id:`\n * `:meaning|description:`\n * `:description@@custom-id:`\n * `:meaning|:`\n * `:description:`\n * `:@@custom-id:`\n * `:meaning|description@@custom-id␟legacy-id-1␟legacy-id-2:`\n * ```\n *\n * @param cooked The cooked version of the message part to parse.\n * @param raw The raw version of the message part to parse.\n * @returns A object containing any metadata that was parsed from the message part.\n */\nfunction parseMetadata(cooked, raw) {\n const { text: messageString, block } = splitBlock(cooked, raw);\n if (block === undefined) {\n return { text: messageString };\n }\n else {\n const [meaningDescAndId, ...legacyIds] = block.split(LEGACY_ID_INDICATOR);\n const [meaningAndDesc, customId] = meaningDescAndId.split(ID_SEPARATOR, 2);\n let [meaning, description] = meaningAndDesc.split(MEANING_SEPARATOR, 2);\n if (description === undefined) {\n description = meaning;\n meaning = undefined;\n }\n if (description === '') {\n description = undefined;\n }\n return { text: messageString, meaning, description, customId, legacyIds };\n }\n}\n/**\n * Parse the given message part (`cooked` + `raw`) to extract any placeholder metadata from the\n * text.\n *\n * If the message part has a metadata block this function will extract the `placeholderName` and\n * `associatedMessageId` (if provided) from the block.\n *\n * These metadata properties are serialized in the string delimited by `@@`.\n *\n * For example:\n *\n * ```ts\n * `:placeholder-name@@associated-id:`\n * ```\n *\n * @param cooked The cooked version of the message part to parse.\n * @param raw The raw version of the message part to parse.\n * @returns A object containing the metadata (`placeholderName` and `associatedMessageId`) of the\n * preceding placeholder, along with the static text that follows.\n */\nfunction parsePlaceholder(cooked, raw) {\n const { text: messagePart, block } = splitBlock(cooked, raw);\n if (block === undefined) {\n return { messagePart };\n }\n else {\n const [placeholderName, associatedMessageId] = block.split(ID_SEPARATOR);\n return { messagePart, placeholderName, associatedMessageId };\n }\n}\n/**\n * Split a message part (`cooked` + `raw`) into an optional delimited \"block\" off the front and the\n * rest of the text of the message part.\n *\n * Blocks appear at the start of message parts. They are delimited by a colon `:` character at the\n * start and end of the block.\n *\n * If the block is in the first message part then it will be metadata about the whole message:\n * meaning, description, id. Otherwise it will be metadata about the immediately preceding\n * substitution: placeholder name.\n *\n * Since blocks are optional, it is possible that the content of a message block actually starts\n * with a block marker. In this case the marker must be escaped `\\:`.\n *\n * @param cooked The cooked version of the message part to parse.\n * @param raw The raw version of the message part to parse.\n * @returns An object containing the `text` of the message part and the text of the `block`, if it\n * exists.\n * @throws an error if the `block` is unterminated\n */\nfunction splitBlock(cooked, raw) {\n if (raw.charAt(0) !== BLOCK_MARKER$1) {\n return { text: cooked };\n }\n else {\n const endOfBlock = findEndOfBlock(cooked, raw);\n return {\n block: cooked.substring(1, endOfBlock),\n text: cooked.substring(endOfBlock + 1),\n };\n }\n}\nfunction computePlaceholderName(index) {\n return index === 1 ? 'PH' : `PH_${index - 1}`;\n}\n/**\n * Find the end of a \"marked block\" indicated by the first non-escaped colon.\n *\n * @param cooked The cooked string (where escaped chars have been processed)\n * @param raw The raw string (where escape sequences are still in place)\n *\n * @returns the index of the end of block marker\n * @throws an error if the block is unterminated\n */\nfunction findEndOfBlock(cooked, raw) {\n for (let cookedIndex = 1, rawIndex = 1; cookedIndex < cooked.length; cookedIndex++, rawIndex++) {\n if (raw[rawIndex] === '\\\\') {\n rawIndex++;\n }\n else if (cooked[cookedIndex] === BLOCK_MARKER$1) {\n return cookedIndex;\n }\n }\n throw new Error(`Unterminated $localize metadata block in \"${raw}\".`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MissingTranslationError extends Error {\n constructor(parsedMessage) {\n super(`No translation found for ${describeMessage(parsedMessage)}.`);\n this.parsedMessage = parsedMessage;\n this.type = 'MissingTranslationError';\n }\n}\nfunction isMissingTranslationError(e) {\n return e.type === 'MissingTranslationError';\n}\n/**\n * Translate the text of the `$localize` tagged-string (i.e. `messageParts` and\n * `substitutions`) using the given `translations`.\n *\n * The tagged-string is parsed to extract its `messageId` which is used to find an appropriate\n * `ParsedTranslation`. If this doesn't match and there are legacy ids then try matching a\n * translation using those.\n *\n * If one is found then it is used to translate the message into a new set of `messageParts` and\n * `substitutions`.\n * The translation may reorder (or remove) substitutions as appropriate.\n *\n * If there is no translation with a matching message id then an error is thrown.\n * If a translation contains a placeholder that is not found in the message being translated then an\n * error is thrown.\n */\nfunction translate$1(translations, messageParts, substitutions) {\n const message = parseMessage(messageParts, substitutions);\n // Look up the translation using the messageId, and then the legacyId if available.\n let translation = translations[message.id];\n // If the messageId did not match a translation, try matching the legacy ids instead\n if (message.legacyIds !== undefined) {\n for (let i = 0; i < message.legacyIds.length && translation === undefined; i++) {\n translation = translations[message.legacyIds[i]];\n }\n }\n if (translation === undefined) {\n throw new MissingTranslationError(message);\n }\n return [\n translation.messageParts, translation.placeholderNames.map(placeholder => {\n if (message.substitutions.hasOwnProperty(placeholder)) {\n return message.substitutions[placeholder];\n }\n else {\n throw new Error(`There is a placeholder name mismatch with the translation provided for the message ${describeMessage(message)}.\\n` +\n `The translation contains a placeholder with name ${placeholder}, which does not exist in the message.`);\n }\n })\n ];\n}\n/**\n * Parse the `messageParts` and `placeholderNames` out of a target `message`.\n *\n * Used by `loadTranslations()` to convert target message strings into a structure that is more\n * appropriate for doing translation.\n *\n * @param message the message to be parsed.\n */\nfunction parseTranslation(messageString) {\n const parts = messageString.split(/{\\$([^}]*)}/);\n const messageParts = [parts[0]];\n const placeholderNames = [];\n for (let i = 1; i < parts.length - 1; i += 2) {\n placeholderNames.push(parts[i]);\n messageParts.push(`${parts[i + 1]}`);\n }\n const rawMessageParts = messageParts.map(part => part.charAt(0) === BLOCK_MARKER$1 ? '\\\\' + part : part);\n return {\n text: messageString,\n messageParts: makeTemplateObject(messageParts, rawMessageParts),\n placeholderNames,\n };\n}\n/**\n * Create a `ParsedTranslation` from a set of `messageParts` and `placeholderNames`.\n *\n * @param messageParts The message parts to appear in the ParsedTranslation.\n * @param placeholderNames The names of the placeholders to intersperse between the `messageParts`.\n */\nfunction makeParsedTranslation(messageParts, placeholderNames = []) {\n let messageString = messageParts[0];\n for (let i = 0; i < placeholderNames.length; i++) {\n messageString += `{$${placeholderNames[i]}}${messageParts[i + 1]}`;\n }\n return {\n text: messageString,\n messageParts: makeTemplateObject(messageParts, messageParts),\n placeholderNames\n };\n}\n/**\n * Create the specialized array that is passed to tagged-string tag functions.\n *\n * @param cooked The message parts with their escape codes processed.\n * @param raw The message parts with their escaped codes as-is.\n */\nfunction makeTemplateObject(cooked, raw) {\n Object.defineProperty(cooked, 'raw', { value: raw });\n return cooked;\n}\nfunction describeMessage(message) {\n const meaningString = message.meaning && ` - \"${message.meaning}\"`;\n const legacy = message.legacyIds && message.legacyIds.length > 0 ?\n ` [${message.legacyIds.map(l => `\"${l}\"`).join(', ')}]` :\n '';\n return `\"${message.id}\"${legacy} (\"${message.text}\"${meaningString})`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Load translations for use by `$localize`, if doing runtime translation.\n *\n * If the `$localize` tagged strings are not going to be replaced at compiled time, it is possible\n * to load a set of translations that will be applied to the `$localize` tagged strings at runtime,\n * in the browser.\n *\n * Loading a new translation will overwrite a previous translation if it has the same `MessageId`.\n *\n * Note that `$localize` messages are only processed once, when the tagged string is first\n * encountered, and does not provide dynamic language changing without refreshing the browser.\n * Loading new translations later in the application life-cycle will not change the translated text\n * of messages that have already been translated.\n *\n * The message IDs and translations are in the same format as that rendered to \"simple JSON\"\n * translation files when extracting messages. In particular, placeholders in messages are rendered\n * using the `{$PLACEHOLDER_NAME}` syntax. For example the message from the following template:\n *\n * ```html\n *
preinner-preboldinner-postpost
\n * ```\n *\n * would have the following form in the `translations` map:\n *\n * ```ts\n * {\n * \"2932901491976224757\":\n * \"pre{$START_TAG_SPAN}inner-pre{$START_BOLD_TEXT}bold{$CLOSE_BOLD_TEXT}inner-post{$CLOSE_TAG_SPAN}post\"\n * }\n * ```\n *\n * @param translations A map from message ID to translated message.\n *\n * These messages are processed and added to a lookup based on their `MessageId`.\n *\n * @see `clearTranslations()` for removing translations loaded using this function.\n * @see `$localize` for tagging messages as needing to be translated.\n * @publicApi\n */\nfunction loadTranslations(translations) {\n // Ensure the translate function exists\n if (!$localize.translate) {\n $localize.translate = translate;\n }\n if (!$localize.TRANSLATIONS) {\n $localize.TRANSLATIONS = {};\n }\n Object.keys(translations).forEach(key => {\n $localize.TRANSLATIONS[key] = parseTranslation(translations[key]);\n });\n}\n/**\n * Remove all translations for `$localize`, if doing runtime translation.\n *\n * All translations that had been loading into memory using `loadTranslations()` will be removed.\n *\n * @see `loadTranslations()` for loading translations at runtime.\n * @see `$localize` for tagging messages as needing to be translated.\n *\n * @publicApi\n */\nfunction clearTranslations() {\n $localize.translate = undefined;\n $localize.TRANSLATIONS = {};\n}\n/**\n * Translate the text of the given message, using the loaded translations.\n *\n * This function may reorder (or remove) substitutions as indicated in the matching translation.\n */\nfunction translate(messageParts, substitutions) {\n try {\n return translate$1($localize.TRANSLATIONS, messageParts, substitutions);\n }\n catch (e) {\n console.warn(e.message);\n return [messageParts, substitutions];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Always use __globalThis if available, which is the spec-defined global variable across all\n// environments, then fallback to __global first, because in Node tests both __global and\n// __window may be defined and _global should be __global in that case. Note: Typeof/Instanceof\n// checks are considered side-effects in Terser. We explicitly mark this as side-effect free:\n// https://github.com/terser/terser/issues/250.\nconst _global = ( /* @__PURE__ */(() => (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof global !== 'undefined' && global) || (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self))());\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Tag a template literal string for localization.\n *\n * For example:\n *\n * ```ts\n * $localize `some string to localize`\n * ```\n *\n * **Providing meaning, description and id**\n *\n * You can optionally specify one or more of `meaning`, `description` and `id` for a localized\n * string by pre-pending it with a colon delimited block of the form:\n *\n * ```ts\n * $localize`:meaning|description@@id:source message text`;\n *\n * $localize`:meaning|:source message text`;\n * $localize`:description:source message text`;\n * $localize`:@@id:source message text`;\n * ```\n *\n * This format is the same as that used for `i18n` markers in Angular templates. See the\n * [Angular i18n guide](guide/i18n-common-prepare#mark-text-in-component-template).\n *\n * **Naming placeholders**\n *\n * If the template literal string contains expressions, then the expressions will be automatically\n * associated with placeholder names for you.\n *\n * For example:\n *\n * ```ts\n * $localize `Hi ${name}! There are ${items.length} items.`;\n * ```\n *\n * will generate a message-source of `Hi {$PH}! There are {$PH_1} items`.\n *\n * The recommended practice is to name the placeholder associated with each expression though.\n *\n * Do this by providing the placeholder name wrapped in `:` characters directly after the\n * expression. These placeholder names are stripped out of the rendered localized string.\n *\n * For example, to name the `items.length` expression placeholder `itemCount` you write:\n *\n * ```ts\n * $localize `There are ${items.length}:itemCount: items`;\n * ```\n *\n * **Escaping colon markers**\n *\n * If you need to use a `:` character directly at the start of a tagged string that has no\n * metadata block, or directly after a substitution expression that has no name you must escape\n * the `:` by preceding it with a backslash:\n *\n * For example:\n *\n * ```ts\n * // message has a metadata block so no need to escape colon\n * $localize `:some description::this message starts with a colon (:)`;\n * // no metadata block so the colon must be escaped\n * $localize `\\:this message starts with a colon (:)`;\n * ```\n *\n * ```ts\n * // named substitution so no need to escape colon\n * $localize `${label}:label:: ${}`\n * // anonymous substitution so colon must be escaped\n * $localize `${label}\\: ${}`\n * ```\n *\n * **Processing localized strings:**\n *\n * There are three scenarios:\n *\n * * **compile-time inlining**: the `$localize` tag is transformed at compile time by a\n * transpiler, removing the tag and replacing the template literal string with a translated\n * literal string from a collection of translations provided to the transpilation tool.\n *\n * * **run-time evaluation**: the `$localize` tag is a run-time function that replaces and\n * reorders the parts (static strings and expressions) of the template literal string with strings\n * from a collection of translations loaded at run-time.\n *\n * * **pass-through evaluation**: the `$localize` tag is a run-time function that simply evaluates\n * the original template literal string without applying any translations to the parts. This\n * version is used during development or where there is no need to translate the localized\n * template literals.\n *\n * @param messageParts a collection of the static parts of the template string.\n * @param expressions a collection of the values of each placeholder in the template string.\n * @returns the translated string, with the `messageParts` and `expressions` interleaved together.\n *\n * @globalApi\n * @publicApi\n */\nconst $localize$1 = function (messageParts, ...expressions) {\n if ($localize$1.translate) {\n // Don't use array expansion here to avoid the compiler adding `__read()` helper unnecessarily.\n const translation = $localize$1.translate(messageParts, expressions);\n messageParts = translation[0];\n expressions = translation[1];\n }\n let message = stripBlock(messageParts[0], messageParts.raw[0]);\n for (let i = 1; i < messageParts.length; i++) {\n message += expressions[i - 1] + stripBlock(messageParts[i], messageParts.raw[i]);\n }\n return message;\n};\nconst BLOCK_MARKER = ':';\n/**\n * Strip a delimited \"block\" from the start of the `messagePart`, if it is found.\n *\n * If a marker character (:) actually appears in the content at the start of a tagged string or\n * after a substitution expression, where a block has not been provided the character must be\n * escaped with a backslash, `\\:`. This function checks for this by looking at the `raw`\n * messagePart, which should still contain the backslash.\n *\n * @param messagePart The cooked message part to process.\n * @param rawMessagePart The raw message part to check.\n * @returns the message part with the placeholder name stripped, if found.\n * @throws an error if the block is unterminated\n */\nfunction stripBlock(messagePart, rawMessagePart) {\n return rawMessagePart.charAt(0) === BLOCK_MARKER ?\n messagePart.substring(findEndOfBlock(messagePart, rawMessagePart) + 1) :\n messagePart;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport { clearTranslations, loadTranslations, $localize$1 as ɵ$localize, MissingTranslationError as ɵMissingTranslationError, _global as ɵ_global, findEndOfBlock as ɵfindEndOfBlock, isMissingTranslationError as ɵisMissingTranslationError, makeParsedTranslation as ɵmakeParsedTranslation, makeTemplateObject as ɵmakeTemplateObject, parseMessage as ɵparseMessage, parseMetadata as ɵparseMetadata, parseTranslation as ɵparseTranslation, splitBlock as ɵsplitBlock, translate$1 as ɵtranslate };\n","/**\n * @license Angular v14.2.12\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵ_global, ɵ$localize } from '@angular/localize';\nexport { ɵ$localize as $localize } from '@angular/localize';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Attach $localize to the global context, as a side-effect of this module.\nɵ_global.$localize = ɵ$localize;\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,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,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273]}