{"version":3,"sources":["webpack:///./node_modules/ahoy.js/dist/ahoy.esm.js","webpack:///./node_modules/@ericblade/quagga2/dist/quagga.min.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/ua-parser-js/src/ua-parser.js","webpack:///./node_modules/stimulus_reflex/node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","webpack:///./node_modules/stimulus_reflex/dist/stimulus_reflex.js","webpack:///./node_modules/@rails/request.js/src/fetch_response.js","webpack:///./node_modules/@rails/request.js/src/request_interceptor.js","webpack:///./node_modules/@rails/request.js/src/lib/utils.js","webpack:///./node_modules/@rails/request.js/src/fetch_request.js","webpack:///./node_modules/@rails/request.js/src/verbs.js","webpack:///./node_modules/stimulus-use/dist/support/index.js","webpack:///./node_modules/stimulus-use/dist/use-intersection/use-intersection.js","webpack:///./node_modules/stimulus-use/dist/use-intersection/intersection-controller.js","webpack:///./node_modules/stimulus-use/dist/use-lazy-load/useLazyLoad.js","webpack:///./node_modules/stimulus-use/dist/use-lazy-load/lazy-load-controller.js","webpack:///./node_modules/stimulus-use/dist/use-resize/use-resize.js","webpack:///./node_modules/stimulus-use/dist/use-resize/resize-controller.js","webpack:///./node_modules/stimulus-use/dist/use-click-outside/use-click-outside.js","webpack:///./node_modules/stimulus-use/dist/use-click-outside/click-outside-controller.js","webpack:///./node_modules/stimulus-use/dist/stimulus_use.js","webpack:///./node_modules/stimulus-use/dist/use-dispatch/use-dispatch.js","webpack:///./node_modules/stimulus-use/dist/use-application/application-controller.js","webpack:///./node_modules/stimulus-use/dist/use-idle/use-idle.js","webpack:///./node_modules/stimulus-use/dist/use-idle/idle-controller.js","webpack:///./node_modules/stimulus-use/dist/use-visibility/use-visibility.js","webpack:///./node_modules/stimulus-use/dist/use-visibility/visibility-controller.js","webpack:///./node_modules/stimulus-use/dist/use-window-resize/window-resize-controller.js","webpack:///./node_modules/stimulus-use/dist/use-debounce/use-debounce.js","webpack:///./node_modules/stimulus-use/dist/use-throttle/use-throttle.js"],"names":["Cookies","name","value","ttl","domain","expires","cookieDomain","date","Date","setTime","getTime","toGMTString","document","cookie","escape","i","c","nameEQ","ca","split","length","charAt","substring","indexOf","unescape","config","urlPrefix","visitsUrl","eventsUrl","page","platform","useBeacon","startOnReady","trackVisits","cookies","headers","visitParams","withCredentials","visitDuration","visitorDuration","ahoy","window","Ahoy","configure","options","key","hasOwnProperty","visitId","visitorId","track","callback","$","jQuery","Zepto","isReady","queue","canStringify","JSON","stringify","eventQueue","canTrackNow","trackNow","obj","Object","keys","navigator","sendBeacon","setCookie","getCookie","destroyCookie","log","message","console","setReady","shift","matchesSelector","element","selector","matches","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","apply","parentElement","onEvent","eventName","addEventListener","e","matchedElement","target","call","generateId","replace","r","Math","random","toString","saveEventQueue","csrfToken","meta","querySelector","content","CSRFProtection","xhr","token","setRequestHeader","sendRequest","url","data","success","ajax","type","contentType","dataType","beforeSend","xhrFields","XMLHttpRequest","header","open","onload","status","send","eventData","event","events","visit_token","visitor_token","trackEvent","ready","id","splice","trackEventNow","param","events_json","object","FormData","append","serialize","location","pathname","presence","str","eventProperties","cleanObject","tag","this","tagName","toLowerCase","className","section","getClosestSection","parentNode","hasAttribute","getAttribute","createVisit","getVisitId","getVisitorId","landing_page","href","screen_width","screen","width","screen_height","height","js","referrer","push","getVisitToken","getVisitorToken","reset","debug","enabled","properties","time","setTimeout","trackView","additionalProperties","title","propName","trackClicks","undefined","text","textContent","innerText","innerHTML","trim","trackSubmits","trackChanges","trackAll","parse","start","readyState","_typeof","Symbol","iterator","constructor","prototype","t","n","exports","o","l","m","d","defineProperty","enumerable","get","toStringTag","__esModule","create","bind","default","p","s","configurable","writable","ReferenceError","setPrototypeOf","getPrototypeOf","__proto__","TypeError","EPSILON","clone","fromValues","copy","set","equals","exactEquals","add","subtract","sub","multiply","mul","divide","div","inverse","min","max","rotate","floor","ceil","round","scale","scaleAndAdd","distance","dist","squaredDistance","sqrDist","len","squaredLength","sqrLen","negate","normalize","dot","cross","lerp","transformMat2","transformMat2d","transformMat3","transformMat4","forEach","limit","a","init","shuffle","toPointList","reduce","concat","join","threshold","maxIndex","sum","v","y","g","x","_","b","O","rad","vec","u","cos","sin","fits","abs","point","getPoints","getCenter","f","toVec2","toVec3","h","Int32Array","arguments","score","item","Number","MAX_VALUE","singleChannel","size","sqrt","unshift","small","medium","large","w","top","unit","right","bottom","left","parseFloat","sx","sy","sw","sh","Error","Uint8Array","indexMapping","PI","m00","m01","m10","m11","m02","m20","theta","isNaN","atan","Uint8ClampedArray","getContext","getImageData","getAsRGBA","ImageData","putImageData","Reflect","getOwnPropertyDescriptor","Array","isArray","drawRect","strokeStyle","color","fillStyle","lineWidth","beginPath","strokeRect","drawPath","moveTo","lineTo","closePath","stroke","drawImage","self","Function","done","Promise","resolve","then","searchDirections","cy","dir","cx","next","prev","trace","contourTracing","ctx","binary","dom","R","C","box","halfSample","invert","E","subImageAsCopy","skeletonize","M","j","index","pos","moments","patchSize","ArrayBuffer","useWorker","createElement","locate","zeroBorder","rasterize","count","map","val","label","sort","filter","checkImageConstraints","getWidth","getHeight","getConfig","area","setTopRight","setCanvasSize","setWidth","setHeight","clear","delete","has","__data__","propertyIsEnumerable","test","determinant","transpose","identity","adjoint","frob","ldu","webpackPolyfill","deprecate","paths","children","nodeType","Buffer","isBuffer","isTypedArray","slice","from","Float32Array","angle","transformQuat","rotateX","rotateY","rotateZ","Map","createContour2D","firstVertex","insideContours","nextpeer","prevpeer","CONTOUR_DIR","CW_DIR","CCW_DIR","UNKNOWN_DIR","DIR","OUTSIDE_EDGE","INSIDE_EDGE","cc","drawContour","imul","pop","RegExp","exec","IE_PROTO","hash","string","S","A","allocUnsafe","buffer","byteOffset","byteLength","process","require","types","binding","String","now","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","assign","return","acos","asyncIterator","_invoke","method","arg","delegate","sent","_sent","dispatchException","abrupt","wrap","__await","resultName","nextLoc","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","displayName","isGeneratorFunction","mark","awrap","AsyncIterator","async","reverse","values","stop","rval","complete","finish","catch","delegateYield","regeneratorRuntime","charCodeAt","cache","Cache","isConcatSpreadable","construct","sham","Proxy","Boolean","valueOf","pow","Dt","ee","ne","Ot","rt","P","kt","H","K","Mt","st","ht","ut","B","gt","vt","it","getBarcodeLine","line","toBinaryLine","printFrequency","printPattern","fillColor","fillRect","Forward","Reverse","_row","supplements","SINGLE_CODE_ERROR","decode","direction","end","format","FORMAT","_nextUnset","StartNotFoundException","CodeNotFoundException","PatternNotFoundException","k","bar","space","error","code","correction","_correct","CODE_PATTERN","_matchPattern","AVG_CODE_ERROR","calculateCorrection","MODULE_INDICES","_correctBars","_nextSet","START_CODE_A","START_CODE_C","_findStart","CODE_A","START_CODE_B","CODE_B","CODE_C","_decodeCode","STOP_CODE","fromCharCode","CODE_SHIFT","_verifyTrailingWhitespace","codeset","startInfo","decodedCodes","endInfo","_matchRange","D","getOwnPropertySymbols","T","getOwnPropertyDescriptors","defineProperties","I","z","U","L","N","fill","_findPattern","_calculateFirstDigit","STOP_PATTERN","_decodePayload","_findEnd","_checksum","_decodeExtensions","supplement","W","F","q","Uint16Array","G","V","_toPattern","_findNextWidth","_toCounters","_patternToChar","X","Q","Z","Y","match","_checkChecksum","tt","et","nt","J","_counters","_computeAlternatingThreshold","_isStartEnd","_sumCounters","startCounter","endCounter","_calculatePatternLength","narrow","counts","wide","_charToPattern","_thresholdResultPattern","_fillCounters","_verifyWhitespace","_validateResult","ot","at","ct","parseInt","lt","ft","dt","Ft","pt","_determineParity","CODE_FREQUENCY","_convertToUPCA","yt","normalizeBarSpaceWidth","MAX_CORRECTION_FACTOR","barSpaceRatio","START_PATTERN","_decodePair","_verifyCounterLength","_t","mt","bt","wt","xt","Ct","Et","Rt","warn","_matchCheckChar","_verifyEnd","_verifyChecksums","_decodeExtended","At","St","_decodeCode32","Pt","code_128_reader","ean_reader","ean_5_reader","ean_2_reader","ean_8_reader","code_39_reader","code_39_vin_reader","codabar_reader","upc_reader","upc_e_reader","i2of5_reader","code_93_reader","code_32_reader","registerReader","readers","decodePattern","codeResult","barcodeLine","atan2","inImageWithBorder","pattern","decodeFromBoundingBox","decodeFromBoundingBoxes","multiple","barcodes","decodeFromImage","decodeImage","setReaders","Tt","subscribers","subscribe","publish","once","unsubscribe","jt","It","zt","Ut","Lt","Nt","Bt","Vt","Wt","qt","Gt","mediaDevices","enumerateDevices","reject","Ht","getUserMedia","Xt","videoWidth","videoHeight","Qt","Yt","setAttribute","srcObject","play","$t","minAspectRatio","aspectRatio","facing","facingMode","Zt","deviceId","audio","video","Kt","kind","Jt","getVideoTracks","te","requestedVideoElement","request","release","pause","enumerateVideoDevices","getActiveStreamLabel","getActiveTrack","capacity","capture","some","every","blacklist","addResult","frame","toDataURL","getResults","re","inputStream","constraints","numOfWorkers","decoder","locator","oe","ie","ue","ae","ce","se","HTMLElement","nodeName","fe","canvas","context","he","de","pe","FileReader","result","readAsArrayBuffer","ve","responseType","onreadystatechange","DONE","response","onerror","ye","DataView","getUint8","ge","getUint16","getUint32","xe","_e","me","loaded","load","notLoaded","addImage","substr","lastIndexOf","src","img","tags","Image","be","we","createVideoStream","getRealWidth","getRealHeight","setInputStream","ended","setCurrentTime","clearEventHandlers","removeEventListener","trigger","getTopRight","getCanvasSize","getFrame","createLiveStream","createImageStream","sequence","orientation","Oe","Re","Ce","Ee","attachData","getData","grab","translate","getSize","Me","Se","Ae","ke","Pe","De","postMessage","imageData","onmessage","cmd","ImageWrapper","onProcessed","reader","Te","__factorySource__","Blob","URL","createObjectURL","worker","Worker","busy","revokeObjectURL","je","terminate","Ie","ze","initCanvas","framegrabber","canvasContainer","image","initializeData","onUIThread","inputImageWrapper","locateAndDecode","boxSize","initBuffers","overlay","contains","appendChild","le","getViewPort","canRecord","transformResult","boxes","resultCollector","hasCodeResult","getBoundingBoxes","publishResult","frequency","stopped","update","performance","startContinuousUpdate","Ue","Le","Ne","_e2","initInputStream","onDetected","offDetected","offProcessed","registerResultCollector","decodeSingle","Readers","CameraAccess","ImageDebug","ResultCollector","module","__webpack_amd_options__","factory","hookCallback","hooks","input","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isNumber","isDate","arr","fn","res","arrLen","extend","createUTC","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","_d","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","momentProperties","updateInProgress","copyConfig","to","prop","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","firstTime","deprecationHandler","args","argLen","stack","deprecations","deprecateSimple","isFunction","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","func","localeData","formatMoment","expandFormat","array","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","getLocale","defineLocale","abbr","_config","parentLocale","names","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","orderLen","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","model","diff","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","period","tmp","addSubtract","isAdding","invalid","isString","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","property","objectTest","propertyTest","propertyLen","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","prioritizedLen","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SONY","XIAOMI","ZEBRA","FACEBOOK","enumerize","enums","str1","str2","lowerize","rgxMapper","ua","arrays","props","strMapper","windowsVersionMap","browser","cpu","device","engine","EDGE","os","UAParser","extensions","getResult","_ua","userAgent","_rgxmap","mergedRegexes","getBrowser","_browser","major","getCPU","_cpu","getDevice","_device","getEngine","_engine","getOS","_os","getUA","setUA","CPU","DEVICE","ENGINE","OS","parser","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","adapters","logger","WebSocket","_adapters$logger","_len","messages","_key","secondsSince","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","isRunning","startedAt","stoppedAt","startPolling","staleThreshold","stopPolling","pingedAt","recordPing","disconnectedAt","poll","clearTimeout","pollTimeout","_this","reconnectIfStale","getPollInterval","_this$constructor","reconnectionBackoffRate","connectionIsStale","refreshedAt","disconnectedRecently","reopen","_this2","visibilityState","isOpen","INTERNAL","message_types","welcome","disconnect","ping","confirmation","rejection","protocols","supportedProtocols","Connection","consumer","subscriptions","monitor","disconnected","webSocket","isActive","getState","uninstallEventHandlers","installEventHandlers","_ref","allowReconnect","close","reopenDelay","protocol","isState","getProtocol","_len2","states","_key2","state","handler","isProtocolSupported","_JSON$parse","identifier","reason","reconnect","recordConnect","reload","confirmSubscription","notify","recordDisconnect","notifyAll","willAttemptReconnect","Subscription","params","mixin","action","command","remove","SubscriptionGuarantor","pendingSubscriptions","subscription","startGuaranteeing","stopGuaranteeing","retrySubscribing","retryTimeout","_this3","Subscriptions","guarantor","channelName","channel","ensureActiveConnection","forget","findAll","sendCommand","_this4","_this5","callbackName","_this6","_len3","_key3","_len4","_key4","guarantee","_this7","Consumer","_url","createWebSocketURL","head","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","_assertThisInitialized","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_s","_arr","_n","err","_iterableToArrayLimit","_nonIterableRest","minLen","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","Toastify","oldestFirst","node","destination","newWindow","gravity","positionLeft","position","backgroundColor","avatar","stopOnFocus","onClick","escapeMarkup","ariaLive","style","background","toastElement","_rootElement","body","_init","_buildToast","getElementById","ShadowRoot","insertBefore","firstChild","_reposition","timeOutValue","_removeElement","divElement","Node","ELEMENT_NODE","avatarElement","insertAdjacentElement","closeElement","stopPropagation","innerWidth","_getAxisOffsetAValue","xOffset","yOffset","transform","removeChild","classUsed","topLeftOffsetSize","topRightOffsetSize","offsetSize","allToasts","querySelectorAll","classList","offsetHeight","axis","setupToastify","documentElement","styles","operations","stimulusReflexVersionMismatch","operation","info","level","showToast","lastReflex","deprecationWarnings","Deprecate","disabled","debugging","Debug$1","defaultSchema","reflexAttribute","reflexPermanentAttribute","reflexRootAttribute","reflexSuppressLoggingAttribute","reflexDatasetAttribute","reflexDatasetAllAttribute","reflexSerializeFormAttribute","reflexFormSelectorAttribute","reflexIncludeInnerHtmlAttribute","reflexIncludeTextContentAttribute","schema","Schema","application","_loop","attribute","attributeName","debounce","dispatch","xpathToElement","xpathToElementArray","uuidv4","crypto","msCrypto","getRandomValues","serializeForm","form","formData","encodeURIComponent","submitButton","camelize","uppercaseFirstLetter","$1","XPathToElement","XPathToArray","emitEvent","detail","elementToXPath","ix","siblings","childNodes","sibling","computedPath","ixInc","elementInvalid","validity","badInput","getReflexElement","getReflexOptions","includes","opts","stages","reflexes","fromEntries","entries","_ref2","stage","invokeLifecycleMethod","reflex","specificLifecycleMethod","controller","genericLifecycleMethod","payload","dispatchLifecycleEvent","lifecycle","bubbles","cancelable","dispatchEvent","CustomEvent","warned","active","app","App","isolationMode","IsolationMode","Reflex","reflexElement","morph","timestamp","cloned","promise","cableReady","mismatch","reflexData","reflexOperations","stimulusReflex","_reflexData","controllerElement","xpathController","xpathElement","reflexController","reflexError","getControllerForElementAndIdentifier","getPromise","totalOperations","pendingOperations","completedOperations","piggybackOperations","perform","reflexId","connected","connectionStatusClass","queued","rejected","Debug","list","ActionCableTransport","createConsumer","StimulusReflex","received","deliver","initialize","consumerValue","paramsValue","progress","Log","suppressLogging","attributeValue","Set","attributeValues","extractElementAttributes","attrs","attributes","memo","attr","checked","selected","tag_name","multipleInstances","collectedOptions","elem","collectCheckedOptions","getElementsFromTokens","elements","xPath","extractDataAttributes","startsWith","packageInfo","ReflexData","permanentAttributeName","tabId","_attrs","_id","_selectors","reflexRoot","selectors","closest","getReflexRoots","dataset","allDataset","allTokens","datasetElements","datasetAllElements","datasetAttributes","elementDataset","_dataset","reflexDataset","reflexDatasetAll","acc","ele","datasetAll","elementAttributes","includeInnerHtml","includeTextContent","reflexFormSelector","reflexIncludeInnerHtml","reflexIncludeTextContent","reflexSuppressLogging","resolveLate","inner_html","text_content","formSelector","transport","Transport","plugin","newTransport","beforeDOMUpdate","nothing","halted","forbidden","localReflexControllers","allReflexControllers","controllers","findControllerByReflexName","reflexName","find","reflexNameToControllerIdentifier","scanForReflexes","scanForReflexesOnElement","controllerAttribute","reflexAttributeNames","actionAttribute","actions","potentialControllers","controllerName","controllerValue","actionValue","emitReadyEvent","StimulusReflexController","_Controller","subClass","superClass","_inherits","_super","register","stimulate","reflexPermanent","check","reflexSerializeForm","__perform","preventDefault","_ref8","_ref9","_ref5","eventType","eventTypes","freeze","_ref6","isolate","observer","MutationObserver","observe","attributeFilter","childList","subtree","useReflex","global","asyncGeneratorStep","gen","_next","_throw","FetchResponse","_renderTurboStream","redirected","ok","statusCode","responseJson","json","responseText","_callee","_context","isTurboStream","Turbo","t0","t1","renderStreamMessage","RequestInterceptor","interceptor","metaContent","mergeEntries","searchParams","_step","_iterator","allowArrayLike","normalCompletion","didErr","step","_e3","_createForOfIteratorHelper","_ref4","File","FetchRequest","originalUrl","_perform","requestInterceptor","fetch","fetchOptions","t2","unauthenticated","authenticationURL","renderTurboStream","additionalHeaders","formattedBody","signal","credentials","redirect","compact","Accept","accept","decodeURIComponent","responseKind","originalQuery","URLSearchParams","requestQuery","query","bodyIsAString","_x","_x2","_get","post","_x3","_x4","_post","_callee2","_context2","patch","_x7","_x8","_patch","_callee4","_context4","methodName","composeEventName","eventPrefix","composedName","extendedEvent","composed","originalEvent","isElementInViewport","el","rect","getBoundingClientRect","innerHeight","clientHeight","clientWidth","defaultOptions","onlyVisible","_Object$assign","targetElement","clickOutside","clickOutsideEvent","unobserve","controllerDisconnect","StimulusUse","functionName","groupCollapsed","controllerId","groupEnd","stimulusUseDebug","controllerInitialize","controllerConnect","connect","_StimulusUse","UseDispatch","_b","_c","_assertThisInitialize","eventNameWithPrefix","enhanceController","useDispatch","initialState","UseVisibility","isVisible","hidden","handleVisibilityChange","becomesInvisible","invisible","becomesVisible","visible","visibilityEvent","DebounceController","debounces","ThrottleController","trottles"],"mappings":"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,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG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","file":"js/vendors~application~conversation~peach~public_pages~unsigned~widget-8c07a595e17a441a2bfc.chunk.js","sourcesContent":["/*!\n * Ahoy.js\n * Simple, powerful JavaScript analytics\n * https://github.com/ankane/ahoy.js\n * v0.3.9\n * MIT License\n */\n// https://www.quirksmode.org/js/cookies.html\nvar Cookies = {\n set: function set(name, value, ttl, domain) {\n var expires = \"\";\n var cookieDomain = \"\";\n\n if (ttl) {\n var date = new Date();\n date.setTime(date.getTime() + ttl * 60 * 1000);\n expires = \"; expires=\" + date.toGMTString();\n }\n\n if (domain) {\n cookieDomain = \"; domain=\" + domain;\n }\n\n document.cookie = name + \"=\" + escape(value) + expires + cookieDomain + \"; path=/\";\n },\n get: function get(name) {\n var i, c;\n var nameEQ = name + \"=\";\n var ca = document.cookie.split(';');\n\n for (i = 0; i < ca.length; i++) {\n c = ca[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) {\n return unescape(c.substring(nameEQ.length, c.length));\n }\n }\n\n return null;\n }\n};\nvar config = {\n urlPrefix: \"\",\n visitsUrl: \"/ahoy/visits\",\n eventsUrl: \"/ahoy/events\",\n page: null,\n platform: \"Web\",\n useBeacon: true,\n startOnReady: true,\n trackVisits: true,\n cookies: true,\n cookieDomain: null,\n headers: {},\n visitParams: {},\n withCredentials: false,\n visitDuration: 4 * 60,\n // default 4 hours\n visitorDuration: 2 * 365 * 24 * 60 // default 2 years\n\n};\nvar ahoy = window.ahoy || window.Ahoy || {};\n\nahoy.configure = function (options) {\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n config[key] = options[key];\n }\n }\n}; // legacy\n\n\nahoy.configure(ahoy);\nvar $ = window.jQuery || window.Zepto || window.$;\nvar visitId, visitorId, track;\nvar isReady = false;\nvar queue = [];\nvar canStringify = typeof JSON !== \"undefined\" && typeof JSON.stringify !== \"undefined\";\nvar eventQueue = [];\n\nfunction visitsUrl() {\n return config.urlPrefix + config.visitsUrl;\n}\n\nfunction eventsUrl() {\n return config.urlPrefix + config.eventsUrl;\n}\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction canTrackNow() {\n return (config.useBeacon || config.trackNow) && isEmpty(config.headers) && canStringify && typeof window.navigator.sendBeacon !== \"undefined\" && !config.withCredentials;\n}\n\nfunction serialize(object) {\n var data = new FormData();\n\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n data.append(key, object[key]);\n }\n }\n\n return data;\n} // cookies\n\n\nfunction setCookie(name, value, ttl) {\n Cookies.set(name, value, ttl, config.cookieDomain || config.domain);\n}\n\nfunction getCookie(name) {\n return Cookies.get(name);\n}\n\nfunction destroyCookie(name) {\n Cookies.set(name, \"\", -1);\n}\n\nfunction log(message) {\n if (getCookie(\"ahoy_debug\")) {\n window.console.log(message);\n }\n}\n\nfunction setReady() {\n var callback;\n\n while (callback = queue.shift()) {\n callback();\n }\n\n isReady = true;\n}\n\nahoy.ready = function (callback) {\n if (isReady) {\n callback();\n } else {\n queue.push(callback);\n }\n};\n\nfunction matchesSelector(element, selector) {\n var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;\n\n if (matches) {\n if (matches.apply(element, [selector])) {\n return element;\n } else if (element.parentElement) {\n return matchesSelector(element.parentElement, selector);\n }\n\n return null;\n } else {\n log(\"Unable to match\");\n return null;\n }\n}\n\nfunction onEvent(eventName, selector, callback) {\n document.addEventListener(eventName, function (e) {\n var matchedElement = matchesSelector(e.target, selector);\n\n if (matchedElement) {\n callback.call(matchedElement, e);\n }\n });\n} // http://beeker.io/jquery-document-ready-equivalent-vanilla-javascript\n\n\nfunction documentReady(callback) {\n if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n setTimeout(callback, 0);\n } else {\n document.addEventListener(\"DOMContentLoaded\", callback);\n }\n} // https://stackoverflow.com/a/2117523/1177228\n\n\nfunction generateId() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n\nfunction saveEventQueue() {\n if (config.cookies && canStringify) {\n setCookie(\"ahoy_events\", JSON.stringify(eventQueue), 1);\n }\n} // from rails-ujs\n\n\nfunction csrfToken() {\n var meta = document.querySelector(\"meta[name=csrf-token]\");\n return meta && meta.content;\n}\n\nfunction csrfParam() {\n var meta = document.querySelector(\"meta[name=csrf-param]\");\n return meta && meta.content;\n}\n\nfunction CSRFProtection(xhr) {\n var token = csrfToken();\n\n if (token) {\n xhr.setRequestHeader(\"X-CSRF-Token\", token);\n }\n}\n\nfunction sendRequest(url, data, success) {\n if (canStringify) {\n if ($ && $.ajax) {\n $.ajax({\n type: \"POST\",\n url: url,\n data: JSON.stringify(data),\n contentType: \"application/json; charset=utf-8\",\n dataType: \"json\",\n beforeSend: CSRFProtection,\n success: success,\n headers: config.headers,\n xhrFields: {\n withCredentials: config.withCredentials\n }\n });\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open(\"POST\", url, true);\n xhr.withCredentials = config.withCredentials;\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n\n for (var header in config.headers) {\n if (config.headers.hasOwnProperty(header)) {\n xhr.setRequestHeader(header, config.headers[header]);\n }\n }\n\n xhr.onload = function () {\n if (xhr.status === 200) {\n success();\n }\n };\n\n CSRFProtection(xhr);\n xhr.send(JSON.stringify(data));\n }\n }\n}\n\nfunction eventData(event) {\n var data = {\n events: [event]\n };\n\n if (config.cookies) {\n data.visit_token = event.visit_token;\n data.visitor_token = event.visitor_token;\n }\n\n delete event.visit_token;\n delete event.visitor_token;\n return data;\n}\n\nfunction trackEvent(event) {\n ahoy.ready(function () {\n sendRequest(eventsUrl(), eventData(event), function () {\n // remove from queue\n for (var i = 0; i < eventQueue.length; i++) {\n if (eventQueue[i].id == event.id) {\n eventQueue.splice(i, 1);\n break;\n }\n }\n\n saveEventQueue();\n });\n });\n}\n\nfunction trackEventNow(event) {\n ahoy.ready(function () {\n var data = eventData(event);\n var param = csrfParam();\n var token = csrfToken();\n\n if (param && token) {\n data[param] = token;\n } // stringify so we keep the type\n\n\n data.events_json = JSON.stringify(data.events);\n delete data.events;\n window.navigator.sendBeacon(eventsUrl(), serialize(data));\n });\n}\n\nfunction page() {\n return config.page || window.location.pathname;\n}\n\nfunction presence(str) {\n return str && str.length > 0 ? str : null;\n}\n\nfunction cleanObject(obj) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (obj[key] === null) {\n delete obj[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction eventProperties() {\n return cleanObject({\n tag: this.tagName.toLowerCase(),\n id: presence(this.id),\n \"class\": presence(this.className),\n page: page(),\n section: getClosestSection(this)\n });\n}\n\nfunction getClosestSection(element) {\n for (; element && element !== document; element = element.parentNode) {\n if (element.hasAttribute('data-section')) {\n return element.getAttribute('data-section');\n }\n }\n\n return null;\n}\n\nfunction createVisit() {\n isReady = false;\n visitId = ahoy.getVisitId();\n visitorId = ahoy.getVisitorId();\n track = getCookie(\"ahoy_track\");\n\n if (config.cookies === false || config.trackVisits === false) {\n log(\"Visit tracking disabled\");\n setReady();\n } else if (visitId && visitorId && !track) {\n // TODO keep visit alive?\n log(\"Active visit\");\n setReady();\n } else {\n if (!visitId) {\n visitId = generateId();\n setCookie(\"ahoy_visit\", visitId, config.visitDuration);\n } // make sure cookies are enabled\n\n\n if (getCookie(\"ahoy_visit\")) {\n log(\"Visit started\");\n\n if (!visitorId) {\n visitorId = generateId();\n setCookie(\"ahoy_visitor\", visitorId, config.visitorDuration);\n }\n\n var data = {\n visit_token: visitId,\n visitor_token: visitorId,\n platform: config.platform,\n landing_page: window.location.href,\n screen_width: window.screen.width,\n screen_height: window.screen.height,\n js: true\n }; // referrer\n\n if (document.referrer.length > 0) {\n data.referrer = document.referrer;\n }\n\n for (var key in config.visitParams) {\n if (config.visitParams.hasOwnProperty(key)) {\n data[key] = config.visitParams[key];\n }\n }\n\n log(data);\n sendRequest(visitsUrl(), data, function () {\n // wait until successful to destroy\n destroyCookie(\"ahoy_track\");\n setReady();\n });\n } else {\n log(\"Cookies disabled\");\n setReady();\n }\n }\n}\n\nahoy.getVisitId = ahoy.getVisitToken = function () {\n return getCookie(\"ahoy_visit\");\n};\n\nahoy.getVisitorId = ahoy.getVisitorToken = function () {\n return getCookie(\"ahoy_visitor\");\n};\n\nahoy.reset = function () {\n destroyCookie(\"ahoy_visit\");\n destroyCookie(\"ahoy_visitor\");\n destroyCookie(\"ahoy_events\");\n destroyCookie(\"ahoy_track\");\n return true;\n};\n\nahoy.debug = function (enabled) {\n if (enabled === false) {\n destroyCookie(\"ahoy_debug\");\n } else {\n setCookie(\"ahoy_debug\", \"t\", 365 * 24 * 60); // 1 year\n }\n\n return true;\n};\n\nahoy.track = function (name, properties) {\n // generate unique id\n var event = {\n name: name,\n properties: properties || {},\n time: new Date().getTime() / 1000.0,\n id: generateId(),\n js: true\n };\n ahoy.ready(function () {\n if (config.cookies && !ahoy.getVisitId()) {\n createVisit();\n }\n\n ahoy.ready(function () {\n log(event);\n event.visit_token = ahoy.getVisitId();\n event.visitor_token = ahoy.getVisitorId();\n\n if (canTrackNow()) {\n trackEventNow(event);\n } else {\n eventQueue.push(event);\n saveEventQueue(); // wait in case navigating to reduce duplicate events\n\n setTimeout(function () {\n trackEvent(event);\n }, 1000);\n }\n });\n });\n return true;\n};\n\nahoy.trackView = function (additionalProperties) {\n var properties = {\n url: window.location.href,\n title: document.title,\n page: page()\n };\n\n if (additionalProperties) {\n for (var propName in additionalProperties) {\n if (additionalProperties.hasOwnProperty(propName)) {\n properties[propName] = additionalProperties[propName];\n }\n }\n }\n\n ahoy.track(\"$view\", properties);\n};\n\nahoy.trackClicks = function (selector) {\n if (selector === undefined) {\n log(\"trackClicks will require a selector in 0.4.0\");\n selector = \"a, button, input[type=submit]\";\n }\n\n onEvent(\"click\", selector, function (e) {\n var properties = eventProperties.call(this, e);\n properties.text = properties.tag == \"input\" ? this.value : (this.textContent || this.innerText || this.innerHTML).replace(/[\\s\\r\\n]+/g, \" \").trim();\n properties.href = this.href;\n ahoy.track(\"$click\", properties);\n });\n};\n\nahoy.trackSubmits = function (selector) {\n if (selector === undefined) {\n log(\"trackSubmits will require a selector in 0.4.0\");\n selector = \"form\";\n }\n\n onEvent(\"submit\", selector, function (e) {\n var properties = eventProperties.call(this, e);\n ahoy.track(\"$submit\", properties);\n });\n};\n\nahoy.trackChanges = function (selector) {\n if (selector === undefined) {\n // put here instead of above to prevent message with trackAll\n log(\"trackChanges is deprecated and will be removed in 0.4.0\");\n selector = \"input, textarea, select\";\n }\n\n onEvent(\"change\", selector, function (e) {\n var properties = eventProperties.call(this, e);\n ahoy.track(\"$change\", properties);\n });\n};\n\nahoy.trackAll = function () {\n log(\"trackAll is deprecated and will be removed in 0.4.0\");\n ahoy.trackView();\n ahoy.trackClicks(\"a, button, input[type=submit]\");\n ahoy.trackSubmits(\"form\");\n ahoy.trackChanges(\"input, textarea, select\");\n}; // push events from queue\n\n\ntry {\n eventQueue = JSON.parse(getCookie(\"ahoy_events\") || \"[]\");\n} catch (e) {// do nothing\n}\n\nfor (var i = 0; i < eventQueue.length; i++) {\n trackEvent(eventQueue[i]);\n}\n\nahoy.start = function () {\n createVisit();\n\n ahoy.start = function () {};\n};\n\ndocumentReady(function () {\n if (config.startOnReady) {\n ahoy.start();\n }\n});\nexport default ahoy;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = e() : \"function\" == typeof define && define.amd ? define([], e) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports.Quagga = e() : t.Quagga = e();\n}(window, function () {\n return function (t) {\n var e = {};\n\n function n(r) {\n if (e[r]) return e[r].exports;\n var o = e[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return t[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n\n return n.m = t, n.c = e, n.d = function (t, e, r) {\n n.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, n.t = function (t, e) {\n if (1 & e && (t = n(t)), 8 & e) return t;\n if (4 & e && \"object\" == _typeof(t) && t && t.__esModule) return t;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var o in t) {\n n.d(r, o, function (e) {\n return t[e];\n }.bind(null, o));\n }\n return r;\n }, n.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return n.d(e, \"a\", e), e;\n }, n.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, n.p = \"/\", n(n.s = 89);\n }([function (t, e) {\n t.exports = function (t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function (t) {\n if (void 0 === t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return t;\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n function n(e) {\n return t.exports = n = Object.setPrototypeOf ? Object.getPrototypeOf : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, t.exports.default = t.exports, t.exports.__esModule = !0, n(e);\n }\n\n t.exports = n, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n function n(t, e) {\n for (var n = 0; n < e.length; n++) {\n var r = e[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(t, r.key, r);\n }\n }\n\n t.exports = function (t, e, r) {\n return e && n(t.prototype, e), r && n(t, r), t;\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n var r = n(19).default,\n o = n(1);\n t.exports = function (t, e) {\n if (e && (\"object\" === r(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return o(t);\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n var r = n(41);\n t.exports = function (t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), e && r(t, e);\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n t.exports = {\n EPSILON: n(62),\n create: n(63),\n clone: n(156),\n fromValues: n(157),\n copy: n(158),\n set: n(159),\n equals: n(160),\n exactEquals: n(161),\n add: n(162),\n subtract: n(64),\n sub: n(163),\n multiply: n(65),\n mul: n(164),\n divide: n(66),\n div: n(165),\n inverse: n(166),\n min: n(167),\n max: n(168),\n rotate: n(169),\n floor: n(170),\n ceil: n(171),\n round: n(172),\n scale: n(173),\n scaleAndAdd: n(174),\n distance: n(67),\n dist: n(175),\n squaredDistance: n(68),\n sqrDist: n(176),\n length: n(69),\n len: n(177),\n squaredLength: n(70),\n sqrLen: n(178),\n negate: n(179),\n normalize: n(180),\n dot: n(181),\n cross: n(182),\n lerp: n(183),\n random: n(184),\n transformMat2: n(185),\n transformMat2d: n(186),\n transformMat3: n(187),\n transformMat4: n(188),\n forEach: n(189),\n limit: n(190)\n };\n }, function (t, e, n) {\n \"use strict\";\n\n e.a = {\n init: function init(t, e) {\n for (var n = t.length; n--;) {\n t[n] = e;\n }\n },\n shuffle: function shuffle(t) {\n for (var e = t.length - 1; e >= 0; e--) {\n var n = Math.floor(Math.random() * e),\n r = t[e];\n t[e] = t[n], t[n] = r;\n }\n\n return t;\n },\n toPointList: function toPointList(t) {\n var e = t.reduce(function (t, e) {\n var n = \"[\".concat(e.join(\",\"), \"]\");\n return t.push(n), t;\n }, []);\n return \"[\".concat(e.join(\",\\r\\n\"), \"]\");\n },\n threshold: function threshold(t, e, n) {\n return t.reduce(function (r, o) {\n return n.apply(t, [o]) >= e && r.push(o), r;\n }, []);\n },\n maxIndex: function maxIndex(t) {\n for (var e = 0, n = 0; n < t.length; n++) {\n t[n] > t[e] && (e = n);\n }\n\n return e;\n },\n max: function max(t) {\n for (var e = 0, n = 0; n < t.length; n++) {\n t[n] > e && (e = t[n]);\n }\n\n return e;\n },\n sum: function sum(t) {\n for (var e = t.length, n = 0; e--;) {\n n += t[e];\n }\n\n return n;\n }\n };\n }, function (t, e, n) {\n \"use strict\";\n\n n.d(e, \"h\", function () {\n return l;\n }), n.d(e, \"i\", function () {\n return d;\n }), n.d(e, \"b\", function () {\n return p;\n }), n.d(e, \"j\", function () {\n return v;\n }), n.d(e, \"e\", function () {\n return y;\n }), n.d(e, \"c\", function () {\n return g;\n }), n.d(e, \"f\", function () {\n return x;\n }), n.d(e, \"g\", function () {\n return _;\n }), n.d(e, \"a\", function () {\n return b;\n }), n.d(e, \"d\", function () {\n return O;\n });\n\n var r = n(7),\n o = n(84),\n i = {\n clone: r.clone,\n dot: r.dot\n },\n a = function a(t, e) {\n var n = [],\n r = {\n rad: 0,\n vec: i.clone([0, 0])\n },\n o = {};\n\n function a(t) {\n o[t.id] = t, n.push(t);\n }\n\n function u() {\n var t,\n e = 0;\n\n for (t = 0; t < n.length; t++) {\n e += n[t].rad;\n }\n\n r.rad = e / n.length, r.vec = i.clone([Math.cos(r.rad), Math.sin(r.rad)]);\n }\n\n return a(t), u(), {\n add: function add(t) {\n o[t.id] || (a(t), u());\n },\n fits: function fits(t) {\n return Math.abs(i.dot(t.point.vec, r.vec)) > e;\n },\n getPoints: function getPoints() {\n return n;\n },\n getCenter: function getCenter() {\n return r;\n }\n };\n },\n u = function u(t, e, n) {\n return {\n rad: t[n],\n point: t,\n id: e\n };\n },\n c = n(8),\n s = {\n clone: r.clone\n },\n f = {\n clone: o.clone\n };\n\n function l(t, e) {\n return {\n x: t,\n y: e,\n toVec2: function toVec2() {\n return s.clone([this.x, this.y]);\n },\n toVec3: function toVec3() {\n return f.clone([this.x, this.y, 1]);\n },\n round: function round() {\n return this.x = this.x > 0 ? Math.floor(this.x + .5) : Math.floor(this.x - .5), this.y = this.y > 0 ? Math.floor(this.y + .5) : Math.floor(this.y - .5), this;\n }\n };\n }\n\n function h(t, e) {\n e || (e = 8);\n\n for (var n = t.data, r = n.length, o = 8 - e, i = new Int32Array(1 << e); r--;) {\n i[n[r] >> o]++;\n }\n\n return i;\n }\n\n function d(t, e) {\n var n = function (t) {\n var e,\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 8,\n r = 8 - n;\n\n function o(t, n) {\n for (var r = 0, o = t; o <= n; o++) {\n r += e[o];\n }\n\n return r;\n }\n\n function i(t, n) {\n for (var r = 0, o = t; o <= n; o++) {\n r += o * e[o];\n }\n\n return r;\n }\n\n function a() {\n var r,\n a,\n u,\n s,\n f = [0],\n l = (1 << n) - 1;\n e = h(t, n);\n\n for (var d = 1; d < l; d++) {\n 0 === (u = (r = o(0, d)) * (a = o(d + 1, l))) && (u = 1), s = i(0, d) * a - i(d + 1, l) * r, f[d] = s * s / u;\n }\n\n return c.a.maxIndex(f);\n }\n\n var u = a();\n return u << r;\n }(t);\n\n return function (t, e, n) {\n n || (n = t);\n\n for (var r = t.data, o = r.length, i = n.data; o--;) {\n i[o] = r[o] < e ? 1 : 0;\n }\n }(t, n, e), n;\n }\n\n function p(t, e, n) {\n var r,\n o,\n i,\n c,\n s = [];\n\n function f(t) {\n var e = !1;\n\n for (o = 0; o < s.length; o++) {\n (i = s[o]).fits(t) && (i.add(t), e = !0);\n }\n\n return e;\n }\n\n for (n || (n = \"rad\"), r = 0; r < t.length; r++) {\n f(c = u(t[r], r, n)) || s.push(a(c, e));\n }\n\n return s;\n }\n\n function v(t, e, n) {\n var r,\n o,\n i,\n a,\n u = 0,\n c = 0,\n s = [];\n\n for (r = 0; r < e; r++) {\n s[r] = {\n score: 0,\n item: null\n };\n }\n\n for (r = 0; r < t.length; r++) {\n if ((o = n.apply(this, [t[r]])) > c) for ((i = s[u]).score = o, i.item = t[r], c = Number.MAX_VALUE, a = 0; a < e; a++) {\n s[a].score < c && (c = s[a].score, u = a);\n }\n }\n\n return s;\n }\n\n function y(t, e, n) {\n for (var r, o = 0, i = e.x, a = Math.floor(t.length / 4), u = e.x / 2, c = 0, s = e.x; i < a;) {\n for (r = 0; r < u; r++) {\n n[c] = (.299 * t[4 * o + 0] + .587 * t[4 * o + 1] + .114 * t[4 * o + 2] + (.299 * t[4 * (o + 1) + 0] + .587 * t[4 * (o + 1) + 1] + .114 * t[4 * (o + 1) + 2]) + (.299 * t[4 * i + 0] + .587 * t[4 * i + 1] + .114 * t[4 * i + 2]) + (.299 * t[4 * (i + 1) + 0] + .587 * t[4 * (i + 1) + 1] + .114 * t[4 * (i + 1) + 2])) / 4, c++, o += 2, i += 2;\n }\n\n o += s, i += s;\n }\n }\n\n function g(t, e, n) {\n var r = t.length / 4 | 0;\n if (n && !0 === n.singleChannel) for (var o = 0; o < r; o++) {\n e[o] = t[4 * o + 0];\n } else for (var i = 0; i < r; i++) {\n e[i] = .299 * t[4 * i + 0] + .587 * t[4 * i + 1] + .114 * t[4 * i + 2];\n }\n }\n\n function x(t, e) {\n for (var n = t.data, r = t.size.x, o = e.data, i = 0, a = r, u = n.length, c = r / 2, s = 0; a < u;) {\n for (var f = 0; f < c; f++) {\n o[s] = Math.floor((n[i] + n[i + 1] + n[a] + n[a + 1]) / 4), s++, i += 2, a += 2;\n }\n\n i += r, a += r;\n }\n }\n\n function _(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [0, 0, 0],\n n = t[0],\n r = t[1],\n o = t[2],\n i = o * r,\n a = i * (1 - Math.abs(n / 60 % 2 - 1)),\n u = o - i,\n c = 0,\n s = 0,\n f = 0;\n return n < 60 ? (c = i, s = a) : n < 120 ? (c = a, s = i) : n < 180 ? (s = i, f = a) : n < 240 ? (s = a, f = i) : n < 300 ? (c = a, f = i) : n < 360 && (c = i, f = a), e[0] = 255 * (c + u) | 0, e[1] = 255 * (s + u) | 0, e[2] = 255 * (f + u) | 0, e;\n }\n\n function m(t) {\n for (var e = [], n = [], r = 1; r < Math.sqrt(t) + 1; r++) {\n t % r == 0 && (n.push(r), r !== t / r && e.unshift(Math.floor(t / r)));\n }\n\n return n.concat(e);\n }\n\n function b(t, e) {\n var n,\n r = m(e.x),\n o = m(e.y),\n i = Math.max(e.x, e.y),\n a = function (t, e) {\n for (var n = 0, r = 0, o = []; n < t.length && r < e.length;) {\n t[n] === e[r] ? (o.push(t[n]), n++, r++) : t[n] > e[r] ? r++ : n++;\n }\n\n return o;\n }(r, o),\n u = [8, 10, 15, 20, 32, 60, 80],\n c = {\n \"x-small\": 5,\n small: 4,\n medium: 3,\n large: 2,\n \"x-large\": 1\n },\n s = c[t] || c.medium,\n f = u[s],\n l = Math.floor(i / f);\n\n function h(t) {\n for (var e = 0, n = t[Math.floor(t.length / 2)]; e < t.length - 1 && t[e] < l;) {\n e++;\n }\n\n return e > 0 && (n = Math.abs(t[e] - l) > Math.abs(t[e - 1] - l) ? t[e - 1] : t[e]), l / n < u[s + 1] / u[s] && l / n > u[s - 1] / u[s] ? {\n x: n,\n y: n\n } : null;\n }\n\n return (n = h(a)) || (n = h(m(i))) || (n = h(m(l * f))), n;\n }\n\n var w = {\n top: function top(t, e) {\n return \"%\" === t.unit ? Math.floor(e.height * (t.value / 100)) : null;\n },\n right: function right(t, e) {\n return \"%\" === t.unit ? Math.floor(e.width - e.width * (t.value / 100)) : null;\n },\n bottom: function bottom(t, e) {\n return \"%\" === t.unit ? Math.floor(e.height - e.height * (t.value / 100)) : null;\n },\n left: function left(t, e) {\n return \"%\" === t.unit ? Math.floor(e.width * (t.value / 100)) : null;\n }\n };\n\n function O(t, e, n) {\n var r = {\n width: t,\n height: e\n },\n o = Object.keys(n).reduce(function (t, e) {\n var o = function (t) {\n return {\n value: parseFloat(t),\n unit: (t.indexOf(\"%\"), t.length, \"%\")\n };\n }(n[e]),\n i = w[e](o, r);\n\n return t[e] = i, t;\n }, {});\n return {\n sx: o.left,\n sy: o.top,\n sw: o.right - o.left,\n sh: o.bottom - o.top\n };\n }\n }, function (t, e, n) {\n \"use strict\";\n\n var r = n(83),\n o = n.n(r),\n i = n(3),\n a = n.n(i),\n u = n(4),\n c = n.n(u),\n s = n(0),\n f = n.n(s),\n l = n(7),\n h = n(9),\n d = n(8),\n p = {\n clone: l.clone\n };\n\n function v(t) {\n if (t < 0) throw new Error(\"expected positive number, received \".concat(t));\n }\n\n var y = function () {\n function t(e, n) {\n var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : Uint8Array,\n o = arguments.length > 3 ? arguments[3] : void 0;\n a()(this, t), f()(this, \"data\", void 0), f()(this, \"size\", void 0), f()(this, \"indexMapping\", void 0), n ? this.data = n : (this.data = new r(e.x * e.y), o && d.a.init(this.data, 0)), this.size = e;\n }\n\n return c()(t, [{\n key: \"inImageWithBorder\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\n return v(e), t.x >= 0 && t.y >= 0 && t.x < this.size.x + 2 * e && t.y < this.size.y + 2 * e;\n }\n }, {\n key: \"subImageAsCopy\",\n value: function value(t, e) {\n v(e.x), v(e.y);\n\n for (var n = t.size, r = n.x, o = n.y, i = 0; i < r; i++) {\n for (var a = 0; a < o; a++) {\n t.data[a * r + i] = this.data[(e.y + a) * this.size.x + e.x + i];\n }\n }\n\n return t;\n }\n }, {\n key: \"get\",\n value: function value(t, e) {\n return this.data[e * this.size.x + t];\n }\n }, {\n key: \"getSafe\",\n value: function value(t, e) {\n if (!this.indexMapping) {\n this.indexMapping = {\n x: [],\n y: []\n };\n\n for (var n = 0; n < this.size.x; n++) {\n this.indexMapping.x[n] = n, this.indexMapping.x[n + this.size.x] = n;\n }\n\n for (var r = 0; r < this.size.y; r++) {\n this.indexMapping.y[r] = r, this.indexMapping.y[r + this.size.y] = r;\n }\n }\n\n return this.data[this.indexMapping.y[e + this.size.y] * this.size.x + this.indexMapping.x[t + this.size.x]];\n }\n }, {\n key: \"set\",\n value: function value(t, e, n) {\n return this.data[e * this.size.x + t] = n, delete this.indexMapping, this;\n }\n }, {\n key: \"zeroBorder\",\n value: function value() {\n for (var t = this.size, e = t.x, n = t.y, r = 0; r < e; r++) {\n this.data[r] = this.data[(n - 1) * e + r] = 0;\n }\n\n for (var o = 1; o < n - 1; o++) {\n this.data[o * e] = this.data[o * e + (e - 1)] = 0;\n }\n\n return delete this.indexMapping, this;\n }\n }, {\n key: \"moments\",\n value: function value(t) {\n var e,\n n,\n r,\n o,\n i,\n a,\n u,\n c,\n s,\n f,\n l = this.data,\n h = this.size.y,\n d = this.size.x,\n v = [],\n y = [],\n g = Math.PI,\n x = g / 4;\n if (t <= 0) return y;\n\n for (i = 0; i < t; i++) {\n v[i] = {\n m00: 0,\n m01: 0,\n m10: 0,\n m11: 0,\n m02: 0,\n m20: 0,\n theta: 0,\n rad: 0\n };\n }\n\n for (n = 0; n < h; n++) {\n for (o = n * n, e = 0; e < d; e++) {\n (r = l[n * d + e]) > 0 && ((a = v[r - 1]).m00 += 1, a.m01 += n, a.m10 += e, a.m11 += e * n, a.m02 += o, a.m20 += e * e);\n }\n }\n\n for (i = 0; i < t; i++) {\n a = v[i], isNaN(a.m00) || 0 === a.m00 || (c = a.m10 / a.m00, s = a.m01 / a.m00, u = a.m11 / a.m00 - c * s, f = (a.m02 / a.m00 - s * s - (a.m20 / a.m00 - c * c)) / (2 * u), f = .5 * Math.atan(f) + (u >= 0 ? x : -x) + g, a.theta = (180 * f / g + 90) % 180 - 90, a.theta < 0 && (a.theta += 180), a.rad = f > g ? f - g : f, a.vec = p.clone([Math.cos(f), Math.sin(f)]), y.push(a));\n }\n\n return y;\n }\n }, {\n key: \"getAsRGBA\",\n value: function value() {\n for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, e = new Uint8ClampedArray(4 * this.size.x * this.size.y), n = 0; n < this.size.y; n++) {\n for (var r = 0; r < this.size.x; r++) {\n var o = n * this.size.x + r,\n i = this.get(r, n) * t;\n e[4 * o + 0] = i, e[4 * o + 1] = i, e[4 * o + 2] = i, e[4 * o + 3] = 255;\n }\n }\n\n return e;\n }\n }, {\n key: \"show\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1,\n n = t.getContext(\"2d\");\n if (!n) throw new Error(\"Unable to get canvas context\");\n var r = n.getImageData(0, 0, t.width, t.height),\n o = this.getAsRGBA(e);\n t.width = this.size.x, t.height = this.size.y;\n var i = new ImageData(o, r.width, r.height);\n n.putImageData(i, 0, 0);\n }\n }, {\n key: \"overlay\",\n value: function value(t, e, n) {\n var r = e < 0 || e > 360 ? 360 : e,\n i = [0, 1, 1],\n a = [0, 0, 0],\n u = [255, 255, 255],\n c = [0, 0, 0],\n s = t.getContext(\"2d\");\n if (!s) throw new Error(\"Unable to get canvas context\");\n\n for (var f = s.getImageData(n.x, n.y, this.size.x, this.size.y), l = f.data, d = this.data.length; d--;) {\n i[0] = this.data[d] * r;\n var p = 4 * d,\n v = i[0] <= 0 ? u : i[0] >= 360 ? c : Object(h.g)(i, a),\n y = o()(v, 3);\n l[p] = y[0], l[p + 1] = y[1], l[p + 2] = y[2], l[p + 3] = 255;\n }\n\n s.putImageData(f, n.x, n.y);\n }\n }]), t;\n }();\n\n e.a = y;\n }, function (t, e, n) {\n t.exports = n(228);\n }, function (t, e, n) {\n var r = n(227);\n\n function o(e, n, i) {\n return \"undefined\" != typeof Reflect && Reflect.get ? (t.exports = o = Reflect.get, t.exports.default = t.exports, t.exports.__esModule = !0) : (t.exports = o = function o(t, e, n) {\n var o = r(t, e);\n\n if (o) {\n var i = Object.getOwnPropertyDescriptor(o, e);\n return i.get ? i.get.call(n) : i.value;\n }\n }, t.exports.default = t.exports, t.exports.__esModule = !0), o(e, n, i || e);\n }\n\n t.exports = o, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function (t) {\n var e = _typeof(t);\n\n return null != t && (\"object\" == e || \"function\" == e);\n };\n }, function (t, e) {\n var n = Array.isArray;\n t.exports = n;\n }, function (t, e, n) {\n \"use strict\";\n\n e.a = {\n drawRect: function drawRect(t, e, n, r) {\n n.strokeStyle = r.color, n.fillStyle = r.color, n.lineWidth = r.lineWidth || 1, n.beginPath(), n.strokeRect(t.x, t.y, e.x, e.y);\n },\n drawPath: function drawPath(t, e, n, r) {\n n.strokeStyle = r.color, n.fillStyle = r.color, n.lineWidth = r.lineWidth, n.beginPath(), n.moveTo(t[0][e.x], t[0][e.y]);\n\n for (var o = 1; o < t.length; o++) {\n n.lineTo(t[o][e.x], t[o][e.y]);\n }\n\n n.closePath(), n.stroke();\n },\n drawImage: function drawImage(t, e, n) {\n var r = n.getImageData(0, 0, e.x, e.y),\n o = r.data,\n i = o.length,\n a = t.length;\n if (i / a != 4) return !1;\n\n for (; a--;) {\n var u = t[a];\n o[--i] = 255, o[--i] = u, o[--i] = u, o[--i] = u;\n }\n\n return n.putImageData(r, 0, 0), !0;\n }\n };\n }, function (t, e, n) {\n var r = n(90),\n o = n(145)(function (t, e, n) {\n r(t, e, n);\n });\n t.exports = o;\n }, function (t, e, n) {\n var r = n(45),\n o = \"object\" == (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) && self && self.Object === Object && self,\n i = r || o || Function(\"return this\")();\n t.exports = i;\n }, function (t, e) {\n t.exports = function (t) {\n return null != t && \"object\" == _typeof(t);\n };\n }, function (t, e) {\n function n(e) {\n return \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? (t.exports = n = function n(t) {\n return _typeof(t);\n }, t.exports.default = t.exports, t.exports.__esModule = !0) : (t.exports = n = function n(t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : _typeof(t);\n }, t.exports.default = t.exports, t.exports.__esModule = !0), n(e);\n }\n\n t.exports = n, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n function n(t, e, n, r, o, i, a) {\n try {\n var u = t[i](a),\n c = u.value;\n } catch (t) {\n return void n(t);\n }\n\n u.done ? e(c) : Promise.resolve(c).then(r, o);\n }\n\n t.exports = function (t) {\n return function () {\n var e = this,\n r = arguments;\n return new Promise(function (o, i) {\n var a = t.apply(e, r);\n\n function u(t) {\n n(a, o, i, u, c, \"next\", t);\n }\n\n function c(t) {\n n(a, o, i, u, c, \"throw\", t);\n }\n\n u(void 0);\n });\n };\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n \"use strict\";\n\n e.a = {\n searchDirections: [[0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1], [-1, 0], [-1, 1]],\n create: function create(t, e) {\n var n,\n r = t.data,\n o = e.data,\n i = this.searchDirections,\n a = t.size.x;\n\n function u(t, e, u, c) {\n var s, f, l;\n\n for (s = 0; s < 7; s++) {\n if (f = t.cy + i[t.dir][0], l = t.cx + i[t.dir][1], r[n = f * a + l] === e && (0 === o[n] || o[n] === u)) return o[n] = u, t.cy = f, t.cx = l, !0;\n 0 === o[n] && (o[n] = c), t.dir = (t.dir + 1) % 8;\n }\n\n return !1;\n }\n\n function c(t, e, n) {\n return {\n dir: n,\n x: t,\n y: e,\n next: null,\n prev: null\n };\n }\n\n return {\n trace: function trace(t, e, n, r) {\n return u(t, e, n, r);\n },\n contourTracing: function contourTracing(t, e, n, r, o) {\n return function (t, e, n, r, o) {\n var i,\n a,\n s,\n f = null,\n l = {\n cx: e,\n cy: t,\n dir: 0\n };\n\n if (u(l, r, n, o)) {\n i = f = c(e, t, l.dir), s = l.dir, (a = c(l.cx, l.cy, 0)).prev = i, i.next = a, a.next = null, i = a;\n\n do {\n l.dir = (l.dir + 6) % 8, u(l, r, n, o), s !== l.dir ? (i.dir = l.dir, (a = c(l.cx, l.cy, 0)).prev = i, i.next = a, a.next = null, i = a) : (i.dir = s, i.x = l.cx, i.y = l.cy), s = l.dir;\n } while (l.cx !== e || l.cy !== t);\n\n f.prev = i.prev, i.prev.next = f;\n }\n\n return f;\n }(t, e, n, r, o);\n }\n };\n }\n };\n }, function (t, e, n) {\n var r = n(27),\n o = n(103),\n i = n(104),\n a = r ? r.toStringTag : void 0;\n\n t.exports = function (t) {\n return null == t ? void 0 === t ? \"[object Undefined]\" : \"[object Null]\" : a && a in Object(t) ? o(t) : i(t);\n };\n }, function (t, e, n) {\n \"use strict\";\n\n (function (t) {\n var r,\n o,\n i,\n a,\n u,\n c,\n s,\n f,\n l,\n h,\n d,\n p,\n v = n(7),\n y = n(34),\n g = n(10),\n x = n(9),\n _ = n(8),\n m = (n(15), n(87)),\n b = n(21),\n w = n(88),\n O = {\n ctx: {\n binary: null\n },\n dom: {\n binary: null\n }\n },\n R = {\n x: 0,\n y: 0\n };\n\n function C(t) {\n var e,\n n,\n o,\n i,\n a,\n u,\n c,\n s = l.size.x,\n f = l.size.y,\n h = -l.size.x,\n d = -l.size.y;\n\n for (e = 0, n = 0; n < t.length; n++) {\n e += (i = t[n]).rad;\n }\n\n for ((e = (180 * (e /= t.length) / Math.PI + 90) % 180 - 90) < 0 && (e += 180), e = (180 - e) * Math.PI / 180, a = y.copy(y.create(), [Math.cos(e), Math.sin(e), -Math.sin(e), Math.cos(e)]), n = 0; n < t.length; n++) {\n for (i = t[n], o = 0; o < 4; o++) {\n v.transformMat2(i.box[o], i.box[o], a);\n }\n\n 0;\n }\n\n for (n = 0; n < t.length; n++) {\n for (i = t[n], o = 0; o < 4; o++) {\n i.box[o][0] < s && (s = i.box[o][0]), i.box[o][0] > h && (h = i.box[o][0]), i.box[o][1] < f && (f = i.box[o][1]), i.box[o][1] > d && (d = i.box[o][1]);\n }\n }\n\n for (u = [[s, f], [h, f], [h, d], [s, d]], c = r.halfSample ? 2 : 1, a = y.invert(a, a), o = 0; o < 4; o++) {\n v.transformMat2(u[o], u[o], a);\n }\n\n for (o = 0; o < 4; o++) {\n v.scale(u[o], u[o], c);\n }\n\n return u;\n }\n\n function E(t, e) {\n l.subImageAsCopy(a, Object(x.h)(t, e)), p.skeletonize();\n }\n\n function M(t, e, n, r) {\n var o,\n i,\n u,\n c,\n s = [],\n f = [],\n l = Math.ceil(h.x / 3);\n\n if (t.length >= 2) {\n for (o = 0; o < t.length; o++) {\n t[o].m00 > l && s.push(t[o]);\n }\n\n if (s.length >= 2) {\n for (u = function (t) {\n var e = Object(x.b)(t, .9),\n n = Object(x.j)(e, 1, function (t) {\n return t.getPoints().length;\n }),\n r = [],\n o = [];\n\n if (1 === n.length) {\n r = n[0].item.getPoints();\n\n for (var i = 0; i < r.length; i++) {\n o.push(r[i].point);\n }\n }\n\n return o;\n }(s), i = 0, o = 0; o < u.length; o++) {\n i += u[o].rad;\n }\n\n u.length > 1 && u.length >= s.length / 4 * 3 && u.length > t.length / 4 && (i /= u.length, c = {\n index: e[1] * R.x + e[0],\n pos: {\n x: n,\n y: r\n },\n box: [v.clone([n, r]), v.clone([n + a.size.x, r]), v.clone([n + a.size.x, r + a.size.y]), v.clone([n, r + a.size.y])],\n moments: u,\n rad: i,\n vec: v.clone([Math.cos(i), Math.sin(i)])\n }, f.push(c));\n }\n }\n\n return f;\n }\n\n e.a = {\n init: function init(e, n) {\n r = n, d = e, function () {\n o = r.halfSample ? new g.a({\n x: d.size.x / 2 | 0,\n y: d.size.y / 2 | 0\n }) : d, h = Object(x.a)(r.patchSize, o.size), R.x = o.size.x / h.x | 0, R.y = o.size.y / h.y | 0, l = new g.a(o.size, void 0, Uint8Array, !1), u = new g.a(h, void 0, Array, !0);\n var e = new ArrayBuffer(65536);\n a = new g.a(h, new Uint8Array(e, 0, h.x * h.y)), i = new g.a(h, new Uint8Array(e, h.x * h.y * 3, h.x * h.y), void 0, !0), p = Object(w.a)(\"undefined\" != typeof window ? window : \"undefined\" != typeof self ? self : t, {\n size: h.x\n }, e), f = new g.a({\n x: o.size.x / a.size.x | 0,\n y: o.size.y / a.size.y | 0\n }, void 0, Array, !0), c = new g.a(f.size, void 0, void 0, !0), s = new g.a(f.size, void 0, Int32Array, !0);\n }(), r.useWorker || \"undefined\" == typeof document || (O.dom.binary = document.createElement(\"canvas\"), O.dom.binary.className = \"binaryBuffer\", O.ctx.binary = O.dom.binary.getContext(\"2d\"), O.dom.binary.width = l.size.x, O.dom.binary.height = l.size.y);\n },\n locate: function locate() {\n r.halfSample && Object(x.f)(d, o), Object(x.i)(o, l), l.zeroBorder();\n\n var t = function () {\n var t,\n e,\n n,\n r,\n o,\n c,\n s = [];\n\n for (t = 0; t < R.x; t++) {\n for (e = 0; e < R.y; e++) {\n E(n = a.size.x * t, r = a.size.y * e), i.zeroBorder(), _.a.init(u.data, 0), c = m.a.create(i, u).rasterize(0), o = u.moments(c.count), s = s.concat(M(o, [t, e], n, r));\n }\n }\n\n return s;\n }();\n\n if (t.length < R.x * R.y * .05) return null;\n\n var e = function (t) {\n var e,\n n,\n r = 0,\n o = 0;\n\n function i() {\n var t;\n\n for (t = 0; t < s.data.length; t++) {\n if (0 === s.data[t] && 1 === c.data[t]) return t;\n }\n\n return s.length;\n }\n\n function a(t) {\n var e,\n n,\n o,\n i,\n u,\n l = t % s.size.x,\n h = t / s.size.x | 0;\n if (t < s.data.length) for (o = f.data[t], s.data[t] = r, u = 0; u < b.a.searchDirections.length; u++) {\n n = h + b.a.searchDirections[u][0], e = l + b.a.searchDirections[u][1], i = n * s.size.x + e, 0 !== c.data[i] ? 0 === s.data[i] && Math.abs(v.dot(f.data[i].vec, o.vec)) > .95 && a(i) : s.data[i] = Number.MAX_VALUE;\n }\n }\n\n for (_.a.init(c.data, 0), _.a.init(s.data, 0), _.a.init(f.data, null), e = 0; e < t.length; e++) {\n n = t[e], f.data[n.index] = n, c.data[n.index] = 1;\n }\n\n for (c.zeroBorder(); (o = i()) < s.data.length;) {\n r++, a(o);\n }\n\n return r;\n }(t);\n\n if (e < 1) return null;\n\n var n = function (t) {\n var e,\n n,\n r = [];\n\n for (e = 0; e < t; e++) {\n r.push(0);\n }\n\n for (n = s.data.length; n--;) {\n s.data[n] > 0 && r[s.data[n] - 1]++;\n }\n\n return (r = r.map(function (t, e) {\n return {\n val: t,\n label: e + 1\n };\n })).sort(function (t, e) {\n return e.val - t.val;\n }), r.filter(function (t) {\n return t.val >= 5;\n });\n }(e);\n\n return 0 === n.length ? null : function (t, e) {\n var n,\n r,\n o,\n i,\n a = [],\n u = [];\n\n for (n = 0; n < t.length; n++) {\n for (r = s.data.length, a.length = 0; r--;) {\n s.data[r] === t[n].label && (o = f.data[r], a.push(o));\n }\n\n (i = C(a)) && u.push(i);\n }\n\n return u;\n }(n);\n },\n checkImageConstraints: function checkImageConstraints(t, e) {\n var n,\n r,\n o = t.getWidth(),\n i = t.getHeight(),\n a = e.halfSample ? .5 : 1;\n t.getConfig().area && (r = Object(x.d)(o, i, t.getConfig().area), t.setTopRight({\n x: r.sx,\n y: r.sy\n }), t.setCanvasSize({\n x: o,\n y: i\n }), o = r.sw, i = r.sh);\n var u = {\n x: Math.floor(o * a),\n y: Math.floor(i * a)\n };\n if (n = Object(x.a)(e.patchSize, u), t.setWidth(Math.floor(Math.floor(u.x / n.x) * (1 / a) * n.x)), t.setHeight(Math.floor(Math.floor(u.y / n.y) * (1 / a) * n.y)), t.getWidth() % n.x == 0 && t.getHeight() % n.y == 0) return !0;\n throw new Error(\"Image dimensions do not comply with the current settings: Width (\".concat(o, \" )and height (\").concat(i, \") must a multiple of \").concat(n.x));\n }\n };\n }).call(this, n(46));\n }, function (t, e, n) {\n var r = n(92),\n o = n(93),\n i = n(94),\n a = n(95),\n u = n(96);\n\n function c(t) {\n var e = -1,\n n = null == t ? 0 : t.length;\n\n for (this.clear(); ++e < n;) {\n var r = t[e];\n this.set(r[0], r[1]);\n }\n }\n\n c.prototype.clear = r, c.prototype.delete = o, c.prototype.get = i, c.prototype.has = a, c.prototype.set = u, t.exports = c;\n }, function (t, e, n) {\n var r = n(26);\n\n t.exports = function (t, e) {\n for (var n = t.length; n--;) {\n if (r(t[n][0], e)) return n;\n }\n\n return -1;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t === e || t != t && e != e;\n };\n }, function (t, e, n) {\n var r = n(17).Symbol;\n t.exports = r;\n }, function (t, e, n) {\n var r = n(35)(Object, \"create\");\n t.exports = r;\n }, function (t, e, n) {\n var r = n(117);\n\n t.exports = function (t, e) {\n var n = t.__data__;\n return r(e) ? n[\"string\" == typeof e ? \"string\" : \"hash\"] : n.map;\n };\n }, function (t, e, n) {\n var r = n(132),\n o = n(18),\n i = Object.prototype,\n a = i.hasOwnProperty,\n u = i.propertyIsEnumerable,\n c = r(function () {\n return arguments;\n }()) ? r : function (t) {\n return o(t) && a.call(t, \"callee\") && !u.call(t, \"callee\");\n };\n t.exports = c;\n }, function (t, e) {\n var n = /^(?:0|[1-9]\\d*)$/;\n\n t.exports = function (t, e) {\n var r = _typeof(t);\n\n return !!(e = null == e ? 9007199254740991 : e) && (\"number\" == r || \"symbol\" != r && n.test(t)) && t > -1 && t % 1 == 0 && t < e;\n };\n }, function (t, e, n) {\n var r = n(14),\n o = n(232),\n i = n(233),\n a = n(236);\n\n t.exports = function (t, e) {\n return r(t) ? t : o(t, e) ? [t] : i(a(t));\n };\n }, function (t, e, n) {\n var r = n(224),\n o = n(225),\n i = n(60),\n a = n(226);\n t.exports = function (t) {\n return r(t) || o(t) || i(t) || a();\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n t.exports = {\n determinant: n(251),\n transpose: n(252),\n multiply: n(253),\n identity: n(254),\n adjoint: n(255),\n rotate: n(256),\n invert: n(257),\n create: n(258),\n scale: n(259),\n copy: n(260),\n frob: n(261),\n ldu: n(262)\n };\n }, function (t, e, n) {\n var r = n(102),\n o = n(108);\n\n t.exports = function (t, e) {\n var n = o(t, e);\n return r(n) ? n : void 0;\n };\n }, function (t, e, n) {\n var r = n(22),\n o = n(13);\n\n t.exports = function (t) {\n if (!o(t)) return !1;\n var e = r(t);\n return \"[object Function]\" == e || \"[object GeneratorFunction]\" == e || \"[object AsyncFunction]\" == e || \"[object Proxy]\" == e;\n };\n }, function (t, e, n) {\n var r = n(49);\n\n t.exports = function (t, e, n) {\n \"__proto__\" == e && r ? r(t, e, {\n configurable: !0,\n enumerable: !0,\n value: n,\n writable: !0\n }) : t[e] = n;\n };\n }, function (t, e) {\n t.exports = function (t) {\n return t.webpackPolyfill || (t.deprecate = function () {}, t.paths = [], t.children || (t.children = []), Object.defineProperty(t, \"loaded\", {\n enumerable: !0,\n get: function get() {\n return t.l;\n }\n }), Object.defineProperty(t, \"id\", {\n enumerable: !0,\n get: function get() {\n return t.i;\n }\n }), t.webpackPolyfill = 1), t;\n };\n }, function (t, e, n) {\n var r = n(36),\n o = n(40);\n\n t.exports = function (t) {\n return null != t && o(t.length) && !r(t);\n };\n }, function (t, e) {\n t.exports = function (t) {\n return \"number\" == typeof t && t > -1 && t % 1 == 0 && t <= 9007199254740991;\n };\n }, function (t, e) {\n function n(e, r) {\n return t.exports = n = Object.setPrototypeOf || function (t, e) {\n return t.__proto__ = e, t;\n }, t.exports.default = t.exports, t.exports.__esModule = !0, n(e, r);\n }\n\n t.exports = n, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n var r = n(22),\n o = n(18);\n\n t.exports = function (t) {\n return \"symbol\" == _typeof(t) || o(t) && \"[object Symbol]\" == r(t);\n };\n }, function (t, e, n) {\n var r = n(42);\n\n t.exports = function (t) {\n if (\"string\" == typeof t || r(t)) return t;\n var e = t + \"\";\n return \"0\" == e && 1 / t == -1 / 0 ? \"-0\" : e;\n };\n }, function (t, e, n) {\n var r = n(35)(n(17), \"Map\");\n t.exports = r;\n }, function (t, e, n) {\n (function (e) {\n var n = \"object\" == _typeof(e) && e && e.Object === Object && e;\n t.exports = n;\n }).call(this, n(46));\n }, function (t, e) {\n var n;\n\n n = function () {\n return this;\n }();\n\n try {\n n = n || new Function(\"return this\")();\n } catch (t) {\n \"object\" == (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) && (n = window);\n }\n\n t.exports = n;\n }, function (t, e, n) {\n var r = n(109),\n o = n(116),\n i = n(118),\n a = n(119),\n u = n(120);\n\n function c(t) {\n var e = -1,\n n = null == t ? 0 : t.length;\n\n for (this.clear(); ++e < n;) {\n var r = t[e];\n this.set(r[0], r[1]);\n }\n }\n\n c.prototype.clear = r, c.prototype.delete = o, c.prototype.get = i, c.prototype.has = a, c.prototype.set = u, t.exports = c;\n }, function (t, e, n) {\n var r = n(37),\n o = n(26);\n\n t.exports = function (t, e, n) {\n (void 0 !== n && !o(t[e], n) || void 0 === n && !(e in t)) && r(t, e, n);\n };\n }, function (t, e, n) {\n var r = n(35),\n o = function () {\n try {\n var t = r(Object, \"defineProperty\");\n return t({}, \"\", {}), t;\n } catch (t) {}\n }();\n\n t.exports = o;\n }, function (t, e, n) {\n var r = n(131)(Object.getPrototypeOf, Object);\n t.exports = r;\n }, function (t, e) {\n var n = Object.prototype;\n\n t.exports = function (t) {\n var e = t && t.constructor;\n return t === (\"function\" == typeof e && e.prototype || n);\n };\n }, function (t, e, n) {\n (function (t) {\n var r = n(17),\n o = n(134),\n i = e && !e.nodeType && e,\n a = i && \"object\" == _typeof(t) && t && !t.nodeType && t,\n u = a && a.exports === i ? r.Buffer : void 0,\n c = (u ? u.isBuffer : void 0) || o;\n t.exports = c;\n }).call(this, n(38)(t));\n }, function (t, e, n) {\n var r = n(136),\n o = n(137),\n i = n(138),\n a = i && i.isTypedArray,\n u = a ? o(a) : r;\n t.exports = u;\n }, function (t, e) {\n t.exports = function (t, e) {\n if ((\"constructor\" !== e || \"function\" != typeof t[e]) && \"__proto__\" != e) return t[e];\n };\n }, function (t, e, n) {\n var r = n(37),\n o = n(26),\n i = Object.prototype.hasOwnProperty;\n\n t.exports = function (t, e, n) {\n var a = t[e];\n i.call(t, e) && o(a, n) && (void 0 !== n || e in t) || r(t, e, n);\n };\n }, function (t, e, n) {\n var r = n(141),\n o = n(143),\n i = n(39);\n\n t.exports = function (t) {\n return i(t) ? r(t, !0) : o(t);\n };\n }, function (t, e) {\n t.exports = function (t) {\n return t;\n };\n }, function (t, e, n) {\n var r = n(147),\n o = Math.max;\n\n t.exports = function (t, e, n) {\n return e = o(void 0 === e ? t.length - 1 : e, 0), function () {\n for (var i = arguments, a = -1, u = o(i.length - e, 0), c = Array(u); ++a < u;) {\n c[a] = i[e + a];\n }\n\n a = -1;\n\n for (var s = Array(e + 1); ++a < e;) {\n s[a] = i[a];\n }\n\n return s[e] = n(c), r(t, this, s);\n };\n };\n }, function (t, e, n) {\n var r = n(148),\n o = n(150)(r);\n t.exports = o;\n }, function (t, e, n) {\n var r = n(61);\n t.exports = function (t, e) {\n if (t) {\n if (\"string\" == typeof t) return r(t, e);\n var n = Object.prototype.toString.call(t).slice(8, -1);\n return \"Object\" === n && t.constructor && (n = t.constructor.name), \"Map\" === n || \"Set\" === n ? Array.from(t) : \"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? r(t, e) : void 0;\n }\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function (t, e) {\n (null == e || e > t.length) && (e = t.length);\n\n for (var n = 0, r = new Array(e); n < e; n++) {\n r[n] = t[n];\n }\n\n return r;\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = 1e-6;\n }, function (t, e) {\n t.exports = function () {\n var t = new Float32Array(2);\n return t[0] = 0, t[1] = 0, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] - n[0], t[1] = e[1] - n[1], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] * n[0], t[1] = e[1] * n[1], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] / n[0], t[1] = e[1] / n[1], t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = e[0] - t[0],\n r = e[1] - t[1];\n return Math.sqrt(n * n + r * r);\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = e[0] - t[0],\n r = e[1] - t[1];\n return n * n + r * r;\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = t[0],\n n = t[1];\n return Math.sqrt(e * e + n * n);\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = t[0],\n n = t[1];\n return e * e + n * n;\n };\n }, function (t, e) {\n t.exports = 1e-6;\n }, function (t, e) {\n t.exports = function () {\n var t = new Float32Array(3);\n return t[0] = 0, t[1] = 0, t[2] = 0, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = new Float32Array(3);\n return r[0] = t, r[1] = e, r[2] = n, r;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = e[0],\n r = e[1],\n o = e[2],\n i = n * n + r * r + o * o;\n i > 0 && (i = 1 / Math.sqrt(i), t[0] = e[0] * i, t[1] = e[1] * i, t[2] = e[2] * i);\n return t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] * e[0] + t[1] * e[1] + t[2] * e[2];\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] - n[0], t[1] = e[1] - n[1], t[2] = e[2] - n[2], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] * n[0], t[1] = e[1] * n[1], t[2] = e[2] * n[2], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] / n[0], t[1] = e[1] / n[1], t[2] = e[2] / n[2], t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = e[0] - t[0],\n r = e[1] - t[1],\n o = e[2] - t[2];\n return Math.sqrt(n * n + r * r + o * o);\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = e[0] - t[0],\n r = e[1] - t[1],\n o = e[2] - t[2];\n return n * n + r * r + o * o;\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return Math.sqrt(e * e + n * n + r * r);\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return e * e + n * n + r * r;\n };\n }, function (t, e, n) {\n var r = n(153),\n o = n(154),\n i = n(60),\n a = n(155);\n t.exports = function (t, e) {\n return r(t) || o(t, e) || i(t, e) || a();\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n t.exports = {\n EPSILON: n(71),\n create: n(72),\n clone: n(191),\n angle: n(192),\n fromValues: n(73),\n copy: n(193),\n set: n(194),\n equals: n(195),\n exactEquals: n(196),\n add: n(197),\n subtract: n(76),\n sub: n(198),\n multiply: n(77),\n mul: n(199),\n divide: n(78),\n div: n(200),\n min: n(201),\n max: n(202),\n floor: n(203),\n ceil: n(204),\n round: n(205),\n scale: n(206),\n scaleAndAdd: n(207),\n distance: n(79),\n dist: n(208),\n squaredDistance: n(80),\n sqrDist: n(209),\n length: n(81),\n len: n(210),\n squaredLength: n(82),\n sqrLen: n(211),\n negate: n(212),\n inverse: n(213),\n normalize: n(74),\n dot: n(75),\n cross: n(214),\n lerp: n(215),\n random: n(216),\n transformMat4: n(217),\n transformMat3: n(218),\n transformQuat: n(219),\n rotateX: n(220),\n rotateY: n(221),\n rotateZ: n(222),\n forEach: n(223)\n };\n }, function (t, e, n) {\n var r = n(229),\n o = n(243)(function (t, e) {\n return null == t ? {} : r(t, e);\n });\n t.exports = o;\n }, function (t, e, n) {\n var r = n(2),\n o = n(41),\n i = n(248),\n a = n(249);\n\n function u(e) {\n var n = \"function\" == typeof Map ? new Map() : void 0;\n return t.exports = u = function u(t) {\n if (null === t || !i(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n\n if (void 0 !== n) {\n if (n.has(t)) return n.get(t);\n n.set(t, e);\n }\n\n function e() {\n return a(t, arguments, r(this).constructor);\n }\n\n return e.prototype = Object.create(t.prototype, {\n constructor: {\n value: e,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), o(e, t);\n }, t.exports.default = t.exports, t.exports.__esModule = !0, u(e);\n }\n\n t.exports = u, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n \"use strict\";\n\n var r = n(21),\n o = {\n createContour2D: function createContour2D() {\n return {\n dir: null,\n index: null,\n firstVertex: null,\n insideContours: null,\n nextpeer: null,\n prevpeer: null\n };\n },\n CONTOUR_DIR: {\n CW_DIR: 0,\n CCW_DIR: 1,\n UNKNOWN_DIR: 2\n },\n DIR: {\n OUTSIDE_EDGE: -32767,\n INSIDE_EDGE: -32766\n },\n create: function create(t, e) {\n var n = t.data,\n i = e.data,\n a = t.size.x,\n u = t.size.y,\n c = r.a.create(t, e);\n return {\n rasterize: function rasterize(t) {\n var e,\n r,\n s,\n f,\n l,\n h,\n d,\n p,\n v,\n y,\n g,\n x,\n _ = [],\n m = 0;\n\n for (x = 0; x < 400; x++) {\n _[x] = 0;\n }\n\n for (_[0] = n[0], v = null, h = 1; h < u - 1; h++) {\n for (f = 0, r = _[0], l = 1; l < a - 1; l++) {\n if (0 === i[g = h * a + l]) {\n if ((e = n[g]) !== r) {\n if (0 === f) _[s = m + 1] = e, r = e, null !== (d = c.contourTracing(h, l, s, e, o.DIR.OUTSIDE_EDGE)) && (m++, f = s, (p = o.createContour2D()).dir = o.CONTOUR_DIR.CW_DIR, p.index = f, p.firstVertex = d, p.nextpeer = v, p.insideContours = null, null !== v && (v.prevpeer = p), v = p);else if (null !== (d = c.contourTracing(h, l, o.DIR.INSIDE_EDGE, e, f))) {\n for ((p = o.createContour2D()).firstVertex = d, p.insideContours = null, p.dir = 0 === t ? o.CONTOUR_DIR.CCW_DIR : o.CONTOUR_DIR.CW_DIR, p.index = t, y = v; null !== y && y.index !== f;) {\n y = y.nextpeer;\n }\n\n null !== y && (p.nextpeer = y.insideContours, null !== y.insideContours && (y.insideContours.prevpeer = p), y.insideContours = p);\n }\n } else i[g] = f;\n } else i[g] === o.DIR.OUTSIDE_EDGE || i[g] === o.DIR.INSIDE_EDGE ? (f = 0, r = i[g] === o.DIR.INSIDE_EDGE ? n[g] : _[0]) : r = _[f = i[g]];\n }\n }\n\n for (y = v; null !== y;) {\n y.index = t, y = y.nextpeer;\n }\n\n return {\n cc: v,\n count: m\n };\n },\n debug: {\n drawContour: function drawContour(t, e) {\n var n,\n r,\n i,\n a = t.getContext(\"2d\"),\n u = e;\n\n for (a.strokeStyle = \"red\", a.fillStyle = \"red\", a.lineWidth = 1, n = null !== u ? u.insideContours : null; null !== u;) {\n switch (null !== n ? (r = n, n = n.nextpeer) : (r = u, n = null !== (u = u.nextpeer) ? u.insideContours : null), r.dir) {\n case o.CONTOUR_DIR.CW_DIR:\n a.strokeStyle = \"red\";\n break;\n\n case o.CONTOUR_DIR.CCW_DIR:\n a.strokeStyle = \"blue\";\n break;\n\n case o.CONTOUR_DIR.UNKNOWN_DIR:\n a.strokeStyle = \"green\";\n }\n\n i = r.firstVertex, a.beginPath(), a.moveTo(i.x, i.y);\n\n do {\n i = i.next, a.lineTo(i.x, i.y);\n } while (i !== r.firstVertex);\n\n a.stroke();\n }\n }\n }\n };\n }\n };\n e.a = o;\n }, function (t, e, n) {\n \"use strict\";\n /* @preserve ASM BEGIN */\n\n /* @preserve ASM END */\n\n e.a = function (t, e, n) {\n \"use asm\";\n\n var r = new t.Uint8Array(n),\n o = e.size | 0,\n i = t.Math.imul;\n\n function a(t, e) {\n t |= 0;\n e |= 0;\n var n = 0;\n var i = 0;\n var a = 0;\n var u = 0;\n var c = 0;\n var s = 0;\n var f = 0;\n var l = 0;\n\n for (n = 1; (n | 0) < (o - 1 | 0); n = n + 1 | 0) {\n l = l + o | 0;\n\n for (i = 1; (i | 0) < (o - 1 | 0); i = i + 1 | 0) {\n u = l - o | 0;\n c = l + o | 0;\n s = i - 1 | 0;\n f = i + 1 | 0;\n a = (r[t + u + s | 0] | 0) + (r[t + u + f | 0] | 0) + (r[t + l + i | 0] | 0) + (r[t + c + s | 0] | 0) + (r[t + c + f | 0] | 0) | 0;\n\n if ((a | 0) == (5 | 0)) {\n r[e + l + i | 0] = 1;\n } else {\n r[e + l + i | 0] = 0;\n }\n }\n }\n }\n\n function u(t, e, n) {\n t |= 0;\n e |= 0;\n n |= 0;\n var a = 0;\n a = i(o, o) | 0;\n\n while ((a | 0) > 0) {\n a = a - 1 | 0;\n r[n + a | 0] = (r[t + a | 0] | 0) - (r[e + a | 0] | 0) | 0;\n }\n }\n\n function c(t, e, n) {\n t |= 0;\n e |= 0;\n n |= 0;\n var a = 0;\n a = i(o, o) | 0;\n\n while ((a | 0) > 0) {\n a = a - 1 | 0;\n r[n + a | 0] = r[t + a | 0] | 0 | (r[e + a | 0] | 0) | 0;\n }\n }\n\n function s(t) {\n t |= 0;\n var e = 0;\n var n = 0;\n n = i(o, o) | 0;\n\n while ((n | 0) > 0) {\n n = n - 1 | 0;\n e = (e | 0) + (r[t + n | 0] | 0) | 0;\n }\n\n return e | 0;\n }\n\n function f(t, e) {\n t |= 0;\n e |= 0;\n var n = 0;\n n = i(o, o) | 0;\n\n while ((n | 0) > 0) {\n n = n - 1 | 0;\n r[t + n | 0] = e;\n }\n }\n\n function l(t, e) {\n t |= 0;\n e |= 0;\n var n = 0;\n var i = 0;\n var a = 0;\n var u = 0;\n var c = 0;\n var s = 0;\n var f = 0;\n var l = 0;\n\n for (n = 1; (n | 0) < (o - 1 | 0); n = n + 1 | 0) {\n l = l + o | 0;\n\n for (i = 1; (i | 0) < (o - 1 | 0); i = i + 1 | 0) {\n u = l - o | 0;\n c = l + o | 0;\n s = i - 1 | 0;\n f = i + 1 | 0;\n a = (r[t + u + s | 0] | 0) + (r[t + u + f | 0] | 0) + (r[t + l + i | 0] | 0) + (r[t + c + s | 0] | 0) + (r[t + c + f | 0] | 0) | 0;\n\n if ((a | 0) > (0 | 0)) {\n r[e + l + i | 0] = 1;\n } else {\n r[e + l + i | 0] = 0;\n }\n }\n }\n }\n\n function h(t, e) {\n t |= 0;\n e |= 0;\n var n = 0;\n n = i(o, o) | 0;\n\n while ((n | 0) > 0) {\n n = n - 1 | 0;\n r[e + n | 0] = r[t + n | 0] | 0;\n }\n }\n\n function d(t) {\n t |= 0;\n var e = 0;\n var n = 0;\n\n for (e = 0; (e | 0) < (o - 1 | 0); e = e + 1 | 0) {\n r[t + e | 0] = 0;\n r[t + n | 0] = 0;\n n = n + o - 1 | 0;\n r[t + n | 0] = 0;\n n = n + 1 | 0;\n }\n\n for (e = 0; (e | 0) < (o | 0); e = e + 1 | 0) {\n r[t + n | 0] = 0;\n n = n + 1 | 0;\n }\n }\n\n function p() {\n var t = 0;\n var e = 0;\n var n = 0;\n var r = 0;\n var p = 0;\n var v = 0;\n e = i(o, o) | 0;\n n = e + e | 0;\n r = n + e | 0;\n f(r, 0);\n d(t);\n\n do {\n a(t, e);\n l(e, n);\n u(t, n, n);\n c(r, n, r);\n h(e, t);\n p = s(t) | 0;\n v = (p | 0) == 0 | 0;\n } while (!v);\n }\n\n return {\n skeletonize: p\n };\n };\n }, function (t, e, n) {\n t.exports = n(263);\n }, function (t, e, n) {\n var r = n(91),\n o = n(48),\n i = n(121),\n a = n(123),\n u = n(13),\n c = n(56),\n s = n(54);\n\n t.exports = function t(e, n, f, l, h) {\n e !== n && i(n, function (i, c) {\n if (h || (h = new r()), u(i)) a(e, n, c, f, t, l, h);else {\n var d = l ? l(s(e, c), i, c + \"\", e, n, h) : void 0;\n void 0 === d && (d = i), o(e, c, d);\n }\n }, c);\n };\n }, function (t, e, n) {\n var r = n(24),\n o = n(97),\n i = n(98),\n a = n(99),\n u = n(100),\n c = n(101);\n\n function s(t) {\n var e = this.__data__ = new r(t);\n this.size = e.size;\n }\n\n s.prototype.clear = o, s.prototype.delete = i, s.prototype.get = a, s.prototype.has = u, s.prototype.set = c, t.exports = s;\n }, function (t, e) {\n t.exports = function () {\n this.__data__ = [], this.size = 0;\n };\n }, function (t, e, n) {\n var r = n(25),\n o = Array.prototype.splice;\n\n t.exports = function (t) {\n var e = this.__data__,\n n = r(e, t);\n return !(n < 0) && (n == e.length - 1 ? e.pop() : o.call(e, n, 1), --this.size, !0);\n };\n }, function (t, e, n) {\n var r = n(25);\n\n t.exports = function (t) {\n var e = this.__data__,\n n = r(e, t);\n return n < 0 ? void 0 : e[n][1];\n };\n }, function (t, e, n) {\n var r = n(25);\n\n t.exports = function (t) {\n return r(this.__data__, t) > -1;\n };\n }, function (t, e, n) {\n var r = n(25);\n\n t.exports = function (t, e) {\n var n = this.__data__,\n o = r(n, t);\n return o < 0 ? (++this.size, n.push([t, e])) : n[o][1] = e, this;\n };\n }, function (t, e, n) {\n var r = n(24);\n\n t.exports = function () {\n this.__data__ = new r(), this.size = 0;\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = this.__data__,\n n = e.delete(t);\n return this.size = e.size, n;\n };\n }, function (t, e) {\n t.exports = function (t) {\n return this.__data__.get(t);\n };\n }, function (t, e) {\n t.exports = function (t) {\n return this.__data__.has(t);\n };\n }, function (t, e, n) {\n var r = n(24),\n o = n(44),\n i = n(47);\n\n t.exports = function (t, e) {\n var n = this.__data__;\n\n if (n instanceof r) {\n var a = n.__data__;\n if (!o || a.length < 199) return a.push([t, e]), this.size = ++n.size, this;\n n = this.__data__ = new i(a);\n }\n\n return n.set(t, e), this.size = n.size, this;\n };\n }, function (t, e, n) {\n var r = n(36),\n o = n(105),\n i = n(13),\n a = n(107),\n u = /^\\[object .+?Constructor\\]$/,\n c = Function.prototype,\n s = Object.prototype,\n f = c.toString,\n l = s.hasOwnProperty,\n h = RegExp(\"^\" + f.call(l).replace(/[\\\\^$.*+?()[\\]{}|]/g, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\");\n\n t.exports = function (t) {\n return !(!i(t) || o(t)) && (r(t) ? h : u).test(a(t));\n };\n }, function (t, e, n) {\n var r = n(27),\n o = Object.prototype,\n i = o.hasOwnProperty,\n a = o.toString,\n u = r ? r.toStringTag : void 0;\n\n t.exports = function (t) {\n var e = i.call(t, u),\n n = t[u];\n\n try {\n t[u] = void 0;\n var r = !0;\n } catch (t) {}\n\n var o = a.call(t);\n return r && (e ? t[u] = n : delete t[u]), o;\n };\n }, function (t, e) {\n var n = Object.prototype.toString;\n\n t.exports = function (t) {\n return n.call(t);\n };\n }, function (t, e, n) {\n var r,\n o = n(106),\n i = (r = /[^.]+$/.exec(o && o.keys && o.keys.IE_PROTO || \"\")) ? \"Symbol(src)_1.\" + r : \"\";\n\n t.exports = function (t) {\n return !!i && i in t;\n };\n }, function (t, e, n) {\n var r = n(17)[\"__core-js_shared__\"];\n t.exports = r;\n }, function (t, e) {\n var n = Function.prototype.toString;\n\n t.exports = function (t) {\n if (null != t) {\n try {\n return n.call(t);\n } catch (t) {}\n\n try {\n return t + \"\";\n } catch (t) {}\n }\n\n return \"\";\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return null == t ? void 0 : t[e];\n };\n }, function (t, e, n) {\n var r = n(110),\n o = n(24),\n i = n(44);\n\n t.exports = function () {\n this.size = 0, this.__data__ = {\n hash: new r(),\n map: new (i || o)(),\n string: new r()\n };\n };\n }, function (t, e, n) {\n var r = n(111),\n o = n(112),\n i = n(113),\n a = n(114),\n u = n(115);\n\n function c(t) {\n var e = -1,\n n = null == t ? 0 : t.length;\n\n for (this.clear(); ++e < n;) {\n var r = t[e];\n this.set(r[0], r[1]);\n }\n }\n\n c.prototype.clear = r, c.prototype.delete = o, c.prototype.get = i, c.prototype.has = a, c.prototype.set = u, t.exports = c;\n }, function (t, e, n) {\n var r = n(28);\n\n t.exports = function () {\n this.__data__ = r ? r(null) : {}, this.size = 0;\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = this.has(t) && delete this.__data__[t];\n return this.size -= e ? 1 : 0, e;\n };\n }, function (t, e, n) {\n var r = n(28),\n o = Object.prototype.hasOwnProperty;\n\n t.exports = function (t) {\n var e = this.__data__;\n\n if (r) {\n var n = e[t];\n return \"__lodash_hash_undefined__\" === n ? void 0 : n;\n }\n\n return o.call(e, t) ? e[t] : void 0;\n };\n }, function (t, e, n) {\n var r = n(28),\n o = Object.prototype.hasOwnProperty;\n\n t.exports = function (t) {\n var e = this.__data__;\n return r ? void 0 !== e[t] : o.call(e, t);\n };\n }, function (t, e, n) {\n var r = n(28);\n\n t.exports = function (t, e) {\n var n = this.__data__;\n return this.size += this.has(t) ? 0 : 1, n[t] = r && void 0 === e ? \"__lodash_hash_undefined__\" : e, this;\n };\n }, function (t, e, n) {\n var r = n(29);\n\n t.exports = function (t) {\n var e = r(this, t).delete(t);\n return this.size -= e ? 1 : 0, e;\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = _typeof(t);\n\n return \"string\" == e || \"number\" == e || \"symbol\" == e || \"boolean\" == e ? \"__proto__\" !== t : null === t;\n };\n }, function (t, e, n) {\n var r = n(29);\n\n t.exports = function (t) {\n return r(this, t).get(t);\n };\n }, function (t, e, n) {\n var r = n(29);\n\n t.exports = function (t) {\n return r(this, t).has(t);\n };\n }, function (t, e, n) {\n var r = n(29);\n\n t.exports = function (t, e) {\n var n = r(this, t),\n o = n.size;\n return n.set(t, e), this.size += n.size == o ? 0 : 1, this;\n };\n }, function (t, e, n) {\n var r = n(122)();\n t.exports = r;\n }, function (t, e) {\n t.exports = function (t) {\n return function (e, n, r) {\n for (var o = -1, i = Object(e), a = r(e), u = a.length; u--;) {\n var c = a[t ? u : ++o];\n if (!1 === n(i[c], c, i)) break;\n }\n\n return e;\n };\n };\n }, function (t, e, n) {\n var r = n(48),\n o = n(124),\n i = n(125),\n a = n(128),\n u = n(129),\n c = n(30),\n s = n(14),\n f = n(133),\n l = n(52),\n h = n(36),\n d = n(13),\n p = n(135),\n v = n(53),\n y = n(54),\n g = n(139);\n\n t.exports = function (t, e, n, x, _, m, b) {\n var w = y(t, n),\n O = y(e, n),\n R = b.get(O);\n if (R) r(t, n, R);else {\n var C = m ? m(w, O, n + \"\", t, e, b) : void 0,\n E = void 0 === C;\n\n if (E) {\n var M = s(O),\n S = !M && l(O),\n A = !M && !S && v(O);\n C = O, M || S || A ? s(w) ? C = w : f(w) ? C = a(w) : S ? (E = !1, C = o(O, !0)) : A ? (E = !1, C = i(O, !0)) : C = [] : p(O) || c(O) ? (C = w, c(w) ? C = g(w) : d(w) && !h(w) || (C = u(O))) : E = !1;\n }\n\n E && (b.set(O, C), _(C, O, x, m, b), b.delete(O)), r(t, n, C);\n }\n };\n }, function (t, e, n) {\n (function (t) {\n var r = n(17),\n o = e && !e.nodeType && e,\n i = o && \"object\" == _typeof(t) && t && !t.nodeType && t,\n a = i && i.exports === o ? r.Buffer : void 0,\n u = a ? a.allocUnsafe : void 0;\n\n t.exports = function (t, e) {\n if (e) return t.slice();\n var n = t.length,\n r = u ? u(n) : new t.constructor(n);\n return t.copy(r), r;\n };\n }).call(this, n(38)(t));\n }, function (t, e, n) {\n var r = n(126);\n\n t.exports = function (t, e) {\n var n = e ? r(t.buffer) : t.buffer;\n return new t.constructor(n, t.byteOffset, t.length);\n };\n }, function (t, e, n) {\n var r = n(127);\n\n t.exports = function (t) {\n var e = new t.constructor(t.byteLength);\n return new r(e).set(new r(t)), e;\n };\n }, function (t, e, n) {\n var r = n(17).Uint8Array;\n t.exports = r;\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = -1,\n r = t.length;\n\n for (e || (e = Array(r)); ++n < r;) {\n e[n] = t[n];\n }\n\n return e;\n };\n }, function (t, e, n) {\n var r = n(130),\n o = n(50),\n i = n(51);\n\n t.exports = function (t) {\n return \"function\" != typeof t.constructor || i(t) ? {} : r(o(t));\n };\n }, function (t, e, n) {\n var r = n(13),\n o = Object.create,\n i = function () {\n function t() {}\n\n return function (e) {\n if (!r(e)) return {};\n if (o) return o(e);\n t.prototype = e;\n var n = new t();\n return t.prototype = void 0, n;\n };\n }();\n\n t.exports = i;\n }, function (t, e) {\n t.exports = function (t, e) {\n return function (n) {\n return t(e(n));\n };\n };\n }, function (t, e, n) {\n var r = n(22),\n o = n(18);\n\n t.exports = function (t) {\n return o(t) && \"[object Arguments]\" == r(t);\n };\n }, function (t, e, n) {\n var r = n(39),\n o = n(18);\n\n t.exports = function (t) {\n return o(t) && r(t);\n };\n }, function (t, e) {\n t.exports = function () {\n return !1;\n };\n }, function (t, e, n) {\n var r = n(22),\n o = n(50),\n i = n(18),\n a = Function.prototype,\n u = Object.prototype,\n c = a.toString,\n s = u.hasOwnProperty,\n f = c.call(Object);\n\n t.exports = function (t) {\n if (!i(t) || \"[object Object]\" != r(t)) return !1;\n var e = o(t);\n if (null === e) return !0;\n var n = s.call(e, \"constructor\") && e.constructor;\n return \"function\" == typeof n && n instanceof n && c.call(n) == f;\n };\n }, function (t, e, n) {\n var r = n(22),\n o = n(40),\n i = n(18),\n a = {};\n a[\"[object Float32Array]\"] = a[\"[object Float64Array]\"] = a[\"[object Int8Array]\"] = a[\"[object Int16Array]\"] = a[\"[object Int32Array]\"] = a[\"[object Uint8Array]\"] = a[\"[object Uint8ClampedArray]\"] = a[\"[object Uint16Array]\"] = a[\"[object Uint32Array]\"] = !0, a[\"[object Arguments]\"] = a[\"[object Array]\"] = a[\"[object ArrayBuffer]\"] = a[\"[object Boolean]\"] = a[\"[object DataView]\"] = a[\"[object Date]\"] = a[\"[object Error]\"] = a[\"[object Function]\"] = a[\"[object Map]\"] = a[\"[object Number]\"] = a[\"[object Object]\"] = a[\"[object RegExp]\"] = a[\"[object Set]\"] = a[\"[object String]\"] = a[\"[object WeakMap]\"] = !1, t.exports = function (t) {\n return i(t) && o(t.length) && !!a[r(t)];\n };\n }, function (t, e) {\n t.exports = function (t) {\n return function (e) {\n return t(e);\n };\n };\n }, function (t, e, n) {\n (function (t) {\n var r = n(45),\n o = e && !e.nodeType && e,\n i = o && \"object\" == _typeof(t) && t && !t.nodeType && t,\n a = i && i.exports === o && r.process,\n u = function () {\n try {\n var t = i && i.require && i.require(\"util\").types;\n\n return t || a && a.binding && a.binding(\"util\");\n } catch (t) {}\n }();\n\n t.exports = u;\n }).call(this, n(38)(t));\n }, function (t, e, n) {\n var r = n(140),\n o = n(56);\n\n t.exports = function (t) {\n return r(t, o(t));\n };\n }, function (t, e, n) {\n var r = n(55),\n o = n(37);\n\n t.exports = function (t, e, n, i) {\n var a = !n;\n n || (n = {});\n\n for (var u = -1, c = e.length; ++u < c;) {\n var s = e[u],\n f = i ? i(n[s], t[s], s, n, t) : void 0;\n void 0 === f && (f = t[s]), a ? o(n, s, f) : r(n, s, f);\n }\n\n return n;\n };\n }, function (t, e, n) {\n var r = n(142),\n o = n(30),\n i = n(14),\n a = n(52),\n u = n(31),\n c = n(53),\n s = Object.prototype.hasOwnProperty;\n\n t.exports = function (t, e) {\n var n = i(t),\n f = !n && o(t),\n l = !n && !f && a(t),\n h = !n && !f && !l && c(t),\n d = n || f || l || h,\n p = d ? r(t.length, String) : [],\n v = p.length;\n\n for (var y in t) {\n !e && !s.call(t, y) || d && (\"length\" == y || l && (\"offset\" == y || \"parent\" == y) || h && (\"buffer\" == y || \"byteLength\" == y || \"byteOffset\" == y) || u(y, v)) || p.push(y);\n }\n\n return p;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n for (var n = -1, r = Array(t); ++n < t;) {\n r[n] = e(n);\n }\n\n return r;\n };\n }, function (t, e, n) {\n var r = n(13),\n o = n(51),\n i = n(144),\n a = Object.prototype.hasOwnProperty;\n\n t.exports = function (t) {\n if (!r(t)) return i(t);\n var e = o(t),\n n = [];\n\n for (var u in t) {\n (\"constructor\" != u || !e && a.call(t, u)) && n.push(u);\n }\n\n return n;\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = [];\n if (null != t) for (var n in Object(t)) {\n e.push(n);\n }\n return e;\n };\n }, function (t, e, n) {\n var r = n(146),\n o = n(151);\n\n t.exports = function (t) {\n return r(function (e, n) {\n var r = -1,\n i = n.length,\n a = i > 1 ? n[i - 1] : void 0,\n u = i > 2 ? n[2] : void 0;\n\n for (a = t.length > 3 && \"function\" == typeof a ? (i--, a) : void 0, u && o(n[0], n[1], u) && (a = i < 3 ? void 0 : a, i = 1), e = Object(e); ++r < i;) {\n var c = n[r];\n c && t(e, c, r, a);\n }\n\n return e;\n });\n };\n }, function (t, e, n) {\n var r = n(57),\n o = n(58),\n i = n(59);\n\n t.exports = function (t, e) {\n return i(o(t, e, r), t + \"\");\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n switch (n.length) {\n case 0:\n return t.call(e);\n\n case 1:\n return t.call(e, n[0]);\n\n case 2:\n return t.call(e, n[0], n[1]);\n\n case 3:\n return t.call(e, n[0], n[1], n[2]);\n }\n\n return t.apply(e, n);\n };\n }, function (t, e, n) {\n var r = n(149),\n o = n(49),\n i = n(57),\n a = o ? function (t, e) {\n return o(t, \"toString\", {\n configurable: !0,\n enumerable: !1,\n value: r(e),\n writable: !0\n });\n } : i;\n t.exports = a;\n }, function (t, e) {\n t.exports = function (t) {\n return function () {\n return t;\n };\n };\n }, function (t, e) {\n var n = Date.now;\n\n t.exports = function (t) {\n var e = 0,\n r = 0;\n return function () {\n var o = n(),\n i = 16 - (o - r);\n\n if (r = o, i > 0) {\n if (++e >= 800) return arguments[0];\n } else e = 0;\n\n return t.apply(void 0, arguments);\n };\n };\n }, function (t, e, n) {\n var r = n(26),\n o = n(39),\n i = n(31),\n a = n(13);\n\n t.exports = function (t, e, n) {\n if (!a(n)) return !1;\n\n var u = _typeof(e);\n\n return !!(\"number\" == u ? o(n) && i(e, n.length) : \"string\" == u && e in n) && r(n[e], t);\n };\n }, function (t, e) {\n \"undefined\" != typeof window && (window.requestAnimationFrame || (window.requestAnimationFrame = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (t) {\n window.setTimeout(t, 1e3 / 60);\n })), \"function\" != typeof Math.imul && (Math.imul = function (t, e) {\n var n = 65535 & t,\n r = 65535 & e;\n return n * r + ((t >>> 16 & 65535) * r + n * (e >>> 16 & 65535) << 16 >>> 0) | 0;\n }), \"function\" != typeof Object.assign && (Object.assign = function (t) {\n \"use strict\";\n\n if (null === t) throw new TypeError(\"Cannot convert undefined or null to object\");\n\n for (var e = Object(t), n = 1; n < arguments.length; n++) {\n var r = arguments[n];\n if (null !== r) for (var o in r) {\n Object.prototype.hasOwnProperty.call(r, o) && (e[o] = r[o]);\n }\n }\n\n return e;\n });\n }, function (t, e) {\n t.exports = function (t) {\n if (Array.isArray(t)) return t;\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = null == t ? null : \"undefined\" != typeof Symbol && t[Symbol.iterator] || t[\"@@iterator\"];\n\n if (null != n) {\n var r,\n o,\n i = [],\n a = !0,\n u = !1;\n\n try {\n for (n = n.call(t); !(a = (r = n.next()).done) && (i.push(r.value), !e || i.length !== e); a = !0) {\n ;\n }\n } catch (t) {\n u = !0, o = t;\n } finally {\n try {\n a || null == n.return || n.return();\n } finally {\n if (u) throw o;\n }\n }\n\n return i;\n }\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function (t) {\n var e = new Float32Array(2);\n return e[0] = t[0], e[1] = t[1], e;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = new Float32Array(2);\n return n[0] = t, n[1] = e, n;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = e[0], t[1] = e[1], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e, t[1] = n, t;\n };\n }, function (t, e, n) {\n t.exports = function (t, e) {\n var n = t[0],\n o = t[1],\n i = e[0],\n a = e[1];\n return Math.abs(n - i) <= r * Math.max(1, Math.abs(n), Math.abs(i)) && Math.abs(o - a) <= r * Math.max(1, Math.abs(o), Math.abs(a));\n };\n\n var r = n(62);\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] === e[0] && t[1] === e[1];\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] + n[0], t[1] = e[1] + n[1], t;\n };\n }, function (t, e, n) {\n t.exports = n(64);\n }, function (t, e, n) {\n t.exports = n(65);\n }, function (t, e, n) {\n t.exports = n(66);\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = 1 / e[0], t[1] = 1 / e[1], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = Math.min(e[0], n[0]), t[1] = Math.min(e[1], n[1]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = Math.max(e[0], n[0]), t[1] = Math.max(e[1], n[1]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = Math.cos(n),\n o = Math.sin(n),\n i = e[0],\n a = e[1];\n return t[0] = i * r - a * o, t[1] = i * o + a * r, t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = Math.floor(e[0]), t[1] = Math.floor(e[1]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = Math.ceil(e[0]), t[1] = Math.ceil(e[1]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = Math.round(e[0]), t[1] = Math.round(e[1]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] * n, t[1] = e[1] * n, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n return t[0] = e[0] + n[0] * r, t[1] = e[1] + n[1] * r, t;\n };\n }, function (t, e, n) {\n t.exports = n(67);\n }, function (t, e, n) {\n t.exports = n(68);\n }, function (t, e, n) {\n t.exports = n(69);\n }, function (t, e, n) {\n t.exports = n(70);\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = -e[0], t[1] = -e[1], t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = e[0],\n r = e[1],\n o = n * n + r * r;\n o > 0 && (o = 1 / Math.sqrt(o), t[0] = e[0] * o, t[1] = e[1] * o);\n return t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] * e[0] + t[1] * e[1];\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0] * n[1] - e[1] * n[0];\n return t[0] = t[1] = 0, t[2] = r, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n var o = e[0],\n i = e[1];\n return t[0] = o + r * (n[0] - o), t[1] = i + r * (n[1] - i), t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n e = e || 1;\n var n = 2 * Math.random() * Math.PI;\n return t[0] = Math.cos(n) * e, t[1] = Math.sin(n) * e, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1];\n return t[0] = n[0] * r + n[2] * o, t[1] = n[1] * r + n[3] * o, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1];\n return t[0] = n[0] * r + n[2] * o + n[4], t[1] = n[1] * r + n[3] * o + n[5], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1];\n return t[0] = n[0] * r + n[3] * o + n[6], t[1] = n[1] * r + n[4] * o + n[7], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1];\n return t[0] = n[0] * r + n[4] * o + n[12], t[1] = n[1] * r + n[5] * o + n[13], t;\n };\n }, function (t, e, n) {\n t.exports = function (t, e, n, o, i, a) {\n var u, c;\n e || (e = 2);\n n || (n = 0);\n c = o ? Math.min(o * e + n, t.length) : t.length;\n\n for (u = n; u < c; u += e) {\n r[0] = t[u], r[1] = t[u + 1], i(r, r, a), t[u] = r[0], t[u + 1] = r[1];\n }\n\n return t;\n };\n\n var r = n(63)();\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0] * e[0] + e[1] * e[1];\n\n if (r > n * n) {\n var o = Math.sqrt(r);\n t[0] = e[0] / o * n, t[1] = e[1] / o * n;\n } else t[0] = e[0], t[1] = e[1];\n\n return t;\n };\n }, function (t, e) {\n t.exports = function (t) {\n var e = new Float32Array(3);\n return e[0] = t[0], e[1] = t[1], e[2] = t[2], e;\n };\n }, function (t, e, n) {\n t.exports = function (t, e) {\n var n = r(t[0], t[1], t[2]),\n a = r(e[0], e[1], e[2]);\n o(n, n), o(a, a);\n var u = i(n, a);\n return u > 1 ? 0 : Math.acos(u);\n };\n\n var r = n(73),\n o = n(74),\n i = n(75);\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = e[0], t[1] = e[1], t[2] = e[2], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n return t[0] = e, t[1] = n, t[2] = r, t;\n };\n }, function (t, e, n) {\n t.exports = function (t, e) {\n var n = t[0],\n o = t[1],\n i = t[2],\n a = e[0],\n u = e[1],\n c = e[2];\n return Math.abs(n - a) <= r * Math.max(1, Math.abs(n), Math.abs(a)) && Math.abs(o - u) <= r * Math.max(1, Math.abs(o), Math.abs(u)) && Math.abs(i - c) <= r * Math.max(1, Math.abs(i), Math.abs(c));\n };\n\n var r = n(71);\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] === e[0] && t[1] === e[1] && t[2] === e[2];\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] + n[0], t[1] = e[1] + n[1], t[2] = e[2] + n[2], t;\n };\n }, function (t, e, n) {\n t.exports = n(76);\n }, function (t, e, n) {\n t.exports = n(77);\n }, function (t, e, n) {\n t.exports = n(78);\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = Math.min(e[0], n[0]), t[1] = Math.min(e[1], n[1]), t[2] = Math.min(e[2], n[2]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = Math.max(e[0], n[0]), t[1] = Math.max(e[1], n[1]), t[2] = Math.max(e[2], n[2]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = Math.floor(e[0]), t[1] = Math.floor(e[1]), t[2] = Math.floor(e[2]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = Math.ceil(e[0]), t[1] = Math.ceil(e[1]), t[2] = Math.ceil(e[2]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = Math.round(e[0]), t[1] = Math.round(e[1]), t[2] = Math.round(e[2]), t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n return t[0] = e[0] * n, t[1] = e[1] * n, t[2] = e[2] * n, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n return t[0] = e[0] + n[0] * r, t[1] = e[1] + n[1] * r, t[2] = e[2] + n[2] * r, t;\n };\n }, function (t, e, n) {\n t.exports = n(79);\n }, function (t, e, n) {\n t.exports = n(80);\n }, function (t, e, n) {\n t.exports = n(81);\n }, function (t, e, n) {\n t.exports = n(82);\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = -e[0], t[1] = -e[1], t[2] = -e[2], t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = 1 / e[0], t[1] = 1 / e[1], t[2] = 1 / e[2], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1],\n i = e[2],\n a = n[0],\n u = n[1],\n c = n[2];\n return t[0] = o * c - i * u, t[1] = i * a - r * c, t[2] = r * u - o * a, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n var o = e[0],\n i = e[1],\n a = e[2];\n return t[0] = o + r * (n[0] - o), t[1] = i + r * (n[1] - i), t[2] = a + r * (n[2] - a), t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n e = e || 1;\n var n = 2 * Math.random() * Math.PI,\n r = 2 * Math.random() - 1,\n o = Math.sqrt(1 - r * r) * e;\n return t[0] = Math.cos(n) * o, t[1] = Math.sin(n) * o, t[2] = r * e, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1],\n i = e[2],\n a = n[3] * r + n[7] * o + n[11] * i + n[15];\n return a = a || 1, t[0] = (n[0] * r + n[4] * o + n[8] * i + n[12]) / a, t[1] = (n[1] * r + n[5] * o + n[9] * i + n[13]) / a, t[2] = (n[2] * r + n[6] * o + n[10] * i + n[14]) / a, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1],\n i = e[2];\n return t[0] = r * n[0] + o * n[3] + i * n[6], t[1] = r * n[1] + o * n[4] + i * n[7], t[2] = r * n[2] + o * n[5] + i * n[8], t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1],\n i = e[2],\n a = n[0],\n u = n[1],\n c = n[2],\n s = n[3],\n f = s * r + u * i - c * o,\n l = s * o + c * r - a * i,\n h = s * i + a * o - u * r,\n d = -a * r - u * o - c * i;\n return t[0] = f * s + d * -a + l * -c - h * -u, t[1] = l * s + d * -u + h * -a - f * -c, t[2] = h * s + d * -c + f * -u - l * -a, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n var o = n[1],\n i = n[2],\n a = e[1] - o,\n u = e[2] - i,\n c = Math.sin(r),\n s = Math.cos(r);\n return t[0] = e[0], t[1] = o + a * s - u * c, t[2] = i + a * c + u * s, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n var o = n[0],\n i = n[2],\n a = e[0] - o,\n u = e[2] - i,\n c = Math.sin(r),\n s = Math.cos(r);\n return t[0] = o + u * c + a * s, t[1] = e[1], t[2] = i + u * s - a * c, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n var o = n[0],\n i = n[1],\n a = e[0] - o,\n u = e[1] - i,\n c = Math.sin(r),\n s = Math.cos(r);\n return t[0] = o + a * s - u * c, t[1] = i + a * c + u * s, t[2] = e[2], t;\n };\n }, function (t, e, n) {\n t.exports = function (t, e, n, o, i, a) {\n var u, c;\n e || (e = 3);\n n || (n = 0);\n c = o ? Math.min(o * e + n, t.length) : t.length;\n\n for (u = n; u < c; u += e) {\n r[0] = t[u], r[1] = t[u + 1], r[2] = t[u + 2], i(r, r, a), t[u] = r[0], t[u + 1] = r[1], t[u + 2] = r[2];\n }\n\n return t;\n };\n\n var r = n(72)();\n }, function (t, e, n) {\n var r = n(61);\n t.exports = function (t) {\n if (Array.isArray(t)) return r(t);\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function (t) {\n if (\"undefined\" != typeof Symbol && null != t[Symbol.iterator] || null != t[\"@@iterator\"]) return Array.from(t);\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function () {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n var r = n(2);\n t.exports = function (t, e) {\n for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = r(t));) {\n ;\n }\n\n return t;\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n var r = function (t) {\n \"use strict\";\n\n var e = Object.prototype,\n n = e.hasOwnProperty,\n r = \"function\" == typeof Symbol ? Symbol : {},\n o = r.iterator || \"@@iterator\",\n i = r.asyncIterator || \"@@asyncIterator\",\n a = r.toStringTag || \"@@toStringTag\";\n\n function u(t, e, n, r) {\n var o = e && e.prototype instanceof f ? e : f,\n i = Object.create(o.prototype),\n a = new w(r || []);\n return i._invoke = function (t, e, n) {\n var r = \"suspendedStart\";\n return function (o, i) {\n if (\"executing\" === r) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === r) {\n if (\"throw\" === o) throw i;\n return R();\n }\n\n for (n.method = o, n.arg = i;;) {\n var a = n.delegate;\n\n if (a) {\n var u = _(a, n);\n\n if (u) {\n if (u === s) continue;\n return u;\n }\n }\n\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (\"suspendedStart\" === r) throw r = \"completed\", n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n r = \"executing\";\n var f = c(t, e, n);\n\n if (\"normal\" === f.type) {\n if (r = n.done ? \"completed\" : \"suspendedYield\", f.arg === s) continue;\n return {\n value: f.arg,\n done: n.done\n };\n }\n\n \"throw\" === f.type && (r = \"completed\", n.method = \"throw\", n.arg = f.arg);\n }\n };\n }(t, n, a), i;\n }\n\n function c(t, e, n) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, n)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n\n t.wrap = u;\n var s = {};\n\n function f() {}\n\n function l() {}\n\n function h() {}\n\n var d = {};\n\n d[o] = function () {\n return this;\n };\n\n var p = Object.getPrototypeOf,\n v = p && p(p(O([])));\n v && v !== e && n.call(v, o) && (d = v);\n var y = h.prototype = f.prototype = Object.create(d);\n\n function g(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n t[e] = function (t) {\n return this._invoke(e, t);\n };\n });\n }\n\n function x(t, e) {\n var r;\n\n this._invoke = function (o, i) {\n function a() {\n return new e(function (r, a) {\n !function r(o, i, a, u) {\n var s = c(t[o], t, i);\n\n if (\"throw\" !== s.type) {\n var f = s.arg,\n l = f.value;\n return l && \"object\" == _typeof(l) && n.call(l, \"__await\") ? e.resolve(l.__await).then(function (t) {\n r(\"next\", t, a, u);\n }, function (t) {\n r(\"throw\", t, a, u);\n }) : e.resolve(l).then(function (t) {\n f.value = t, a(f);\n }, function (t) {\n return r(\"throw\", t, a, u);\n });\n }\n\n u(s.arg);\n }(o, i, r, a);\n });\n }\n\n return r = r ? r.then(a, a) : a();\n };\n }\n\n function _(t, e) {\n var n = t.iterator[e.method];\n\n if (void 0 === n) {\n if (e.delegate = null, \"throw\" === e.method) {\n if (t.iterator.return && (e.method = \"return\", e.arg = void 0, _(t, e), \"throw\" === e.method)) return s;\n e.method = \"throw\", e.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return s;\n }\n\n var r = c(n, t.iterator, e.arg);\n if (\"throw\" === r.type) return e.method = \"throw\", e.arg = r.arg, e.delegate = null, s;\n var o = r.arg;\n return o ? o.done ? (e[t.resultName] = o.value, e.next = t.nextLoc, \"return\" !== e.method && (e.method = \"next\", e.arg = void 0), e.delegate = null, s) : o : (e.method = \"throw\", e.arg = new TypeError(\"iterator result is not an object\"), e.delegate = null, s);\n }\n\n function m(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n\n function b(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n\n function w(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(m, this), this.reset(!0);\n }\n\n function O(t) {\n if (t) {\n var e = t[o];\n if (e) return e.call(t);\n if (\"function\" == typeof t.next) return t;\n\n if (!isNaN(t.length)) {\n var r = -1,\n i = function e() {\n for (; ++r < t.length;) {\n if (n.call(t, r)) return e.value = t[r], e.done = !1, e;\n }\n\n return e.value = void 0, e.done = !0, e;\n };\n\n return i.next = i;\n }\n }\n\n return {\n next: R\n };\n }\n\n function R() {\n return {\n value: void 0,\n done: !0\n };\n }\n\n return l.prototype = y.constructor = h, h.constructor = l, h[a] = l.displayName = \"GeneratorFunction\", t.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === l || \"GeneratorFunction\" === (e.displayName || e.name));\n }, t.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, h) : (t.__proto__ = h, a in t || (t[a] = \"GeneratorFunction\")), t.prototype = Object.create(y), t;\n }, t.awrap = function (t) {\n return {\n __await: t\n };\n }, g(x.prototype), x.prototype[i] = function () {\n return this;\n }, t.AsyncIterator = x, t.async = function (e, n, r, o, i) {\n void 0 === i && (i = Promise);\n var a = new x(u(e, n, r, o), i);\n return t.isGeneratorFunction(n) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, g(y), y[a] = \"Generator\", y[o] = function () {\n return this;\n }, y.toString = function () {\n return \"[object Generator]\";\n }, t.keys = function (t) {\n var e = [];\n\n for (var n in t) {\n e.push(n);\n }\n\n return e.reverse(), function n() {\n for (; e.length;) {\n var r = e.pop();\n if (r in t) return n.value = r, n.done = !1, n;\n }\n\n return n.done = !0, n;\n };\n }, t.values = O, w.prototype = {\n constructor: w,\n reset: function reset(t) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = void 0, this.tryEntries.forEach(b), !t) for (var e in this) {\n \"t\" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = void 0);\n }\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(t) {\n if (this.done) throw t;\n var e = this;\n\n function r(n, r) {\n return a.type = \"throw\", a.arg = t, e.next = n, r && (e.method = \"next\", e.arg = void 0), !!r;\n }\n\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return r(\"end\");\n\n if (i.tryLoc <= this.prev) {\n var u = n.call(i, \"catchLoc\"),\n c = n.call(i, \"finallyLoc\");\n\n if (u && c) {\n if (this.prev < i.catchLoc) return r(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return r(i.finallyLoc);\n } else if (u) {\n if (this.prev < i.catchLoc) return r(i.catchLoc, !0);\n } else {\n if (!c) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return r(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, s) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), s;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var n = this.tryEntries[e];\n if (n.finallyLoc === t) return this.complete(n.completion, n.afterLoc), b(n), s;\n }\n },\n catch: function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var n = this.tryEntries[e];\n\n if (n.tryLoc === t) {\n var r = n.completion;\n\n if (\"throw\" === r.type) {\n var o = r.arg;\n b(n);\n }\n\n return o;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(t, e, n) {\n return this.delegate = {\n iterator: O(t),\n resultName: e,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = void 0), s;\n }\n }, t;\n }(t.exports);\n\n try {\n regeneratorRuntime = r;\n } catch (t) {\n Function(\"r\", \"regeneratorRuntime = r\")(r);\n }\n }, function (t, e, n) {\n var r = n(230),\n o = n(240);\n\n t.exports = function (t, e) {\n return r(t, e, function (e, n) {\n return o(t, n);\n });\n };\n }, function (t, e, n) {\n var r = n(231),\n o = n(239),\n i = n(32);\n\n t.exports = function (t, e, n) {\n for (var a = -1, u = e.length, c = {}; ++a < u;) {\n var s = e[a],\n f = r(t, s);\n n(f, s) && o(c, i(s, t), f);\n }\n\n return c;\n };\n }, function (t, e, n) {\n var r = n(32),\n o = n(43);\n\n t.exports = function (t, e) {\n for (var n = 0, i = (e = r(e, t)).length; null != t && n < i;) {\n t = t[o(e[n++])];\n }\n\n return n && n == i ? t : void 0;\n };\n }, function (t, e, n) {\n var r = n(14),\n o = n(42),\n i = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n a = /^\\w*$/;\n\n t.exports = function (t, e) {\n if (r(t)) return !1;\n\n var n = _typeof(t);\n\n return !(\"number\" != n && \"symbol\" != n && \"boolean\" != n && null != t && !o(t)) || a.test(t) || !i.test(t) || null != e && t in Object(e);\n };\n }, function (t, e, n) {\n var r = n(234),\n o = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,\n i = /\\\\(\\\\)?/g,\n a = r(function (t) {\n var e = [];\n return 46 === t.charCodeAt(0) && e.push(\"\"), t.replace(o, function (t, n, r, o) {\n e.push(r ? o.replace(i, \"$1\") : n || t);\n }), e;\n });\n t.exports = a;\n }, function (t, e, n) {\n var r = n(235);\n\n t.exports = function (t) {\n var e = r(t, function (t) {\n return 500 === n.size && n.clear(), t;\n }),\n n = e.cache;\n return e;\n };\n }, function (t, e, n) {\n var r = n(47);\n\n function o(t, e) {\n if (\"function\" != typeof t || null != e && \"function\" != typeof e) throw new TypeError(\"Expected a function\");\n\n var n = function n() {\n var r = arguments,\n o = e ? e.apply(this, r) : r[0],\n i = n.cache;\n if (i.has(o)) return i.get(o);\n var a = t.apply(this, r);\n return n.cache = i.set(o, a) || i, a;\n };\n\n return n.cache = new (o.Cache || r)(), n;\n }\n\n o.Cache = r, t.exports = o;\n }, function (t, e, n) {\n var r = n(237);\n\n t.exports = function (t) {\n return null == t ? \"\" : r(t);\n };\n }, function (t, e, n) {\n var r = n(27),\n o = n(238),\n i = n(14),\n a = n(42),\n u = r ? r.prototype : void 0,\n c = u ? u.toString : void 0;\n\n t.exports = function t(e) {\n if (\"string\" == typeof e) return e;\n if (i(e)) return o(e, t) + \"\";\n if (a(e)) return c ? c.call(e) : \"\";\n var n = e + \"\";\n return \"0\" == n && 1 / e == -1 / 0 ? \"-0\" : n;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n for (var n = -1, r = null == t ? 0 : t.length, o = Array(r); ++n < r;) {\n o[n] = e(t[n], n, t);\n }\n\n return o;\n };\n }, function (t, e, n) {\n var r = n(55),\n o = n(32),\n i = n(31),\n a = n(13),\n u = n(43);\n\n t.exports = function (t, e, n, c) {\n if (!a(t)) return t;\n\n for (var s = -1, f = (e = o(e, t)).length, l = f - 1, h = t; null != h && ++s < f;) {\n var d = u(e[s]),\n p = n;\n if (\"__proto__\" === d || \"constructor\" === d || \"prototype\" === d) return t;\n\n if (s != l) {\n var v = h[d];\n void 0 === (p = c ? c(v, d, h) : void 0) && (p = a(v) ? v : i(e[s + 1]) ? [] : {});\n }\n\n r(h, d, p), h = h[d];\n }\n\n return t;\n };\n }, function (t, e, n) {\n var r = n(241),\n o = n(242);\n\n t.exports = function (t, e) {\n return null != t && o(t, e, r);\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return null != t && e in Object(t);\n };\n }, function (t, e, n) {\n var r = n(32),\n o = n(30),\n i = n(14),\n a = n(31),\n u = n(40),\n c = n(43);\n\n t.exports = function (t, e, n) {\n for (var s = -1, f = (e = r(e, t)).length, l = !1; ++s < f;) {\n var h = c(e[s]);\n if (!(l = null != t && n(t, h))) break;\n t = t[h];\n }\n\n return l || ++s != f ? l : !!(f = null == t ? 0 : t.length) && u(f) && a(h, f) && (i(t) || o(t));\n };\n }, function (t, e, n) {\n var r = n(244),\n o = n(58),\n i = n(59);\n\n t.exports = function (t) {\n return i(o(t, void 0, r), t + \"\");\n };\n }, function (t, e, n) {\n var r = n(245);\n\n t.exports = function (t) {\n return (null == t ? 0 : t.length) ? r(t, 1) : [];\n };\n }, function (t, e, n) {\n var r = n(246),\n o = n(247);\n\n t.exports = function t(e, n, i, a, u) {\n var c = -1,\n s = e.length;\n\n for (i || (i = o), u || (u = []); ++c < s;) {\n var f = e[c];\n n > 0 && i(f) ? n > 1 ? t(f, n - 1, i, a, u) : r(u, f) : a || (u[u.length] = f);\n }\n\n return u;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n for (var n = -1, r = e.length, o = t.length; ++n < r;) {\n t[o + n] = e[n];\n }\n\n return t;\n };\n }, function (t, e, n) {\n var r = n(27),\n o = n(30),\n i = n(14),\n a = r ? r.isConcatSpreadable : void 0;\n\n t.exports = function (t) {\n return i(t) || o(t) || !!(a && t && t[a]);\n };\n }, function (t, e) {\n t.exports = function (t) {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e, n) {\n var r = n(41),\n o = n(250);\n\n function i(e, n, a) {\n return o() ? (t.exports = i = Reflect.construct, t.exports.default = t.exports, t.exports.__esModule = !0) : (t.exports = i = function i(t, e, n) {\n var o = [null];\n o.push.apply(o, e);\n var i = new (Function.bind.apply(t, o))();\n return n && r(i, n.prototype), i;\n }, t.exports.default = t.exports, t.exports.__esModule = !0), i.apply(null, arguments);\n }\n\n t.exports = i, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }, t.exports.default = t.exports, t.exports.__esModule = !0;\n }, function (t, e) {\n t.exports = function (t) {\n return t[0] * t[3] - t[2] * t[1];\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n if (t === e) {\n var n = e[1];\n t[1] = e[2], t[2] = n;\n } else t[0] = e[0], t[1] = e[2], t[2] = e[1], t[3] = e[3];\n\n return t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1],\n i = e[2],\n a = e[3],\n u = n[0],\n c = n[1],\n s = n[2],\n f = n[3];\n return t[0] = r * u + i * c, t[1] = o * u + a * c, t[2] = r * s + i * f, t[3] = o * s + a * f, t;\n };\n }, function (t, e) {\n t.exports = function (t) {\n return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = e[0];\n return t[0] = e[3], t[1] = -e[1], t[2] = -e[2], t[3] = n, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1],\n i = e[2],\n a = e[3],\n u = Math.sin(n),\n c = Math.cos(n);\n return t[0] = r * c + i * u, t[1] = o * c + a * u, t[2] = r * -u + i * c, t[3] = o * -u + a * c, t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n var n = e[0],\n r = e[1],\n o = e[2],\n i = e[3],\n a = n * i - o * r;\n return a ? (a = 1 / a, t[0] = i * a, t[1] = -r * a, t[2] = -o * a, t[3] = n * a, t) : null;\n };\n }, function (t, e) {\n t.exports = function () {\n var t = new Float32Array(4);\n return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t;\n };\n }, function (t, e) {\n t.exports = function (t, e, n) {\n var r = e[0],\n o = e[1],\n i = e[2],\n a = e[3],\n u = n[0],\n c = n[1];\n return t[0] = r * u, t[1] = o * u, t[2] = i * c, t[3] = a * c, t;\n };\n }, function (t, e) {\n t.exports = function (t, e) {\n return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t;\n };\n }, function (t, e) {\n t.exports = function (t) {\n return Math.sqrt(Math.pow(t[0], 2) + Math.pow(t[1], 2) + Math.pow(t[2], 2) + Math.pow(t[3], 2));\n };\n }, function (t, e) {\n t.exports = function (t, e, n, r) {\n return t[2] = r[2] / r[0], n[0] = r[0], n[1] = r[1], n[3] = r[3] - t[2] * n[1], [t, e, n];\n };\n }, function (t, e, n) {\n \"use strict\";\n\n n.r(e), n.d(e, \"BarcodeDecoder\", function () {\n return Dt;\n }), n.d(e, \"Readers\", function () {\n return r;\n }), n.d(e, \"CameraAccess\", function () {\n return ee;\n }), n.d(e, \"ImageDebug\", function () {\n return d.a;\n }), n.d(e, \"ImageWrapper\", function () {\n return c.a;\n }), n.d(e, \"ResultCollector\", function () {\n return ne;\n });\n var r = {};\n n.r(r), n.d(r, \"BarcodeReader\", function () {\n return A;\n }), n.d(r, \"TwoOfFiveReader\", function () {\n return Ot;\n }), n.d(r, \"NewCodabarReader\", function () {\n return rt;\n }), n.d(r, \"Code128Reader\", function () {\n return P;\n }), n.d(r, \"Code32Reader\", function () {\n return kt;\n }), n.d(r, \"Code39Reader\", function () {\n return H;\n }), n.d(r, \"Code39VINReader\", function () {\n return K;\n }), n.d(r, \"Code93Reader\", function () {\n return Mt;\n }), n.d(r, \"EAN2Reader\", function () {\n return st;\n }), n.d(r, \"EAN5Reader\", function () {\n return ht;\n }), n.d(r, \"EAN8Reader\", function () {\n return ut;\n }), n.d(r, \"EANReader\", function () {\n return B;\n }), n.d(r, \"I2of5Reader\", function () {\n return gt;\n }), n.d(r, \"UPCEReader\", function () {\n return vt;\n }), n.d(r, \"UPCReader\", function () {\n return it;\n });\n var o = n(19),\n i = n.n(o),\n a = n(16),\n u = n.n(a),\n c = (n(152), n(10)),\n s = {},\n f = {\n UP: 1,\n DOWN: -1\n };\n s.getBarcodeLine = function (t, e, n) {\n var r,\n o,\n i,\n a,\n u,\n c = 0 | e.x,\n s = 0 | e.y,\n f = 0 | n.x,\n l = 0 | n.y,\n h = Math.abs(l - s) > Math.abs(f - c),\n d = [],\n p = t.data,\n v = t.size.x,\n y = 255,\n g = 0;\n\n function x(t, e) {\n u = p[e * v + t], y = u < y ? u : y, g = u > g ? u : g, d.push(u);\n }\n\n h && (i = c, c = s, s = i, i = f, f = l, l = i), c > f && (i = c, c = f, f = i, i = s, s = l, l = i);\n\n var _ = f - c,\n m = Math.abs(l - s);\n\n r = _ / 2 | 0, o = s;\n var b = s < l ? 1 : -1;\n\n for (a = c; a < f; a++) {\n h ? x(o, a) : x(a, o), (r -= m) < 0 && (o += b, r += _);\n }\n\n return {\n line: d,\n min: y,\n max: g\n };\n }, s.toBinaryLine = function (t) {\n var e,\n n,\n r,\n o,\n i,\n a,\n u = t.min,\n c = t.max,\n s = t.line,\n l = u + (c - u) / 2,\n h = [],\n d = (c - u) / 12,\n p = -d;\n\n for (r = s[0] > l ? f.UP : f.DOWN, h.push({\n pos: 0,\n val: s[0]\n }), i = 0; i < s.length - 2; i++) {\n r !== (o = (e = s[i + 1] - s[i]) + (n = s[i + 2] - s[i + 1]) < p && s[i + 1] < 1.5 * l ? f.DOWN : e + n > d && s[i + 1] > .5 * l ? f.UP : r) && (h.push({\n pos: i,\n val: s[i]\n }), r = o);\n }\n\n for (h.push({\n pos: s.length,\n val: s[s.length - 1]\n }), a = h[0].pos; a < h[1].pos; a++) {\n s[a] = s[a] > l ? 0 : 1;\n }\n\n for (i = 1; i < h.length - 1; i++) {\n for (d = h[i + 1].val > h[i].val ? h[i].val + (h[i + 1].val - h[i].val) / 3 * 2 | 0 : h[i + 1].val + (h[i].val - h[i + 1].val) / 3 | 0, a = h[i].pos; a < h[i + 1].pos; a++) {\n s[a] = s[a] > d ? 0 : 1;\n }\n }\n\n return {\n line: s,\n threshold: d\n };\n }, s.debug = {\n printFrequency: function printFrequency(t, e) {\n var n,\n r = e.getContext(\"2d\");\n\n for (e.width = t.length, e.height = 256, r.beginPath(), r.strokeStyle = \"blue\", n = 0; n < t.length; n++) {\n r.moveTo(n, 255), r.lineTo(n, 255 - t[n]);\n }\n\n r.stroke(), r.closePath();\n },\n printPattern: function printPattern(t, e) {\n var n,\n r = e.getContext(\"2d\");\n\n for (e.width = t.length, r.fillColor = \"black\", n = 0; n < t.length; n++) {\n 1 === t[n] && r.fillRect(n, 0, 1, 100);\n }\n }\n };\n\n var l,\n h = s,\n d = n(15),\n p = n(3),\n v = n.n(p),\n y = n(4),\n g = n.n(y),\n x = n(1),\n _ = n.n(x),\n m = n(6),\n b = n.n(m),\n w = n(5),\n O = n.n(w),\n R = n(2),\n C = n.n(R),\n E = n(0),\n M = n.n(E),\n S = n(8);\n\n !function (t) {\n t[t.Forward = 1] = \"Forward\", t[t.Reverse = -1] = \"Reverse\";\n }(l || (l = {}));\n\n var A = function () {\n function t(e, n) {\n return v()(this, t), M()(this, \"_row\", []), M()(this, \"config\", {}), M()(this, \"supplements\", []), M()(this, \"SINGLE_CODE_ERROR\", 0), M()(this, \"FORMAT\", \"unknown\"), M()(this, \"CONFIG_KEYS\", {}), this._row = [], this.config = e || {}, n && (this.supplements = n), this;\n }\n\n return g()(t, [{\n key: \"_nextUnset\",\n value: function value(t) {\n for (var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = e; n < t.length; n++) {\n if (!t[n]) return n;\n }\n\n return t.length;\n }\n }, {\n key: \"_matchPattern\",\n value: function value(t, e, n) {\n var r,\n o = 0,\n i = 0,\n a = 0,\n u = 0,\n c = 0,\n s = 0;\n n = n || this.SINGLE_CODE_ERROR || 1;\n\n for (var f = 0; f < t.length; f++) {\n a += t[f], u += e[f];\n }\n\n if (a < u) return Number.MAX_VALUE;\n n *= r = a / u;\n\n for (var l = 0; l < t.length; l++) {\n if (c = t[l], s = e[l] * r, (i = Math.abs(c - s) / s) > n) return Number.MAX_VALUE;\n o += i;\n }\n\n return o / u;\n }\n }, {\n key: \"_nextSet\",\n value: function value(t) {\n for (var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = e; n < t.length; n++) {\n if (t[n]) return n;\n }\n\n return t.length;\n }\n }, {\n key: \"_correctBars\",\n value: function value(t, e, n) {\n for (var r = n.length, o = 0; r--;) {\n (o = t[n[r]] * (1 - (1 - e) / 2)) > 1 && (t[n[r]] = o);\n }\n }\n }, {\n key: \"decodePattern\",\n value: function value(t) {\n this._row = t;\n var e = this.decode();\n return null === e ? (this._row.reverse(), (e = this.decode()) && (e.direction = l.Reverse, e.start = this._row.length - e.start, e.end = this._row.length - e.end)) : e.direction = l.Forward, e && (e.format = this.FORMAT), e;\n }\n }, {\n key: \"_matchRange\",\n value: function value(t, e, n) {\n var r;\n\n for (r = t = t < 0 ? 0 : t; r < e; r++) {\n if (this._row[r] !== n) return !1;\n }\n\n return !0;\n }\n }, {\n key: \"_fillCounters\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._nextUnset(this._row),\n e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this._row.length,\n n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2],\n r = [],\n o = 0;\n r[o] = 0;\n\n for (var i = t; i < e; i++) {\n this._row[i] ^ (n ? 1 : 0) ? r[o]++ : (r[++o] = 1, n = !n);\n }\n\n return r;\n }\n }, {\n key: \"_toCounters\",\n value: function value(t, e) {\n var n = e.length,\n r = this._row.length,\n o = !this._row[t],\n i = 0;\n S.a.init(e, 0);\n\n for (var a = t; a < r; a++) {\n if (this._row[a] ^ (o ? 1 : 0)) e[i]++;else {\n if (++i === n) break;\n e[i] = 1, o = !o;\n }\n }\n\n return e;\n }\n }], [{\n key: \"Exception\",\n get: function get() {\n return {\n StartNotFoundException: \"Start-Info was not found!\",\n CodeNotFoundException: \"Code could not be found!\",\n PatternNotFoundException: \"Pattern could not be found!\"\n };\n }\n }]), t;\n }();\n\n function k(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var P = function (t) {\n b()(n, t);\n var e = k(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"CODE_SHIFT\", 98), M()(_()(t), \"CODE_C\", 99), M()(_()(t), \"CODE_B\", 100), M()(_()(t), \"CODE_A\", 101), M()(_()(t), \"START_CODE_A\", 103), M()(_()(t), \"START_CODE_B\", 104), M()(_()(t), \"START_CODE_C\", 105), M()(_()(t), \"STOP_CODE\", 106), M()(_()(t), \"CODE_PATTERN\", [[2, 1, 2, 2, 2, 2], [2, 2, 2, 1, 2, 2], [2, 2, 2, 2, 2, 1], [1, 2, 1, 2, 2, 3], [1, 2, 1, 3, 2, 2], [1, 3, 1, 2, 2, 2], [1, 2, 2, 2, 1, 3], [1, 2, 2, 3, 1, 2], [1, 3, 2, 2, 1, 2], [2, 2, 1, 2, 1, 3], [2, 2, 1, 3, 1, 2], [2, 3, 1, 2, 1, 2], [1, 1, 2, 2, 3, 2], [1, 2, 2, 1, 3, 2], [1, 2, 2, 2, 3, 1], [1, 1, 3, 2, 2, 2], [1, 2, 3, 1, 2, 2], [1, 2, 3, 2, 2, 1], [2, 2, 3, 2, 1, 1], [2, 2, 1, 1, 3, 2], [2, 2, 1, 2, 3, 1], [2, 1, 3, 2, 1, 2], [2, 2, 3, 1, 1, 2], [3, 1, 2, 1, 3, 1], [3, 1, 1, 2, 2, 2], [3, 2, 1, 1, 2, 2], [3, 2, 1, 2, 2, 1], [3, 1, 2, 2, 1, 2], [3, 2, 2, 1, 1, 2], [3, 2, 2, 2, 1, 1], [2, 1, 2, 1, 2, 3], [2, 1, 2, 3, 2, 1], [2, 3, 2, 1, 2, 1], [1, 1, 1, 3, 2, 3], [1, 3, 1, 1, 2, 3], [1, 3, 1, 3, 2, 1], [1, 1, 2, 3, 1, 3], [1, 3, 2, 1, 1, 3], [1, 3, 2, 3, 1, 1], [2, 1, 1, 3, 1, 3], [2, 3, 1, 1, 1, 3], [2, 3, 1, 3, 1, 1], [1, 1, 2, 1, 3, 3], [1, 1, 2, 3, 3, 1], [1, 3, 2, 1, 3, 1], [1, 1, 3, 1, 2, 3], [1, 1, 3, 3, 2, 1], [1, 3, 3, 1, 2, 1], [3, 1, 3, 1, 2, 1], [2, 1, 1, 3, 3, 1], [2, 3, 1, 1, 3, 1], [2, 1, 3, 1, 1, 3], [2, 1, 3, 3, 1, 1], [2, 1, 3, 1, 3, 1], [3, 1, 1, 1, 2, 3], [3, 1, 1, 3, 2, 1], [3, 3, 1, 1, 2, 1], [3, 1, 2, 1, 1, 3], [3, 1, 2, 3, 1, 1], [3, 3, 2, 1, 1, 1], [3, 1, 4, 1, 1, 1], [2, 2, 1, 4, 1, 1], [4, 3, 1, 1, 1, 1], [1, 1, 1, 2, 2, 4], [1, 1, 1, 4, 2, 2], [1, 2, 1, 1, 2, 4], [1, 2, 1, 4, 2, 1], [1, 4, 1, 1, 2, 2], [1, 4, 1, 2, 2, 1], [1, 1, 2, 2, 1, 4], [1, 1, 2, 4, 1, 2], [1, 2, 2, 1, 1, 4], [1, 2, 2, 4, 1, 1], [1, 4, 2, 1, 1, 2], [1, 4, 2, 2, 1, 1], [2, 4, 1, 2, 1, 1], [2, 2, 1, 1, 1, 4], [4, 1, 3, 1, 1, 1], [2, 4, 1, 1, 1, 2], [1, 3, 4, 1, 1, 1], [1, 1, 1, 2, 4, 2], [1, 2, 1, 1, 4, 2], [1, 2, 1, 2, 4, 1], [1, 1, 4, 2, 1, 2], [1, 2, 4, 1, 1, 2], [1, 2, 4, 2, 1, 1], [4, 1, 1, 2, 1, 2], [4, 2, 1, 1, 1, 2], [4, 2, 1, 2, 1, 1], [2, 1, 2, 1, 4, 1], [2, 1, 4, 1, 2, 1], [4, 1, 2, 1, 2, 1], [1, 1, 1, 1, 4, 3], [1, 1, 1, 3, 4, 1], [1, 3, 1, 1, 4, 1], [1, 1, 4, 1, 1, 3], [1, 1, 4, 3, 1, 1], [4, 1, 1, 1, 1, 3], [4, 1, 1, 3, 1, 1], [1, 1, 3, 1, 4, 1], [1, 1, 4, 1, 3, 1], [3, 1, 1, 1, 4, 1], [4, 1, 1, 1, 3, 1], [2, 1, 1, 4, 1, 2], [2, 1, 1, 2, 1, 4], [2, 1, 1, 2, 3, 2], [2, 3, 3, 1, 1, 1, 2]]), M()(_()(t), \"SINGLE_CODE_ERROR\", .64), M()(_()(t), \"AVG_CODE_ERROR\", .3), M()(_()(t), \"FORMAT\", \"code_128\"), M()(_()(t), \"MODULE_INDICES\", {\n bar: [0, 2, 4],\n space: [1, 3, 5]\n }), t;\n }\n\n return g()(n, [{\n key: \"_decodeCode\",\n value: function value(t, e) {\n for (var n = {\n error: Number.MAX_VALUE,\n code: -1,\n start: t,\n end: t,\n correction: {\n bar: 1,\n space: 1\n }\n }, r = [0, 0, 0, 0, 0, 0], o = t, i = !this._row[o], a = 0, u = o; u < this._row.length; u++) {\n if (this._row[u] ^ (i ? 1 : 0)) r[a]++;else {\n if (a === r.length - 1) {\n e && this._correct(r, e);\n\n for (var c = 0; c < this.CODE_PATTERN.length; c++) {\n var s = this._matchPattern(r, this.CODE_PATTERN[c]);\n\n s < n.error && (n.code = c, n.error = s);\n }\n\n return n.end = u, -1 === n.code || n.error > this.AVG_CODE_ERROR ? null : (this.CODE_PATTERN[n.code] && (n.correction.bar = this.calculateCorrection(this.CODE_PATTERN[n.code], r, this.MODULE_INDICES.bar), n.correction.space = this.calculateCorrection(this.CODE_PATTERN[n.code], r, this.MODULE_INDICES.space)), n);\n }\n\n r[++a] = 1, i = !i;\n }\n }\n\n return null;\n }\n }, {\n key: \"_correct\",\n value: function value(t, e) {\n this._correctBars(t, e.bar, this.MODULE_INDICES.bar), this._correctBars(t, e.space, this.MODULE_INDICES.space);\n }\n }, {\n key: \"_findStart\",\n value: function value() {\n for (var t = [0, 0, 0, 0, 0, 0], e = this._nextSet(this._row), n = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0,\n correction: {\n bar: 1,\n space: 1\n }\n }, r = !1, o = 0, i = e; i < this._row.length; i++) {\n if (this._row[i] ^ (r ? 1 : 0)) t[o]++;else {\n if (o === t.length - 1) {\n for (var a = t.reduce(function (t, e) {\n return t + e;\n }, 0), u = this.START_CODE_A; u <= this.START_CODE_C; u++) {\n var c = this._matchPattern(t, this.CODE_PATTERN[u]);\n\n c < n.error && (n.code = u, n.error = c);\n }\n\n if (n.error < this.AVG_CODE_ERROR) return n.start = i - a, n.end = i, n.correction.bar = this.calculateCorrection(this.CODE_PATTERN[n.code], t, this.MODULE_INDICES.bar), n.correction.space = this.calculateCorrection(this.CODE_PATTERN[n.code], t, this.MODULE_INDICES.space), n;\n\n for (var s = 0; s < 4; s++) {\n t[s] = t[s + 2];\n }\n\n t[4] = 0, t[5] = 0, o--;\n } else o++;\n\n t[o] = 1, r = !r;\n }\n }\n\n return null;\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n var n = this,\n r = this._findStart();\n\n if (null === r) return null;\n var o = {\n code: r.code,\n start: r.start,\n end: r.end,\n correction: {\n bar: r.correction.bar,\n space: r.correction.space\n }\n },\n i = [];\n i.push(o);\n\n for (var a = o.code, u = function (t) {\n switch (t) {\n case n.START_CODE_A:\n return n.CODE_A;\n\n case n.START_CODE_B:\n return n.CODE_B;\n\n case n.START_CODE_C:\n return n.CODE_C;\n\n default:\n return null;\n }\n }(o.code), c = !1, s = !1, f = s, l = !0, h = 0, d = [], p = []; !c;) {\n if (f = s, s = !1, null !== (o = this._decodeCode(o.end, o.correction))) switch (o.code !== this.STOP_CODE && (l = !0), o.code !== this.STOP_CODE && (d.push(o.code), a += ++h * o.code), i.push(o), u) {\n case this.CODE_A:\n if (o.code < 64) p.push(String.fromCharCode(32 + o.code));else if (o.code < 96) p.push(String.fromCharCode(o.code - 64));else switch (o.code !== this.STOP_CODE && (l = !1), o.code) {\n case this.CODE_SHIFT:\n s = !0, u = this.CODE_B;\n break;\n\n case this.CODE_B:\n u = this.CODE_B;\n break;\n\n case this.CODE_C:\n u = this.CODE_C;\n break;\n\n case this.STOP_CODE:\n c = !0;\n }\n break;\n\n case this.CODE_B:\n if (o.code < 96) p.push(String.fromCharCode(32 + o.code));else switch (o.code !== this.STOP_CODE && (l = !1), o.code) {\n case this.CODE_SHIFT:\n s = !0, u = this.CODE_A;\n break;\n\n case this.CODE_A:\n u = this.CODE_A;\n break;\n\n case this.CODE_C:\n u = this.CODE_C;\n break;\n\n case this.STOP_CODE:\n c = !0;\n }\n break;\n\n case this.CODE_C:\n if (o.code < 100) p.push(o.code < 10 ? \"0\" + o.code : o.code);else switch (o.code !== this.STOP_CODE && (l = !1), o.code) {\n case this.CODE_A:\n u = this.CODE_A;\n break;\n\n case this.CODE_B:\n u = this.CODE_B;\n break;\n\n case this.STOP_CODE:\n c = !0;\n }\n } else c = !0;\n f && (u = u === this.CODE_A ? this.CODE_B : this.CODE_A);\n }\n\n return null === o ? null : (o.end = this._nextUnset(this._row, o.end), this._verifyTrailingWhitespace(o) ? (a -= h * d[d.length - 1]) % 103 !== d[d.length - 1] ? null : p.length ? (l && p.splice(p.length - 1, 1), {\n code: p.join(\"\"),\n start: r.start,\n end: o.end,\n codeset: u,\n startInfo: r,\n decodedCodes: i,\n endInfo: o,\n format: this.FORMAT\n }) : null : null);\n }\n }, {\n key: \"_verifyTrailingWhitespace\",\n value: function value(t) {\n var e;\n return (e = t.end + (t.end - t.start) / 2) < this._row.length && this._matchRange(t.end, e, 0) ? t : null;\n }\n }, {\n key: \"calculateCorrection\",\n value: function value(t, e, n) {\n for (var r = n.length, o = 0, i = 0; r--;) {\n i += t[n[r]], o += e[n[r]];\n }\n\n return i / o;\n }\n }]), n;\n }(A);\n\n function D(t, e) {\n var n = Object.keys(t);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(t);\n e && (r = r.filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), n.push.apply(n, r);\n }\n\n return n;\n }\n\n function T(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = null != arguments[e] ? arguments[e] : {};\n e % 2 ? D(Object(n), !0).forEach(function (e) {\n M()(t, e, n[e]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : D(Object(n)).forEach(function (e) {\n Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e));\n });\n }\n\n return t;\n }\n\n function j(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var I = [1, 1, 1],\n z = [1, 1, 1, 1, 1],\n U = [1, 1, 2],\n L = [[3, 2, 1, 1], [2, 2, 2, 1], [2, 1, 2, 2], [1, 4, 1, 1], [1, 1, 3, 2], [1, 2, 3, 1], [1, 1, 1, 4], [1, 3, 1, 2], [1, 2, 1, 3], [3, 1, 1, 2], [1, 1, 2, 3], [1, 2, 2, 2], [2, 2, 1, 2], [1, 1, 4, 1], [2, 3, 1, 1], [1, 3, 2, 1], [4, 1, 1, 1], [2, 1, 3, 1], [3, 1, 2, 1], [2, 1, 1, 3]],\n N = [0, 11, 13, 14, 19, 25, 28, 21, 22, 26],\n B = function (t) {\n b()(n, t);\n var e = j(n);\n\n function n(t, r) {\n var o;\n return v()(this, n), o = e.call(this, u()({\n supplements: []\n }, t), r), M()(_()(o), \"FORMAT\", \"ean_13\"), M()(_()(o), \"SINGLE_CODE_ERROR\", .7), M()(_()(o), \"STOP_PATTERN\", [1, 1, 1]), o;\n }\n\n return g()(n, [{\n key: \"_findPattern\",\n value: function value(t, e, n, r) {\n var o = new Array(t.length).fill(0),\n i = {\n error: Number.MAX_VALUE,\n start: 0,\n end: 0\n },\n a = 0;\n e || (e = this._nextSet(this._row));\n\n for (var u = !1, c = e; c < this._row.length; c++) {\n if (this._row[c] ^ (n ? 1 : 0)) o[a] += 1;else {\n if (a === o.length - 1) {\n var s = this._matchPattern(o, t);\n\n if (s < .48 && i.error && s < i.error) return u = !0, i.error = s, i.start = c - o.reduce(function (t, e) {\n return t + e;\n }, 0), i.end = c, i;\n\n if (r) {\n for (var f = 0; f < o.length - 2; f++) {\n o[f] = o[f + 2];\n }\n\n o[o.length - 2] = 0, o[o.length - 1] = 0, a--;\n }\n } else a++;\n\n o[a] = 1, n = !n;\n }\n }\n\n return u ? i : null;\n }\n }, {\n key: \"_decodeCode\",\n value: function value(t, e) {\n var n = [0, 0, 0, 0],\n r = t,\n o = {\n error: Number.MAX_VALUE,\n code: -1,\n start: t,\n end: t\n },\n i = !this._row[r],\n a = 0;\n e || (e = L.length);\n\n for (var u = r; u < this._row.length; u++) {\n if (this._row[u] ^ (i ? 1 : 0)) n[a]++;else {\n if (a === n.length - 1) {\n for (var c = 0; c < e; c++) {\n var s = this._matchPattern(n, L[c]);\n\n o.end = u, s < o.error && (o.code = c, o.error = s);\n }\n\n return o.error > .48 ? null : o;\n }\n\n n[++a] = 1, i = !i;\n }\n }\n\n return null;\n }\n }, {\n key: \"_findStart\",\n value: function value() {\n for (var t = this._nextSet(this._row), e = null; !e;) {\n if (!(e = this._findPattern(I, t, !1, !0))) return null;\n var n = e.start - (e.end - e.start);\n if (n >= 0 && this._matchRange(n, e.start, 0)) return e;\n t = e.end, e = null;\n }\n\n return null;\n }\n }, {\n key: \"_calculateFirstDigit\",\n value: function value(t) {\n for (var e = 0; e < N.length; e++) {\n if (t === N[e]) return e;\n }\n\n return null;\n }\n }, {\n key: \"_decodePayload\",\n value: function value(t, e, n) {\n for (var r = T({}, t), o = 0, i = 0; i < 6; i++) {\n if (!(r = this._decodeCode(r.end))) return null;\n r.code >= 10 ? (r.code -= 10, o |= 1 << 5 - i) : o |= 0 << 5 - i, e.push(r.code), n.push(r);\n }\n\n var a = this._calculateFirstDigit(o);\n\n if (null === a) return null;\n e.unshift(a);\n\n var u = this._findPattern(z, r.end, !0, !1);\n\n if (null === u || !u.end) return null;\n n.push(u);\n\n for (var c = 0; c < 6; c++) {\n if (!(u = this._decodeCode(u.end, 10))) return null;\n n.push(u), e.push(u.code);\n }\n\n return u;\n }\n }, {\n key: \"_verifyTrailingWhitespace\",\n value: function value(t) {\n var e = t.end + (t.end - t.start);\n return e < this._row.length && this._matchRange(t.end, e, 0) ? t : null;\n }\n }, {\n key: \"_findEnd\",\n value: function value(t, e) {\n var n = this._findPattern(this.STOP_PATTERN, t, e, !1);\n\n return null !== n ? this._verifyTrailingWhitespace(n) : null;\n }\n }, {\n key: \"_checksum\",\n value: function value(t) {\n for (var e = 0, n = t.length - 2; n >= 0; n -= 2) {\n e += t[n];\n }\n\n e *= 3;\n\n for (var r = t.length - 1; r >= 0; r -= 2) {\n e += t[r];\n }\n\n return e % 10 == 0;\n }\n }, {\n key: \"_decodeExtensions\",\n value: function value(t) {\n var e = this._nextSet(this._row, t),\n n = this._findPattern(U, e, !1, !1);\n\n if (null === n) return null;\n\n for (var r = 0; r < this.supplements.length; r++) {\n try {\n var o = this.supplements[r].decode(this._row, n.end);\n if (null !== o) return {\n code: o.code,\n start: e,\n startInfo: n,\n end: o.end,\n decodedCodes: o.decodedCodes,\n format: this.supplements[r].FORMAT\n };\n } catch (t) {\n console.error(\"* decodeExtensions error in \", this.supplements[r], \": \", t);\n }\n }\n\n return null;\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n var n = new Array(),\n r = new Array(),\n o = {},\n i = this._findStart();\n\n if (!i) return null;\n var a = {\n start: i.start,\n end: i.end\n };\n if (r.push(a), !(a = this._decodePayload(a, n, r))) return null;\n if (!(a = this._findEnd(a.end, !1))) return null;\n if (r.push(a), !this._checksum(n)) return null;\n\n if (this.supplements.length > 0) {\n var u = this._decodeExtensions(a.end);\n\n if (!u) return null;\n if (!u.decodedCodes) return null;\n var c = u.decodedCodes[u.decodedCodes.length - 1],\n s = {\n start: c.start + ((c.end - c.start) / 2 | 0),\n end: c.end\n };\n if (!this._verifyTrailingWhitespace(s)) return null;\n o = {\n supplement: u,\n code: n.join(\"\") + u.code\n };\n }\n\n return T(T({\n code: n.join(\"\"),\n start: i.start,\n end: a.end,\n startInfo: i,\n decodedCodes: r\n }, o), {}, {\n format: this.FORMAT\n });\n }\n }]), n;\n }(A),\n W = n(33),\n F = n.n(W);\n\n function V(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var q = new Uint16Array(F()(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%\").map(function (t) {\n return t.charCodeAt(0);\n })),\n G = new Uint16Array([52, 289, 97, 352, 49, 304, 112, 37, 292, 100, 265, 73, 328, 25, 280, 88, 13, 268, 76, 28, 259, 67, 322, 19, 274, 82, 7, 262, 70, 22, 385, 193, 448, 145, 400, 208, 133, 388, 196, 148, 168, 162, 138, 42]),\n H = function (t) {\n b()(n, t);\n var e = V(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"FORMAT\", \"code_39\"), t;\n }\n\n return g()(n, [{\n key: \"_findStart\",\n value: function value() {\n for (var t = this._nextSet(this._row), e = t, n = new Uint16Array([0, 0, 0, 0, 0, 0, 0, 0, 0]), r = 0, o = !1, i = t; i < this._row.length; i++) {\n if (this._row[i] ^ (o ? 1 : 0)) n[r]++;else {\n if (r === n.length - 1) {\n if (148 === this._toPattern(n)) {\n var a = Math.floor(Math.max(0, e - (i - e) / 4));\n if (this._matchRange(a, e, 0)) return {\n start: e,\n end: i\n };\n }\n\n e += n[0] + n[1];\n\n for (var u = 0; u < 7; u++) {\n n[u] = n[u + 2];\n }\n\n n[7] = 0, n[8] = 0, r--;\n } else r++;\n\n n[r] = 1, o = !o;\n }\n }\n\n return null;\n }\n }, {\n key: \"_toPattern\",\n value: function value(t) {\n for (var e = t.length, n = 0, r = e, o = 0; r > 3;) {\n n = this._findNextWidth(t, n), r = 0;\n\n for (var i = 0, a = 0; a < e; a++) {\n t[a] > n && (i |= 1 << e - 1 - a, r++, o += t[a]);\n }\n\n if (3 === r) {\n for (var u = 0; u < e && r > 0; u++) {\n if (t[u] > n && (r--, 2 * t[u] >= o)) return -1;\n }\n\n return i;\n }\n }\n\n return -1;\n }\n }, {\n key: \"_findNextWidth\",\n value: function value(t, e) {\n for (var n = Number.MAX_VALUE, r = 0; r < t.length; r++) {\n t[r] < n && t[r] > e && (n = t[r]);\n }\n\n return n;\n }\n }, {\n key: \"_patternToChar\",\n value: function value(t) {\n for (var e = 0; e < G.length; e++) {\n if (G[e] === t) return String.fromCharCode(q[e]);\n }\n\n return null;\n }\n }, {\n key: \"_verifyTrailingWhitespace\",\n value: function value(t, e, n) {\n var r = S.a.sum(n);\n return 3 * (e - t - r) >= r;\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n var n = new Uint16Array([0, 0, 0, 0, 0, 0, 0, 0, 0]),\n r = [];\n if (!(e = this._findStart())) return null;\n\n var o,\n i,\n a = this._nextSet(this._row, e.end);\n\n do {\n n = this._toCounters(a, n);\n\n var u = this._toPattern(n);\n\n if (u < 0) return null;\n if (null === (o = this._patternToChar(u))) return null;\n r.push(o), i = a, a += S.a.sum(n), a = this._nextSet(this._row, a);\n } while (\"*\" !== o);\n\n return r.pop(), r.length && this._verifyTrailingWhitespace(i, a, n) ? {\n code: r.join(\"\"),\n start: e.start,\n end: a,\n startInfo: e,\n decodedCodes: r,\n format: this.FORMAT\n } : null;\n }\n }]), n;\n }(A),\n X = n(12),\n Q = n.n(X);\n\n function Y(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var $ = /[IOQ]/g,\n Z = /[A-Z0-9]{17}/,\n K = function (t) {\n b()(n, t);\n var e = Y(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"FORMAT\", \"code_39_vin\"), t;\n }\n\n return g()(n, [{\n key: \"_checkChecksum\",\n value: function value(t) {\n return !!t;\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n var r = Q()(C()(n.prototype), \"decode\", this).call(this, t, e);\n if (!r) return null;\n var o = r.code;\n return o && (o = o.replace($, \"\")).match(Z) && this._checkChecksum(o) ? (r.code = o, r) : null;\n }\n }]), n;\n }(H);\n\n function J(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var tt = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 45, 36, 58, 47, 46, 43, 65, 66, 67, 68],\n et = [3, 6, 9, 96, 18, 66, 33, 36, 48, 72, 12, 24, 69, 81, 84, 21, 26, 41, 11, 14],\n nt = [26, 41, 11, 14],\n rt = function (t) {\n b()(n, t);\n var e = J(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"_counters\", []), M()(_()(t), \"FORMAT\", \"codabar\"), t;\n }\n\n return g()(n, [{\n key: \"_computeAlternatingThreshold\",\n value: function value(t, e) {\n for (var n = Number.MAX_VALUE, r = 0, o = 0, i = t; i < e; i += 2) {\n (o = this._counters[i]) > r && (r = o), o < n && (n = o);\n }\n\n return (n + r) / 2 | 0;\n }\n }, {\n key: \"_toPattern\",\n value: function value(t) {\n var e = t + 7;\n if (e > this._counters.length) return -1;\n\n for (var n = this._computeAlternatingThreshold(t, e), r = this._computeAlternatingThreshold(t + 1, e), o = 64, i = 0, a = 0, u = 0; u < 7; u++) {\n i = 0 == (1 & u) ? n : r, this._counters[t + u] > i && (a |= o), o >>= 1;\n }\n\n return a;\n }\n }, {\n key: \"_isStartEnd\",\n value: function value(t) {\n for (var e = 0; e < nt.length; e++) {\n if (nt[e] === t) return !0;\n }\n\n return !1;\n }\n }, {\n key: \"_sumCounters\",\n value: function value(t, e) {\n for (var n = 0, r = t; r < e; r++) {\n n += this._counters[r];\n }\n\n return n;\n }\n }, {\n key: \"_findStart\",\n value: function value() {\n for (var t = this._nextUnset(this._row), e = 1; e < this._counters.length; e++) {\n var n = this._toPattern(e);\n\n if (-1 !== n && this._isStartEnd(n)) return {\n start: t += this._sumCounters(0, e),\n end: t + this._sumCounters(e, e + 8),\n startCounter: e,\n endCounter: e + 8\n };\n }\n\n return null;\n }\n }, {\n key: \"_patternToChar\",\n value: function value(t) {\n for (var e = 0; e < et.length; e++) {\n if (et[e] === t) return String.fromCharCode(tt[e]);\n }\n\n return null;\n }\n }, {\n key: \"_calculatePatternLength\",\n value: function value(t) {\n for (var e = 0, n = t; n < t + 7; n++) {\n e += this._counters[n];\n }\n\n return e;\n }\n }, {\n key: \"_verifyWhitespace\",\n value: function value(t, e) {\n return (t - 1 <= 0 || this._counters[t - 1] >= this._calculatePatternLength(t) / 2) && (e + 8 >= this._counters.length || this._counters[e + 7] >= this._calculatePatternLength(e) / 2);\n }\n }, {\n key: \"_charToPattern\",\n value: function value(t) {\n for (var e = t.charCodeAt(0), n = 0; n < tt.length; n++) {\n if (tt[n] === e) return et[n];\n }\n\n return 0;\n }\n }, {\n key: \"_thresholdResultPattern\",\n value: function value(t, e) {\n for (var n, r = {\n space: {\n narrow: {\n size: 0,\n counts: 0,\n min: 0,\n max: Number.MAX_VALUE\n },\n wide: {\n size: 0,\n counts: 0,\n min: 0,\n max: Number.MAX_VALUE\n }\n },\n bar: {\n narrow: {\n size: 0,\n counts: 0,\n min: 0,\n max: Number.MAX_VALUE\n },\n wide: {\n size: 0,\n counts: 0,\n min: 0,\n max: Number.MAX_VALUE\n }\n }\n }, o = e, i = 0; i < t.length; i++) {\n n = this._charToPattern(t[i]);\n\n for (var a = 6; a >= 0; a--) {\n var u = 2 == (1 & a) ? r.bar : r.space,\n c = 1 == (1 & n) ? u.wide : u.narrow;\n c.size += this._counters[o + a], c.counts++, n >>= 1;\n }\n\n o += 8;\n }\n\n return [\"space\", \"bar\"].forEach(function (t) {\n var e = r[t];\n e.wide.min = Math.floor((e.narrow.size / e.narrow.counts + e.wide.size / e.wide.counts) / 2), e.narrow.max = Math.ceil(e.wide.min), e.wide.max = Math.ceil((2 * e.wide.size + 1.5) / e.wide.counts);\n }), r;\n }\n }, {\n key: \"_validateResult\",\n value: function value(t, e) {\n for (var n, r = this._thresholdResultPattern(t, e), o = e, i = 0; i < t.length; i++) {\n n = this._charToPattern(t[i]);\n\n for (var a = 6; a >= 0; a--) {\n var u = 0 == (1 & a) ? r.bar : r.space,\n c = 1 == (1 & n) ? u.wide : u.narrow,\n s = this._counters[o + a];\n if (s < c.min || s > c.max) return !1;\n n >>= 1;\n }\n\n o += 8;\n }\n\n return !0;\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n if (this._counters = this._fillCounters(), !(e = this._findStart())) return null;\n var n,\n r = e.startCounter,\n o = [];\n\n do {\n if ((n = this._toPattern(r)) < 0) return null;\n\n var i = this._patternToChar(n);\n\n if (null === i) return null;\n if (o.push(i), r += 8, o.length > 1 && this._isStartEnd(n)) break;\n } while (r < this._counters.length);\n\n if (o.length - 2 < 4 || !this._isStartEnd(n)) return null;\n if (!this._verifyWhitespace(e.startCounter, r - 8)) return null;\n if (!this._validateResult(o, e.startCounter)) return null;\n r = r > this._counters.length ? this._counters.length : r;\n\n var a = e.start + this._sumCounters(e.startCounter, r - 8);\n\n return {\n code: o.join(\"\"),\n start: e.start,\n end: a,\n startInfo: e,\n decodedCodes: o,\n format: this.FORMAT\n };\n }\n }]), n;\n }(A);\n\n function ot(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var it = function (t) {\n b()(n, t);\n var e = ot(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"FORMAT\", \"upc_a\"), t;\n }\n\n return g()(n, [{\n key: \"decode\",\n value: function value(t, e) {\n var n = B.prototype.decode.call(this);\n return n && n.code && 13 === n.code.length && \"0\" === n.code.charAt(0) ? (n.code = n.code.substring(1), n) : null;\n }\n }]), n;\n }(B);\n\n function at(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var ut = function (t) {\n b()(n, t);\n var e = at(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"FORMAT\", \"ean_8\"), t;\n }\n\n return g()(n, [{\n key: \"_decodePayload\",\n value: function value(t, e, n) {\n for (var r = t, o = 0; o < 4; o++) {\n if (!(r = this._decodeCode(r.end, 10))) return null;\n e.push(r.code), n.push(r);\n }\n\n if (null === (r = this._findPattern(z, r.end, !0, !1))) return null;\n n.push(r);\n\n for (var i = 0; i < 4; i++) {\n if (!(r = this._decodeCode(r.end, 10))) return null;\n n.push(r), e.push(r.code);\n }\n\n return r;\n }\n }]), n;\n }(B);\n\n function ct(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var st = function (t) {\n b()(n, t);\n var e = ct(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"FORMAT\", \"ean_2\"), t;\n }\n\n return g()(n, [{\n key: \"decode\",\n value: function value(t, e) {\n t && (this._row = t);\n var n = 0,\n r = e,\n o = this._row.length,\n i = [],\n a = [],\n u = null;\n if (void 0 === r) return null;\n\n for (var c = 0; c < 2 && r < o; c++) {\n if (!(u = this._decodeCode(r))) return null;\n a.push(u), i.push(u.code % 10), u.code >= 10 && (n |= 1 << 1 - c), 1 !== c && (r = this._nextSet(this._row, u.end), r = this._nextUnset(this._row, r));\n }\n\n if (2 !== i.length || parseInt(i.join(\"\")) % 4 !== n) return null;\n\n var s = this._findStart();\n\n return {\n code: i.join(\"\"),\n decodedCodes: a,\n end: u.end,\n format: this.FORMAT,\n startInfo: s,\n start: s.start\n };\n }\n }]), n;\n }(B);\n\n function ft(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var lt = [24, 20, 18, 17, 12, 6, 3, 10, 9, 5];\n\n var ht = function (t) {\n b()(n, t);\n var e = ft(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"FORMAT\", \"ean_5\"), t;\n }\n\n return g()(n, [{\n key: \"decode\",\n value: function value(t, e) {\n if (void 0 === e) return null;\n t && (this._row = t);\n\n for (var n = 0, r = e, o = this._row.length, i = null, a = [], u = [], c = 0; c < 5 && r < o; c++) {\n if (!(i = this._decodeCode(r))) return null;\n u.push(i), a.push(i.code % 10), i.code >= 10 && (n |= 1 << 4 - c), 4 !== c && (r = this._nextSet(this._row, i.end), r = this._nextUnset(this._row, r));\n }\n\n if (5 !== a.length) return null;\n if (function (t) {\n for (var e = t.length, n = 0, r = e - 2; r >= 0; r -= 2) {\n n += t[r];\n }\n\n n *= 3;\n\n for (var o = e - 1; o >= 0; o -= 2) {\n n += t[o];\n }\n\n return (n *= 3) % 10;\n }(a) !== function (t) {\n for (var e = 0; e < 10; e++) {\n if (t === lt[e]) return e;\n }\n\n return null;\n }(n)) return null;\n\n var s = this._findStart();\n\n return {\n code: a.join(\"\"),\n decodedCodes: u,\n end: i.end,\n format: this.FORMAT,\n startInfo: s,\n start: s.start\n };\n }\n }]), n;\n }(B);\n\n function dt(t, e) {\n var n = Object.keys(t);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(t);\n e && (r = r.filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), n.push.apply(n, r);\n }\n\n return n;\n }\n\n function pt(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var vt = function (t) {\n b()(n, t);\n var e = pt(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"CODE_FREQUENCY\", [[56, 52, 50, 49, 44, 38, 35, 42, 41, 37], [7, 11, 13, 14, 19, 25, 28, 21, 22, 26]]), M()(_()(t), \"STOP_PATTERN\", [1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7]), M()(_()(t), \"FORMAT\", \"upc_e\"), t;\n }\n\n return g()(n, [{\n key: \"_decodePayload\",\n value: function value(t, e, n) {\n for (var r = function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = null != arguments[e] ? arguments[e] : {};\n e % 2 ? dt(Object(n), !0).forEach(function (e) {\n M()(t, e, n[e]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : dt(Object(n)).forEach(function (e) {\n Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e));\n });\n }\n\n return t;\n }({}, t), o = 0, i = 0; i < 6; i++) {\n if (!(r = this._decodeCode(r.end))) return null;\n r.code >= 10 && (r.code = r.code - 10, o |= 1 << 5 - i), e.push(r.code), n.push(r);\n }\n\n return this._determineParity(o, e) ? r : null;\n }\n }, {\n key: \"_determineParity\",\n value: function value(t, e) {\n for (var n = 0; n < this.CODE_FREQUENCY.length; n++) {\n for (var r = 0; r < this.CODE_FREQUENCY[n].length; r++) {\n if (t === this.CODE_FREQUENCY[n][r]) return e.unshift(n), e.push(r), !0;\n }\n }\n\n return !1;\n }\n }, {\n key: \"_convertToUPCA\",\n value: function value(t) {\n var e = [t[0]],\n n = t[t.length - 2];\n return (e = n <= 2 ? e.concat(t.slice(1, 3)).concat([n, 0, 0, 0, 0]).concat(t.slice(3, 6)) : 3 === n ? e.concat(t.slice(1, 4)).concat([0, 0, 0, 0, 0]).concat(t.slice(4, 6)) : 4 === n ? e.concat(t.slice(1, 5)).concat([0, 0, 0, 0, 0, t[5]]) : e.concat(t.slice(1, 6)).concat([0, 0, 0, 0, n])).push(t[t.length - 1]), e;\n }\n }, {\n key: \"_checksum\",\n value: function value(t) {\n return Q()(C()(n.prototype), \"_checksum\", this).call(this, this._convertToUPCA(t));\n }\n }, {\n key: \"_findEnd\",\n value: function value(t, e) {\n return Q()(C()(n.prototype), \"_findEnd\", this).call(this, t, !0);\n }\n }, {\n key: \"_verifyTrailingWhitespace\",\n value: function value(t) {\n var e = t.end + (t.end - t.start) / 2;\n return e < this._row.length && this._matchRange(t.end, e, 0) ? t : null;\n }\n }]), n;\n }(B);\n\n function yt(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var gt = function (t) {\n b()(n, t);\n var e = yt(n);\n\n function n(t) {\n var r;\n return v()(this, n), r = e.call(this, u()({\n normalizeBarSpaceWidth: !1\n }, t)), M()(_()(r), \"barSpaceRatio\", [1, 1]), M()(_()(r), \"SINGLE_CODE_ERROR\", .78), M()(_()(r), \"AVG_CODE_ERROR\", .38), M()(_()(r), \"START_PATTERN\", [1, 1, 1, 1]), M()(_()(r), \"STOP_PATTERN\", [1, 1, 3]), M()(_()(r), \"CODE_PATTERN\", [[1, 1, 3, 3, 1], [3, 1, 1, 1, 3], [1, 3, 1, 1, 3], [3, 3, 1, 1, 1], [1, 1, 3, 1, 3], [3, 1, 3, 1, 1], [1, 3, 3, 1, 1], [1, 1, 1, 3, 3], [3, 1, 1, 3, 1], [1, 3, 1, 3, 1]]), M()(_()(r), \"MAX_CORRECTION_FACTOR\", 5), M()(_()(r), \"FORMAT\", \"i2of5\"), t.normalizeBarSpaceWidth && (r.SINGLE_CODE_ERROR = .38, r.AVG_CODE_ERROR = .09), r.config = t, O()(r, _()(r));\n }\n\n return g()(n, [{\n key: \"_matchPattern\",\n value: function value(t, e) {\n if (this.config.normalizeBarSpaceWidth) {\n for (var r = [0, 0], o = [0, 0], i = [0, 0], a = this.MAX_CORRECTION_FACTOR, u = 1 / a, c = 0; c < t.length; c++) {\n r[c % 2] += t[c], o[c % 2] += e[c];\n }\n\n i[0] = o[0] / r[0], i[1] = o[1] / r[1], i[0] = Math.max(Math.min(i[0], a), u), i[1] = Math.max(Math.min(i[1], a), u), this.barSpaceRatio = i;\n\n for (var s = 0; s < t.length; s++) {\n t[s] *= this.barSpaceRatio[s % 2];\n }\n }\n\n return Q()(C()(n.prototype), \"_matchPattern\", this).call(this, t, e);\n }\n }, {\n key: \"_findPattern\",\n value: function value(t, e) {\n var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],\n r = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],\n o = new Array(t.length).fill(0),\n i = 0,\n a = {\n error: Number.MAX_VALUE,\n start: 0,\n end: 0\n },\n u = this.AVG_CODE_ERROR;\n n = n || !1, r = r || !1, e || (e = this._nextSet(this._row));\n\n for (var c = e; c < this._row.length; c++) {\n if (this._row[c] ^ (n ? 1 : 0)) o[i]++;else {\n if (i === o.length - 1) {\n var s = o.reduce(function (t, e) {\n return t + e;\n }, 0),\n f = this._matchPattern(o, t);\n\n if (f < u) return a.error = f, a.start = c - s, a.end = c, a;\n if (!r) return null;\n\n for (var l = 0; l < o.length - 2; l++) {\n o[l] = o[l + 2];\n }\n\n o[o.length - 2] = 0, o[o.length - 1] = 0, i--;\n } else i++;\n\n o[i] = 1, n = !n;\n }\n }\n\n return null;\n }\n }, {\n key: \"_findStart\",\n value: function value() {\n for (var t = 0, e = this._nextSet(this._row), n = null, r = 1; !n;) {\n if (!(n = this._findPattern(this.START_PATTERN, e, !1, !0))) return null;\n if (r = Math.floor((n.end - n.start) / 4), (t = n.start - 10 * r) >= 0 && this._matchRange(t, n.start, 0)) return n;\n e = n.end, n = null;\n }\n\n return null;\n }\n }, {\n key: \"_verifyTrailingWhitespace\",\n value: function value(t) {\n var e = t.end + (t.end - t.start) / 2;\n return e < this._row.length && this._matchRange(t.end, e, 0) ? t : null;\n }\n }, {\n key: \"_findEnd\",\n value: function value() {\n this._row.reverse();\n\n var t = this._findPattern(this.STOP_PATTERN);\n\n if (this._row.reverse(), null === t) return null;\n var e = t.start;\n return t.start = this._row.length - t.end, t.end = this._row.length - e, null !== t ? this._verifyTrailingWhitespace(t) : null;\n }\n }, {\n key: \"_decodePair\",\n value: function value(t) {\n for (var e = [], n = 0; n < t.length; n++) {\n var r = this._decodeCode(t[n]);\n\n if (!r) return null;\n e.push(r);\n }\n\n return e;\n }\n }, {\n key: \"_decodeCode\",\n value: function value(t) {\n for (var e = this.AVG_CODE_ERROR, n = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0\n }, r = 0; r < this.CODE_PATTERN.length; r++) {\n var o = this._matchPattern(t, this.CODE_PATTERN[r]);\n\n o < n.error && (n.code = r, n.error = o);\n }\n\n return n.error < e ? n : null;\n }\n }, {\n key: \"_decodePayload\",\n value: function value(t, e, n) {\n for (var r = 0, o = t.length, i = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]], a = null; r < o;) {\n for (var u = 0; u < 5; u++) {\n i[0][u] = t[r] * this.barSpaceRatio[0], i[1][u] = t[r + 1] * this.barSpaceRatio[1], r += 2;\n }\n\n if (!(a = this._decodePair(i))) return null;\n\n for (var c = 0; c < a.length; c++) {\n e.push(a[c].code + \"\"), n.push(a[c]);\n }\n }\n\n return a;\n }\n }, {\n key: \"_verifyCounterLength\",\n value: function value(t) {\n return t.length % 10 == 0;\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n var n = new Array(),\n r = new Array(),\n o = this._findStart();\n\n if (!o) return null;\n r.push(o);\n\n var i = this._findEnd();\n\n if (!i) return null;\n\n var a = this._fillCounters(o.end, i.start, !1);\n\n return this._verifyCounterLength(a) && this._decodePayload(a, n, r) ? n.length % 2 != 0 || n.length < 6 ? null : (r.push(i), {\n code: n.join(\"\"),\n start: o.start,\n end: i.end,\n startInfo: o,\n decodedCodes: r,\n format: this.FORMAT\n }) : null;\n }\n }]), n;\n }(A);\n\n function xt(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var _t = [3, 1, 3, 1, 1, 1],\n mt = [3, 1, 1, 1, 3],\n bt = [[1, 1, 3, 3, 1], [3, 1, 1, 1, 3], [1, 3, 1, 1, 3], [3, 3, 1, 1, 1], [1, 1, 3, 1, 3], [3, 1, 3, 1, 1], [1, 3, 3, 1, 1], [1, 1, 1, 3, 3], [3, 1, 1, 3, 1], [1, 3, 1, 3, 1]],\n wt = _t.reduce(function (t, e) {\n return t + e;\n }, 0),\n Ot = function (t) {\n b()(n, t);\n var e = xt(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"barSpaceRatio\", [1, 1]), M()(_()(t), \"FORMAT\", \"2of5\"), M()(_()(t), \"SINGLE_CODE_ERROR\", .78), M()(_()(t), \"AVG_CODE_ERROR\", .3), t;\n }\n\n return g()(n, [{\n key: \"_findPattern\",\n value: function value(t, e) {\n var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],\n r = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],\n o = [],\n i = 0,\n a = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0\n },\n u = 0,\n c = 0,\n s = this.AVG_CODE_ERROR;\n e || (e = this._nextSet(this._row));\n\n for (var f = 0; f < t.length; f++) {\n o[f] = 0;\n }\n\n for (var l = e; l < this._row.length; l++) {\n if (this._row[l] ^ (n ? 1 : 0)) o[i]++;else {\n if (i === o.length - 1) {\n u = 0;\n\n for (var h = 0; h < o.length; h++) {\n u += o[h];\n }\n\n if ((c = this._matchPattern(o, t)) < s) return a.error = c, a.start = l - u, a.end = l, a;\n if (!r) return null;\n\n for (var d = 0; d < o.length - 2; d++) {\n o[d] = o[d + 2];\n }\n\n o[o.length - 2] = 0, o[o.length - 1] = 0, i--;\n } else i++;\n\n o[i] = 1, n = !n;\n }\n }\n\n return null;\n }\n }, {\n key: \"_findStart\",\n value: function value() {\n for (var t = null, e = this._nextSet(this._row), n = 1, r = 0; !t;) {\n if (!(t = this._findPattern(_t, e, !1, !0))) return null;\n if (n = Math.floor((t.end - t.start) / wt), (r = t.start - 5 * n) >= 0 && this._matchRange(r, t.start, 0)) return t;\n e = t.end, t = null;\n }\n\n return t;\n }\n }, {\n key: \"_verifyTrailingWhitespace\",\n value: function value(t) {\n var e = t.end + (t.end - t.start) / 2;\n return e < this._row.length && this._matchRange(t.end, e, 0) ? t : null;\n }\n }, {\n key: \"_findEnd\",\n value: function value() {\n this._row.reverse();\n\n var t = this._nextSet(this._row),\n e = this._findPattern(mt, t, !1, !0);\n\n if (this._row.reverse(), null === e) return null;\n var n = e.start;\n return e.start = this._row.length - e.end, e.end = this._row.length - n, null !== e ? this._verifyTrailingWhitespace(e) : null;\n }\n }, {\n key: \"_verifyCounterLength\",\n value: function value(t) {\n return t.length % 10 == 0;\n }\n }, {\n key: \"_decodeCode\",\n value: function value(t) {\n for (var e = this.AVG_CODE_ERROR, n = {\n error: Number.MAX_VALUE,\n code: -1,\n start: 0,\n end: 0\n }, r = 0; r < bt.length; r++) {\n var o = this._matchPattern(t, bt[r]);\n\n o < n.error && (n.code = r, n.error = o);\n }\n\n return n.error < e ? n : null;\n }\n }, {\n key: \"_decodePayload\",\n value: function value(t, e, n) {\n for (var r = 0, o = t.length, i = [0, 0, 0, 0, 0], a = null; r < o;) {\n for (var u = 0; u < 5; u++) {\n i[u] = t[r] * this.barSpaceRatio[0], r += 2;\n }\n\n if (!(a = this._decodeCode(i))) return null;\n e.push(\"\".concat(a.code)), n.push(a);\n }\n\n return a;\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n var n = this._findStart();\n\n if (!n) return null;\n\n var r = this._findEnd();\n\n if (!r) return null;\n\n var o = this._fillCounters(n.end, r.start, !1);\n\n if (!this._verifyCounterLength(o)) return null;\n var i = [];\n i.push(n);\n var a = [];\n return this._decodePayload(o, a, i) ? a.length < 5 ? null : (i.push(r), {\n code: a.join(\"\"),\n start: n.start,\n end: r.end,\n startInfo: n,\n decodedCodes: i,\n format: this.FORMAT\n }) : null;\n }\n }]), n;\n }(A);\n\n function Rt(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var Ct = new Uint16Array(F()(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*\").map(function (t) {\n return t.charCodeAt(0);\n })),\n Et = new Uint16Array([276, 328, 324, 322, 296, 292, 290, 336, 274, 266, 424, 420, 418, 404, 402, 394, 360, 356, 354, 308, 282, 344, 332, 326, 300, 278, 436, 434, 428, 422, 406, 410, 364, 358, 310, 314, 302, 468, 466, 458, 366, 374, 430, 294, 474, 470, 306, 350]),\n Mt = function (t) {\n b()(n, t);\n var e = Rt(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"FORMAT\", \"code_93\"), t;\n }\n\n return g()(n, [{\n key: \"_patternToChar\",\n value: function value(t) {\n for (var e = 0; e < Et.length; e++) {\n if (Et[e] === t) return String.fromCharCode(Ct[e]);\n }\n\n return null;\n }\n }, {\n key: \"_toPattern\",\n value: function value(t) {\n for (var e = t.length, n = t.reduce(function (t, e) {\n return t + e;\n }, 0), r = 0, o = 0; o < e; o++) {\n var i = Math.round(9 * t[o] / n);\n if (i < 1 || i > 4) return -1;\n if (0 == (1 & o)) for (var a = 0; a < i; a++) {\n r = r << 1 | 1;\n } else r <<= i;\n }\n\n return r;\n }\n }, {\n key: \"_findStart\",\n value: function value() {\n for (var t = this._nextSet(this._row), e = t, n = new Uint16Array([0, 0, 0, 0, 0, 0]), r = 0, o = !1, i = t; i < this._row.length; i++) {\n if (this._row[i] ^ (o ? 1 : 0)) n[r]++;else {\n if (r === n.length - 1) {\n if (350 === this._toPattern(n)) {\n var a = Math.floor(Math.max(0, e - (i - e) / 4));\n if (this._matchRange(a, e, 0)) return {\n start: e,\n end: i\n };\n }\n\n e += n[0] + n[1];\n\n for (var u = 0; u < 4; u++) {\n n[u] = n[u + 2];\n }\n\n n[4] = 0, n[5] = 0, r--;\n } else r++;\n\n n[r] = 1, o = !o;\n }\n }\n\n return null;\n }\n }, {\n key: \"_verifyEnd\",\n value: function value(t, e) {\n return !(t === e || !this._row[e]);\n }\n }, {\n key: \"_decodeExtended\",\n value: function value(t) {\n for (var e = t.length, n = [], r = 0; r < e; r++) {\n var o = t[r];\n\n if (o >= \"a\" && o <= \"d\") {\n if (r > e - 2) return null;\n var i = t[++r],\n a = i.charCodeAt(0),\n u = void 0;\n\n switch (o) {\n case \"a\":\n if (!(i >= \"A\" && i <= \"Z\")) return null;\n u = String.fromCharCode(a - 64);\n break;\n\n case \"b\":\n if (i >= \"A\" && i <= \"E\") u = String.fromCharCode(a - 38);else if (i >= \"F\" && i <= \"J\") u = String.fromCharCode(a - 11);else if (i >= \"K\" && i <= \"O\") u = String.fromCharCode(a + 16);else if (i >= \"P\" && i <= \"S\") u = String.fromCharCode(a + 43);else {\n if (!(i >= \"T\" && i <= \"Z\")) return null;\n u = String.fromCharCode(127);\n }\n break;\n\n case \"c\":\n if (i >= \"A\" && i <= \"O\") u = String.fromCharCode(a - 32);else {\n if (\"Z\" !== i) return null;\n u = \":\";\n }\n break;\n\n case \"d\":\n if (!(i >= \"A\" && i <= \"Z\")) return null;\n u = String.fromCharCode(a + 32);\n break;\n\n default:\n return console.warn(\"* code_93_reader _decodeExtended hit default case, this may be an error\", u), null;\n }\n\n n.push(u);\n } else n.push(o);\n }\n\n return n;\n }\n }, {\n key: \"_matchCheckChar\",\n value: function value(t, e, n) {\n var r = t.slice(0, e),\n o = r.length,\n i = r.reduce(function (t, e, r) {\n return t + ((-1 * r + (o - 1)) % n + 1) * Ct.indexOf(e.charCodeAt(0));\n }, 0);\n return Ct[i % 47] === t[e].charCodeAt(0);\n }\n }, {\n key: \"_verifyChecksums\",\n value: function value(t) {\n return this._matchCheckChar(t, t.length - 2, 20) && this._matchCheckChar(t, t.length - 1, 15);\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n if (!(e = this._findStart())) return null;\n\n var n,\n r,\n o = new Uint16Array([0, 0, 0, 0, 0, 0]),\n i = [],\n a = this._nextSet(this._row, e.end);\n\n do {\n o = this._toCounters(a, o);\n\n var u = this._toPattern(o);\n\n if (u < 0) return null;\n if (null === (r = this._patternToChar(u))) return null;\n i.push(r), n = a, a += S.a.sum(o), a = this._nextSet(this._row, a);\n } while (\"*\" !== r);\n\n return i.pop(), i.length && this._verifyEnd(n, a) && this._verifyChecksums(i) ? (i = i.slice(0, i.length - 2), null === (i = this._decodeExtended(i)) ? null : {\n code: i.join(\"\"),\n start: e.start,\n end: a,\n startInfo: e,\n decodedCodes: i,\n format: this.FORMAT\n }) : null;\n }\n }]), n;\n }(A);\n\n function St(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var At = /[AEIO]/g,\n kt = function (t) {\n b()(n, t);\n var e = St(n);\n\n function n() {\n var t;\n v()(this, n);\n\n for (var r = arguments.length, o = new Array(r), i = 0; i < r; i++) {\n o[i] = arguments[i];\n }\n\n return t = e.call.apply(e, [this].concat(o)), M()(_()(t), \"FORMAT\", \"code_32_reader\"), t;\n }\n\n return g()(n, [{\n key: \"_decodeCode32\",\n value: function value(t) {\n if (/[^0-9BCDFGHJKLMNPQRSTUVWXYZ]/.test(t)) return null;\n\n for (var e = 0, n = 0; n < t.length; n++) {\n e = 32 * e + \"0123456789BCDFGHJKLMNPQRSTUVWXYZ\".indexOf(t[n]);\n }\n\n var r = \"\" + e;\n return r.length < 9 && (r = (\"000000000\" + r).slice(-9)), \"A\" + r;\n }\n }, {\n key: \"_checkChecksum\",\n value: function value(t) {\n return !!t;\n }\n }, {\n key: \"decode\",\n value: function value(t, e) {\n var r = Q()(C()(n.prototype), \"decode\", this).call(this, t, e);\n if (!r) return null;\n var o = r.code;\n if (!o) return null;\n if (o = o.replace(At, \"\"), !this._checkChecksum(o)) return null;\n\n var i = this._decodeCode32(o);\n\n return i ? (r.code = i, r) : null;\n }\n }]), n;\n }(H),\n Pt = {\n code_128_reader: P,\n ean_reader: B,\n ean_5_reader: ht,\n ean_2_reader: st,\n ean_8_reader: ut,\n code_39_reader: H,\n code_39_vin_reader: K,\n codabar_reader: rt,\n upc_reader: it,\n upc_e_reader: vt,\n i2of5_reader: gt,\n \"2of5_reader\": Ot,\n code_93_reader: Mt,\n code_32_reader: kt\n },\n Dt = {\n registerReader: function registerReader(t, e) {\n Pt[t] = e;\n },\n create: function create(t, e) {\n var n = {\n frequency: null,\n pattern: null,\n overlay: null\n },\n r = [];\n\n function o() {\n t.readers.forEach(function (t) {\n var e,\n n = {},\n o = [];\n \"object\" === i()(t) ? (e = t.format, n = t.config) : \"string\" == typeof t && (e = t), n.supplements && (o = n.supplements.map(function (t) {\n return new Pt[t]();\n }));\n\n try {\n var a = new Pt[e](n, o);\n r.push(a);\n } catch (t) {\n throw console.error(\"* Error constructing reader \", e, t), t;\n }\n });\n }\n\n function a(t) {\n var n,\n o = null,\n i = h.getBarcodeLine(e, t[0], t[1]);\n\n for (h.toBinaryLine(i), n = 0; n < r.length && null === o; n++) {\n o = r[n].decodePattern(i.line);\n }\n\n return null === o ? null : {\n codeResult: o,\n barcodeLine: i\n };\n }\n\n function u(t) {\n var r, o;\n n.overlay;\n\n var i = function (t) {\n return Math.sqrt(Math.pow(Math.abs(t[1].y - t[0].y), 2) + Math.pow(Math.abs(t[1].x - t[0].x), 2));\n }(r = function (t) {\n return [{\n x: (t[1][0] - t[0][0]) / 2 + t[0][0],\n y: (t[1][1] - t[0][1]) / 2 + t[0][1]\n }, {\n x: (t[3][0] - t[2][0]) / 2 + t[2][0],\n y: (t[3][1] - t[2][1]) / 2 + t[2][1]\n }];\n }(t)),\n u = Math.atan2(r[1].y - r[0].y, r[1].x - r[0].x);\n\n return null === (r = function (t, n, r) {\n function o(e) {\n var r = e * Math.sin(n),\n o = e * Math.cos(n);\n t[0].y -= r, t[0].x -= o, t[1].y += r, t[1].x += o;\n }\n\n for (o(r); r > 1 && (!e.inImageWithBorder(t[0]) || !e.inImageWithBorder(t[1]));) {\n o(-(r -= Math.ceil(r / 2)));\n }\n\n return t;\n }(r, u, Math.floor(.1 * i))) ? null : (null === (o = a(r)) && (o = function (t, e, n) {\n var r,\n o,\n i,\n u = Math.sqrt(Math.pow(t[1][0] - t[0][0], 2) + Math.pow(t[1][1] - t[0][1], 2)),\n c = null,\n s = Math.sin(n),\n f = Math.cos(n);\n\n for (r = 1; r < 16 && null === c; r++) {\n i = {\n y: (o = u / 16 * r * (r % 2 == 0 ? -1 : 1)) * s,\n x: o * f\n }, e[0].y += i.x, e[0].x -= i.y, e[1].y += i.x, e[1].x -= i.y, c = a(e);\n }\n\n return c;\n }(t, r, u)), null === o ? null : {\n codeResult: o.codeResult,\n line: r,\n angle: u,\n pattern: o.barcodeLine.line,\n threshold: o.barcodeLine.threshold\n });\n }\n\n return o(), {\n decodeFromBoundingBox: function decodeFromBoundingBox(t) {\n return u(t);\n },\n decodeFromBoundingBoxes: function decodeFromBoundingBoxes(e) {\n var n,\n r,\n o = [],\n i = t.multiple;\n\n for (n = 0; n < e.length; n++) {\n var a = e[n];\n if ((r = u(a) || {}).box = a, i) o.push(r);else if (r.codeResult) return r;\n }\n\n if (i) return {\n barcodes: o\n };\n },\n decodeFromImage: function decodeFromImage(t) {\n return function (t) {\n for (var e = null, n = 0; n < r.length && null === e; n++) {\n e = r[n].decodeImage ? r[n].decodeImage(t) : null;\n }\n\n return e;\n }(t);\n },\n registerReader: function registerReader(t, e) {\n if (Pt[t]) throw new Error(\"cannot register existing reader\", t);\n Pt[t] = e;\n },\n setReaders: function setReaders(e) {\n t.readers = e, r.length = 0, o();\n }\n };\n }\n },\n Tt = function () {\n var t = {};\n\n function e(e) {\n return t[e] || (t[e] = {\n subscribers: []\n }), t[e];\n }\n\n function n(t, e) {\n t.async ? setTimeout(function () {\n t.callback(e);\n }, 4) : t.callback(e);\n }\n\n function r(t, n, r) {\n var o;\n if (\"function\" == typeof n) o = {\n callback: n,\n async: r\n };else if (!(o = n).callback) throw new Error(\"Callback was not specified on options\");\n e(t).subscribers.push(o);\n }\n\n return {\n subscribe: function subscribe(t, e, n) {\n return r(t, e, n);\n },\n publish: function publish(t, r) {\n var o = e(t),\n i = o.subscribers;\n i.filter(function (t) {\n return !!t.once;\n }).forEach(function (t) {\n n(t, r);\n }), o.subscribers = i.filter(function (t) {\n return !t.once;\n }), o.subscribers.forEach(function (t) {\n n(t, r);\n });\n },\n once: function once(t, e) {\n var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];\n r(t, {\n callback: e,\n async: n,\n once: !0\n });\n },\n unsubscribe: function unsubscribe(n, r) {\n if (n) {\n var o = e(n);\n o.subscribers = o && r ? o.subscribers.filter(function (t) {\n return t.callback !== r;\n }) : [];\n } else t = {};\n }\n };\n }(),\n jt = n(20),\n It = n.n(jt),\n zt = n(11),\n Ut = n.n(zt),\n Lt = n(85),\n Nt = n.n(Lt),\n Bt = n(86);\n\n function Wt(t) {\n var e = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (t) {\n return !1;\n }\n }();\n\n return function () {\n var n,\n r = C()(t);\n\n if (e) {\n var o = C()(this).constructor;\n n = Reflect.construct(r, arguments, o);\n } else n = r.apply(this, arguments);\n\n return O()(this, n);\n };\n }\n\n var Ft,\n Vt = function (t) {\n b()(n, t);\n var e = Wt(n);\n\n function n(t, r) {\n var o;\n return v()(this, n), o = e.call(this, t), M()(_()(o), \"code\", void 0), o.code = r, Object.setPrototypeOf(_()(o), n.prototype), o;\n }\n\n return n;\n }(n.n(Bt)()(Error)),\n qt = \"This may mean that the user has declined camera access, or the browser does not support media APIs. If you are running in iOS, you must use Safari.\";\n\n function Gt() {\n try {\n return navigator.mediaDevices.enumerateDevices();\n } catch (e) {\n var t = new Vt(\"enumerateDevices is not defined. \".concat(qt), -1);\n return Promise.reject(t);\n }\n }\n\n function Ht(t) {\n try {\n return navigator.mediaDevices.getUserMedia(t);\n } catch (t) {\n var e = new Vt(\"getUserMedia is not defined. \".concat(qt), -1);\n return Promise.reject(e);\n }\n }\n\n function Xt(t) {\n return new Promise(function (e, n) {\n var r = 10;\n !function o() {\n r > 0 ? t.videoWidth > 10 && t.videoHeight > 10 ? e() : window.setTimeout(o, 500) : n(new Vt(\"Unable to play video stream. Is webcam working?\", -1)), r--;\n }();\n });\n }\n\n function Qt(t, e) {\n return Yt.apply(this, arguments);\n }\n\n function Yt() {\n return (Yt = It()(Ut.a.mark(function t(e, n) {\n var r;\n return Ut.a.wrap(function (t) {\n for (;;) {\n switch (t.prev = t.next) {\n case 0:\n return t.next = 2, Ht(n);\n\n case 2:\n if (r = t.sent, Ft = r, !e) {\n t.next = 11;\n break;\n }\n\n return e.setAttribute(\"autoplay\", \"true\"), e.setAttribute(\"muted\", \"true\"), e.setAttribute(\"playsinline\", \"true\"), e.srcObject = r, e.addEventListener(\"loadedmetadata\", function () {\n e.play();\n }), t.abrupt(\"return\", Xt(e));\n\n case 11:\n return t.abrupt(\"return\", Promise.resolve());\n\n case 12:\n case \"end\":\n return t.stop();\n }\n }\n }, t);\n }))).apply(this, arguments);\n }\n\n function $t(t) {\n var e = Nt()(t, [\"width\", \"height\", \"facingMode\", \"aspectRatio\", \"deviceId\"]);\n return void 0 !== t.minAspectRatio && t.minAspectRatio > 0 && (e.aspectRatio = t.minAspectRatio, console.log(\"WARNING: Constraint 'minAspectRatio' is deprecated; Use 'aspectRatio' instead\")), void 0 !== t.facing && (e.facingMode = t.facing, console.log(\"WARNING: Constraint 'facing' is deprecated. Use 'facingMode' instead'\")), e;\n }\n\n function Zt() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n e = $t(t);\n return e && e.deviceId && e.facingMode && delete e.facingMode, Promise.resolve({\n audio: !1,\n video: e\n });\n }\n\n function Kt() {\n return (Kt = It()(Ut.a.mark(function t() {\n var e;\n return Ut.a.wrap(function (t) {\n for (;;) {\n switch (t.prev = t.next) {\n case 0:\n return t.next = 2, Gt();\n\n case 2:\n return e = t.sent, t.abrupt(\"return\", e.filter(function (t) {\n return \"videoinput\" === t.kind;\n }));\n\n case 4:\n case \"end\":\n return t.stop();\n }\n }\n }, t);\n }))).apply(this, arguments);\n }\n\n function Jt() {\n if (!Ft) return null;\n var t = Ft.getVideoTracks();\n return t && null != t && t.length ? t[0] : null;\n }\n\n var te = {\n requestedVideoElement: null,\n request: function request(t, e) {\n return It()(Ut.a.mark(function n() {\n var r;\n return Ut.a.wrap(function (n) {\n for (;;) {\n switch (n.prev = n.next) {\n case 0:\n return te.requestedVideoElement = t, n.next = 3, Zt(e);\n\n case 3:\n return r = n.sent, n.abrupt(\"return\", Qt(t, r));\n\n case 5:\n case \"end\":\n return n.stop();\n }\n }\n }, n);\n }))();\n },\n release: function release() {\n var t = Ft && Ft.getVideoTracks();\n return null !== te.requestedVideoElement && te.requestedVideoElement.pause(), new Promise(function (e) {\n setTimeout(function () {\n t && t.length && t[0].stop(), Ft = null, te.requestedVideoElement = null, e();\n }, 0);\n });\n },\n enumerateVideoDevices: function enumerateVideoDevices() {\n return Kt.apply(this, arguments);\n },\n getActiveStreamLabel: function getActiveStreamLabel() {\n var t = Jt();\n return t ? t.label : \"\";\n },\n getActiveTrack: Jt\n },\n ee = te;\n\n var ne = {\n create: function create(t) {\n var e,\n n = document.createElement(\"canvas\"),\n r = n.getContext(\"2d\"),\n o = [],\n i = null !== (e = t.capacity) && void 0 !== e ? e : 20,\n a = !0 === t.capture;\n\n function u(e) {\n return !!i && e && !function (t, e) {\n return e && e.some(function (e) {\n return Object.keys(e).every(function (n) {\n return e[n] === t[n];\n });\n });\n }(e, t.blacklist) && function (t, e) {\n return \"function\" != typeof e || e(t);\n }(e, t.filter);\n }\n\n return {\n addResult: function addResult(t, e, c) {\n var s = {};\n u(c) && (i--, s.codeResult = c, a && (n.width = e.x, n.height = e.y, d.a.drawImage(t, e, r), s.frame = n.toDataURL()), o.push(s));\n },\n getResults: function getResults() {\n return o;\n }\n };\n }\n },\n re = {\n inputStream: {\n name: \"Live\",\n type: \"LiveStream\",\n constraints: {\n width: 640,\n height: 480,\n facingMode: \"environment\"\n },\n area: {\n top: \"0%\",\n right: \"0%\",\n left: \"0%\",\n bottom: \"0%\"\n },\n singleChannel: !1\n },\n locate: !0,\n numOfWorkers: 4,\n decoder: {\n readers: [\"code_128_reader\"]\n },\n locator: {\n halfSample: !0,\n patchSize: \"medium\"\n }\n },\n oe = n(7),\n ie = function t() {\n v()(this, t), M()(this, \"config\", void 0), M()(this, \"inputStream\", void 0), M()(this, \"framegrabber\", void 0), M()(this, \"inputImageWrapper\", void 0), M()(this, \"stopped\", !1), M()(this, \"boxSize\", void 0), M()(this, \"resultCollector\", void 0), M()(this, \"decoder\", void 0), M()(this, \"workerPool\", []), M()(this, \"onUIThread\", !0), M()(this, \"canvasContainer\", new ue());\n },\n ae = function t() {\n v()(this, t), M()(this, \"image\", void 0), M()(this, \"overlay\", void 0);\n },\n ue = function t() {\n v()(this, t), M()(this, \"ctx\", void 0), M()(this, \"dom\", void 0), this.ctx = new ae(), this.dom = new ae();\n },\n ce = n(23);\n\n function se(t) {\n if (\"undefined\" == typeof document) return null;\n if (t instanceof HTMLElement && t.nodeName && 1 === t.nodeType) return t;\n var e = \"string\" == typeof t ? t : \"#interactive.viewport\";\n return document.querySelector(e);\n }\n\n function fe(t, e) {\n var n = function (t, e) {\n var n = document.querySelector(t);\n return n || ((n = document.createElement(\"canvas\")).className = e), n;\n }(t, e),\n r = n.getContext(\"2d\");\n\n return {\n canvas: n,\n context: r\n };\n }\n\n function le(t) {\n var e,\n n,\n r,\n o,\n i = se(null == t || null === (e = t.config) || void 0 === e || null === (n = e.inputStream) || void 0 === n ? void 0 : n.target),\n a = null == t || null === (r = t.config) || void 0 === r || null === (o = r.inputStream) || void 0 === o ? void 0 : o.type;\n if (!a) return null;\n\n var u = function (t) {\n if (\"undefined\" != typeof document) {\n var e = fe(\"canvas.imgBuffer\", \"imgBuffer\"),\n n = fe(\"canvas.drawingBuffer\", \"drawingBuffer\");\n return e.canvas.width = n.canvas.width = t.x, e.canvas.height = n.canvas.height = t.y, {\n dom: {\n image: e.canvas,\n overlay: n.canvas\n },\n ctx: {\n image: e.context,\n overlay: n.context\n }\n };\n }\n\n return null;\n }(t.inputStream.getCanvasSize());\n\n if (!u) return {\n dom: {\n image: null,\n overlay: null\n },\n ctx: {\n image: null,\n overlay: null\n }\n };\n var c = u.dom;\n return \"undefined\" != typeof document && i && (\"ImageStream\" !== a || i.contains(c.image) || i.appendChild(c.image), i.contains(c.overlay) || i.appendChild(c.overlay)), u;\n }\n\n var he = {\n 274: \"orientation\"\n },\n de = Object.keys(he).map(function (t) {\n return he[t];\n });\n\n function pe(t) {\n return new Promise(function (e) {\n var n = new FileReader();\n n.onload = function (t) {\n return e(t.target.result);\n }, n.readAsArrayBuffer(t);\n });\n }\n\n function ve(t) {\n return new Promise(function (e, n) {\n var r = new XMLHttpRequest();\n r.open(\"GET\", t, !0), r.responseType = \"blob\", r.onreadystatechange = function () {\n r.readyState !== XMLHttpRequest.DONE || 200 !== r.status && 0 !== r.status || e(this.response);\n }, r.onerror = n, r.send();\n });\n }\n\n function ye(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : de,\n n = new DataView(t),\n r = t.byteLength,\n o = e.reduce(function (t, e) {\n var n = Object.keys(he).filter(function (t) {\n return he[t] === e;\n })[0];\n return n && (t[n] = e), t;\n }, {}),\n i = 2;\n if (255 !== n.getUint8(0) || 216 !== n.getUint8(1)) return !1;\n\n for (; i < r;) {\n if (255 !== n.getUint8(i)) return !1;\n if (225 === n.getUint8(i + 1)) return ge(n, i + 4, o);\n i += 2 + n.getUint16(i + 2);\n }\n\n return !1;\n }\n\n function ge(t, e, n) {\n if (\"Exif\" !== function (t, e, n) {\n for (var r = \"\", o = e; o < e + n; o++) {\n r += String.fromCharCode(t.getUint8(o));\n }\n\n return r;\n }(t, e, 4)) return !1;\n var r,\n o = e + 6;\n if (18761 === t.getUint16(o)) r = !1;else {\n if (19789 !== t.getUint16(o)) return !1;\n r = !0;\n }\n if (42 !== t.getUint16(o + 2, !r)) return !1;\n var i = t.getUint32(o + 4, !r);\n return !(i < 8) && function (t, e, n, r, o) {\n for (var i = t.getUint16(n, !o), a = {}, u = 0; u < i; u++) {\n var c = n + 12 * u + 2,\n s = r[t.getUint16(c, !o)];\n s && (a[s] = xe(t, c, e, n, o));\n }\n\n return a;\n }(t, o, o + i, n, r);\n }\n\n function xe(t, e, n, r, o) {\n var i = t.getUint16(e + 2, !o),\n a = t.getUint32(e + 4, !o);\n\n switch (i) {\n case 3:\n if (1 === a) return t.getUint16(e + 8, !o);\n }\n\n return null;\n }\n\n var _e = {};\n\n function me(t, e) {\n t.onload = function () {\n e.loaded(this);\n };\n }\n\n _e.load = function (t, e, n, r, o) {\n var i,\n a,\n u,\n c = new Array(r),\n s = new Array(c.length);\n if (!1 === o) c[0] = t;else for (i = 0; i < c.length; i++) {\n u = n + i, c[i] = \"\".concat(t, \"image-\").concat(\"00\".concat(u).slice(-3), \".jpg\");\n }\n\n for (s.notLoaded = [], s.addImage = function (t) {\n s.notLoaded.push(t);\n }, s.loaded = function (n) {\n for (var r = s.notLoaded, i = 0; i < r.length; i++) {\n if (r[i] === n) {\n r.splice(i, 1);\n\n for (var a = 0; a < c.length; a++) {\n var u = c[a].substr(c[a].lastIndexOf(\"/\"));\n\n if (-1 !== n.src.lastIndexOf(u)) {\n s[a] = {\n img: n\n };\n break;\n }\n }\n\n break;\n }\n }\n\n 0 === r.length && (!1 === o ? function (t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : de;\n return /^blob:/i.test(t) ? ve(t).then(pe).then(function (t) {\n return ye(t, e);\n }) : Promise.resolve(null);\n }(t, [\"orientation\"]).then(function (t) {\n s[0].tags = t, e(s);\n }).catch(function (t) {\n console.log(t), e(s);\n }) : e(s));\n }, i = 0; i < c.length; i++) {\n a = new Image(), s.addImage(a), me(a, s), a.src = c[i];\n }\n };\n\n var be = _e,\n we = {\n createVideoStream: function createVideoStream(t) {\n var e,\n n,\n r = null,\n o = [\"canrecord\", \"ended\"],\n i = {},\n a = {\n x: 0,\n y: 0,\n type: \"Point\"\n },\n u = {\n x: 0,\n y: 0,\n type: \"XYSize\"\n };\n var c = {\n getRealWidth: function getRealWidth() {\n return t.videoWidth;\n },\n getRealHeight: function getRealHeight() {\n return t.videoHeight;\n },\n getWidth: function getWidth() {\n return e;\n },\n getHeight: function getHeight() {\n return n;\n },\n setWidth: function setWidth(t) {\n e = t;\n },\n setHeight: function setHeight(t) {\n n = t;\n },\n setInputStream: function setInputStream(t) {\n r = t, this.setAttribute(\"src\", void 0 !== t.src ? t.src : \"\");\n },\n ended: function ended() {\n return t.ended;\n },\n getConfig: function getConfig() {\n return r;\n },\n setAttribute: function setAttribute(e, n) {\n t && t.setAttribute(e, n);\n },\n pause: function pause() {\n t.pause();\n },\n play: function play() {\n t.play();\n },\n setCurrentTime: function setCurrentTime(t) {\n var e;\n \"LiveStream\" !== (null === (e = r) || void 0 === e ? void 0 : e.type) && this.setAttribute(\"currentTime\", t.toString());\n },\n addEventListener: function addEventListener(e, n, r) {\n -1 !== o.indexOf(e) ? (i[e] || (i[e] = []), i[e].push(n)) : t.addEventListener(e, n, r);\n },\n clearEventHandlers: function clearEventHandlers() {\n o.forEach(function (e) {\n var n = i[e];\n n && n.length > 0 && n.forEach(function (n) {\n t.removeEventListener(e, n);\n });\n });\n },\n trigger: function trigger(o, a) {\n var s,\n f,\n l,\n h,\n d,\n p = i[o];\n if (\"canrecord\" === o && (h = t.videoWidth, d = t.videoHeight, e = null !== (f = r) && void 0 !== f && f.size ? h / d > 1 ? r.size : Math.floor(h / d * r.size) : h, n = null !== (l = r) && void 0 !== l && l.size ? h / d > 1 ? Math.floor(d / h * r.size) : r.size : d, u.x = e, u.y = n), p && p.length > 0) for (s = 0; s < p.length; s++) {\n p[s].apply(c, a);\n }\n },\n setTopRight: function setTopRight(t) {\n a.x = t.x, a.y = t.y;\n },\n getTopRight: function getTopRight() {\n return a;\n },\n setCanvasSize: function setCanvasSize(t) {\n u.x = t.x, u.y = t.y;\n },\n getCanvasSize: function getCanvasSize() {\n return u;\n },\n getFrame: function getFrame() {\n return t;\n }\n };\n return c;\n },\n createLiveStream: function createLiveStream(t) {\n t && t.setAttribute(\"autoplay\", \"true\");\n var e = we.createVideoStream(t);\n return e.ended = function () {\n return !1;\n }, e;\n },\n createImageStream: function createImageStream() {\n var t,\n e,\n n = null,\n r = 0,\n o = 0,\n i = 0,\n a = !0,\n u = !1,\n c = null,\n s = 0,\n f = null,\n l = !1,\n h = [\"canrecord\", \"ended\"],\n d = {},\n p = {\n x: 0,\n y: 0,\n type: \"Point\"\n },\n v = {\n x: 0,\n y: 0,\n type: \"XYSize\"\n };\n\n function y(t, e) {\n var n,\n r = d[t];\n if (r && r.length > 0) for (n = 0; n < r.length; n++) {\n r[n].apply(g, e);\n }\n }\n\n var g = {\n trigger: y,\n getWidth: function getWidth() {\n return t;\n },\n getHeight: function getHeight() {\n return e;\n },\n setWidth: function setWidth(e) {\n t = e;\n },\n setHeight: function setHeight(t) {\n e = t;\n },\n getRealWidth: function getRealWidth() {\n return r;\n },\n getRealHeight: function getRealHeight() {\n return o;\n },\n setInputStream: function setInputStream(a) {\n var l;\n n = a, !1 === a.sequence ? (f = a.src, s = 1) : (f = a.src, s = a.length), u = !1, be.load(f, function (a) {\n var s, f;\n if (c = a, a[0].tags && a[0].tags.orientation) switch (a[0].tags.orientation) {\n case 6:\n case 8:\n r = a[0].img.height, o = a[0].img.width;\n break;\n\n default:\n r = a[0].img.width, o = a[0].img.height;\n } else r = a[0].img.width, o = a[0].img.height;\n t = null !== (s = n) && void 0 !== s && s.size ? r / o > 1 ? n.size : Math.floor(r / o * n.size) : r, e = null !== (f = n) && void 0 !== f && f.size ? r / o > 1 ? Math.floor(o / r * n.size) : n.size : o, v.x = t, v.y = e, u = !0, i = 0, setTimeout(function () {\n y(\"canrecord\", []);\n }, 0);\n }, 1, s, null === (l = n) || void 0 === l ? void 0 : l.sequence);\n },\n ended: function ended() {\n return l;\n },\n setAttribute: function setAttribute() {},\n getConfig: function getConfig() {\n return n;\n },\n pause: function pause() {\n a = !0;\n },\n play: function play() {\n a = !1;\n },\n setCurrentTime: function setCurrentTime(t) {\n i = t;\n },\n addEventListener: function addEventListener(t, e) {\n -1 !== h.indexOf(t) && (d[t] || (d[t] = []), d[t].push(e));\n },\n clearEventHandlers: function clearEventHandlers() {\n Object.keys(d).forEach(function (t) {\n return delete d[t];\n });\n },\n setTopRight: function setTopRight(t) {\n p.x = t.x, p.y = t.y;\n },\n getTopRight: function getTopRight() {\n return p;\n },\n setCanvasSize: function setCanvasSize(t) {\n v.x = t.x, v.y = t.y;\n },\n getCanvasSize: function getCanvasSize() {\n return v;\n },\n getFrame: function getFrame() {\n var t, e;\n if (!u) return null;\n a || (t = null === (e = c) || void 0 === e ? void 0 : e[i], i < s - 1 ? i++ : setTimeout(function () {\n l = !0, y(\"ended\", []);\n }, 0));\n return t;\n }\n };\n return g;\n }\n },\n Oe = we,\n Re = n(9),\n Ce = Math.PI / 180;\n var Ee = {\n create: function create(t, e) {\n var n,\n r = {},\n o = t.getConfig(),\n i = (Object(Re.h)(t.getRealWidth(), t.getRealHeight()), t.getCanvasSize()),\n a = Object(Re.h)(t.getWidth(), t.getHeight()),\n u = t.getTopRight(),\n c = u.x,\n s = u.y,\n f = null,\n l = null;\n return (n = e || document.createElement(\"canvas\")).width = i.x, n.height = i.y, f = n.getContext(\"2d\"), l = new Uint8Array(a.x * a.y), r.attachData = function (t) {\n l = t;\n }, r.getData = function () {\n return l;\n }, r.grab = function () {\n var e,\n r = o.halfSample,\n u = t.getFrame(),\n h = u,\n d = 0;\n\n if (h) {\n if (function (t, e) {\n t.width !== e.x && (t.width = e.x), t.height !== e.y && (t.height = e.y);\n }(n, i), \"ImageStream\" === o.type && (h = u.img, u.tags && u.tags.orientation)) switch (u.tags.orientation) {\n case 6:\n d = 90 * Ce;\n break;\n\n case 8:\n d = -90 * Ce;\n }\n return 0 !== d ? (f.translate(i.x / 2, i.y / 2), f.rotate(d), f.drawImage(h, -i.y / 2, -i.x / 2, i.y, i.x), f.rotate(-d), f.translate(-i.x / 2, -i.y / 2)) : f.drawImage(h, 0, 0, i.x, i.y), e = f.getImageData(c, s, a.x, a.y).data, r ? Object(Re.e)(e, a, l) : Object(Re.c)(e, l, o), !0;\n }\n\n return !1;\n }, r.getSize = function () {\n return a;\n }, r;\n }\n },\n Me = Ee;\n\n function Se(t, e) {\n var n = Object.keys(t);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(t);\n e && (r = r.filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), n.push.apply(n, r);\n }\n\n return n;\n }\n\n function Ae(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = null != arguments[e] ? arguments[e] : {};\n e % 2 ? Se(Object(n), !0).forEach(function (e) {\n M()(t, e, n[e]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Se(Object(n)).forEach(function (e) {\n Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e));\n });\n }\n\n return t;\n }\n\n var ke = [];\n\n function Pe(t) {\n return Ae(Ae({}, t), {}, {\n inputStream: Ae(Ae({}, t.inputStream), {}, {\n target: null\n })\n });\n }\n\n function De(t) {\n if (t) {\n var e = t().default;\n if (!e) return void self.postMessage({\n event: \"error\",\n message: \"Quagga could not be created\"\n });\n }\n\n var n;\n\n function r(t) {\n self.postMessage({\n event: \"processed\",\n imageData: n.data,\n result: t\n }, [n.data.buffer]);\n }\n\n function o() {\n self.postMessage({\n event: \"initialized\",\n imageData: n.data\n }, [n.data.buffer]);\n }\n\n self.onmessage = function (t) {\n if (\"init\" === t.data.cmd) {\n var i = t.data.config;\n i.numOfWorkers = 0, n = new e.ImageWrapper({\n x: t.data.size.x,\n y: t.data.size.y\n }, new Uint8Array(t.data.imageData)), e.init(i, o, n), e.onProcessed(r);\n } else \"process\" === t.data.cmd ? (n.data = new Uint8Array(t.data.imageData), e.start()) : \"setReaders\" === t.data.cmd ? e.setReaders(t.data.readers) : \"registerReader\" === t.data.cmd && e.registerReader(t.data.name, t.data.reader);\n };\n }\n\n function Te(t, e, n) {\n var r,\n o,\n i = (\"undefined\" != typeof __factorySource__ && (o = __factorySource__), r = new Blob([\"(\" + De.toString() + \")(\" + o + \");\"], {\n type: \"text/javascript\"\n }), window.URL.createObjectURL(r)),\n a = {\n worker: new Worker(i),\n imageData: new Uint8Array(e.getWidth() * e.getHeight()),\n busy: !0\n };\n a.worker.onmessage = function (t) {\n \"initialized\" === t.data.event ? (URL.revokeObjectURL(i), a.busy = !1, a.imageData = new Uint8Array(t.data.imageData), n(a)) : \"processed\" === t.data.event ? (a.imageData = new Uint8Array(t.data.imageData), a.busy = !1) : t.data.event;\n }, a.worker.postMessage({\n cmd: \"init\",\n size: {\n x: e.getWidth(),\n y: e.getHeight()\n },\n imageData: a.imageData,\n config: Pe(t)\n }, [a.imageData.buffer]);\n }\n\n function je(t, e, n, r) {\n var o = t - ke.length;\n if (0 === o && r) r();else if (o < 0) {\n ke.slice(o).forEach(function (t) {\n t.worker.terminate();\n }), ke = ke.slice(0, o), r && r();\n } else {\n var i = function i(e) {\n ke.push(e), ke.length >= t && r && r();\n };\n\n if (e) for (var a = 0; a < o; a++) {\n Te(e, n, i);\n }\n }\n }\n\n function Ie(t, e, n) {\n for (var r = t.length; r--;) {\n t[r][0] += e, t[r][1] += n;\n }\n }\n\n var ze = function () {\n function t() {\n var e = this;\n v()(this, t), M()(this, \"context\", new ie()), M()(this, \"canRecord\", function (t) {\n var n;\n e.context.config && (ce.a.checkImageConstraints(e.context.inputStream, null === (n = e.context.config) || void 0 === n ? void 0 : n.locator), e.initCanvas(), e.context.framegrabber = Me.create(e.context.inputStream, e.context.canvasContainer.dom.image), void 0 === e.context.config.numOfWorkers && (e.context.config.numOfWorkers = 0), je(e.context.config.numOfWorkers, e.context.config, e.context.inputStream, function () {\n var n;\n 0 === (null === (n = e.context.config) || void 0 === n ? void 0 : n.numOfWorkers) && e.initializeData(), e.ready(t);\n }));\n }), M()(this, \"update\", function () {\n if (e.context.onUIThread) {\n var t,\n n = (o = e.context.framegrabber, ke.length ? !!(i = ke.filter(function (t) {\n return !t.busy;\n })[0]) && (o.attachData(i.imageData), o.grab() && (i.busy = !0, i.worker.postMessage({\n cmd: \"process\",\n imageData: i.imageData\n }, [i.imageData.buffer])), !0) : null);\n if (!n) e.context.framegrabber.attachData(null === (t = e.context.inputImageWrapper) || void 0 === t ? void 0 : t.data), e.context.framegrabber.grab() && (n || e.locateAndDecode());\n } else {\n var r;\n e.context.framegrabber.attachData(null === (r = e.context.inputImageWrapper) || void 0 === r ? void 0 : r.data), e.context.framegrabber.grab(), e.locateAndDecode();\n }\n\n var o, i;\n });\n }\n\n var e;\n return g()(t, [{\n key: \"initBuffers\",\n value: function value(t) {\n if (this.context.config) {\n var e = function (t, e, n) {\n var r = e || new c.a({\n x: t.getWidth(),\n y: t.getHeight(),\n type: \"XYSize\"\n }),\n o = [Object(oe.clone)([0, 0]), Object(oe.clone)([0, r.size.y]), Object(oe.clone)([r.size.x, r.size.y]), Object(oe.clone)([r.size.x, 0])];\n return ce.a.init(r, n), {\n inputImageWrapper: r,\n boxSize: o\n };\n }(this.context.inputStream, t, this.context.config.locator),\n n = e.inputImageWrapper,\n r = e.boxSize;\n\n this.context.inputImageWrapper = n, this.context.boxSize = r;\n }\n }\n }, {\n key: \"initializeData\",\n value: function value(t) {\n this.context.config && (this.initBuffers(t), this.context.decoder = Dt.create(this.context.config.decoder, this.context.inputImageWrapper));\n }\n }, {\n key: \"getViewPort\",\n value: function value() {\n return this.context.config && this.context.config.inputStream ? se(this.context.config.inputStream.target) : null;\n }\n }, {\n key: \"ready\",\n value: function value(t) {\n this.context.inputStream.play(), t();\n }\n }, {\n key: \"initCanvas\",\n value: function value() {\n var t = le(this.context);\n\n if (t) {\n var e = t.ctx,\n n = t.dom;\n this.context.canvasContainer.dom.image = n.image, this.context.canvasContainer.dom.overlay = n.overlay, this.context.canvasContainer.ctx.image = e.image, this.context.canvasContainer.ctx.overlay = e.overlay;\n }\n }\n }, {\n key: \"initInputStream\",\n value: function value(t) {\n if (this.context.config && this.context.config.inputStream) {\n var e = this.context.config.inputStream,\n n = e.type,\n r = e.constraints,\n o = function () {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"LiveStream\",\n e = arguments.length > 1 ? arguments[1] : void 0,\n n = arguments.length > 2 ? arguments[2] : void 0;\n\n switch (t) {\n case \"VideoStream\":\n var r = document.createElement(\"video\");\n return {\n video: r,\n inputStream: n.createVideoStream(r)\n };\n\n case \"ImageStream\":\n return {\n inputStream: n.createImageStream()\n };\n\n case \"LiveStream\":\n var o = null;\n return e && ((o = e.querySelector(\"video\")) || (o = document.createElement(\"video\"), e.appendChild(o))), {\n video: o,\n inputStream: n.createLiveStream(o)\n };\n\n default:\n return console.error(\"* setupInputStream invalid type \".concat(t)), {\n video: null,\n inputStream: null\n };\n }\n }(n, this.getViewPort(), Oe),\n i = o.video,\n a = o.inputStream;\n\n \"LiveStream\" === n && i && ee.request(i, r).then(function () {\n return a.trigger(\"canrecord\");\n }).catch(function (e) {\n return t(e);\n }), a.setAttribute(\"preload\", \"auto\"), a.setInputStream(this.context.config.inputStream), a.addEventListener(\"canrecord\", this.canRecord.bind(void 0, t)), this.context.inputStream = a;\n }\n }\n }, {\n key: \"getBoundingBoxes\",\n value: function value() {\n var t;\n return null !== (t = this.context.config) && void 0 !== t && t.locate ? ce.a.locate() : [[Object(oe.clone)(this.context.boxSize[0]), Object(oe.clone)(this.context.boxSize[1]), Object(oe.clone)(this.context.boxSize[2]), Object(oe.clone)(this.context.boxSize[3])]];\n }\n }, {\n key: \"transformResult\",\n value: function value(t) {\n var e = this,\n n = this.context.inputStream.getTopRight(),\n r = n.x,\n o = n.y;\n if ((0 !== r || 0 !== o) && (t.barcodes && t.barcodes.forEach(function (t) {\n return e.transformResult(t);\n }), t.line && 2 === t.line.length && function (t, e, n) {\n t[0].x += e, t[0].y += n, t[1].x += e, t[1].y += n;\n }(t.line, r, o), t.box && Ie(t.box, r, o), t.boxes && t.boxes.length > 0)) for (var i = 0; i < t.boxes.length; i++) {\n Ie(t.boxes[i], r, o);\n }\n }\n }, {\n key: \"addResult\",\n value: function value(t, e) {\n var n = this;\n e && this.context.resultCollector && (t.barcodes ? t.barcodes.filter(function (t) {\n return t.codeResult;\n }).forEach(function (t) {\n return n.addResult(t, e);\n }) : t.codeResult && this.context.resultCollector.addResult(e, this.context.inputStream.getCanvasSize(), t.codeResult));\n }\n }, {\n key: \"hasCodeResult\",\n value: function value(t) {\n return !(!t || !(t.barcodes ? t.barcodes.some(function (t) {\n return t.codeResult;\n }) : t.codeResult));\n }\n }, {\n key: \"publishResult\",\n value: function value() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,\n e = arguments.length > 1 ? arguments[1] : void 0,\n n = t;\n t && this.context.onUIThread && (this.transformResult(t), this.addResult(t, e), n = t.barcodes || t), Tt.publish(\"processed\", n), this.hasCodeResult(t) && Tt.publish(\"detected\", n);\n }\n }, {\n key: \"locateAndDecode\",\n value: function value() {\n var t = this.getBoundingBoxes();\n\n if (t) {\n var e,\n n = this.context.decoder.decodeFromBoundingBoxes(t) || {};\n n.boxes = t, this.publishResult(n, null === (e = this.context.inputImageWrapper) || void 0 === e ? void 0 : e.data);\n } else {\n var r,\n o = this.context.decoder.decodeFromImage(this.context.inputImageWrapper);\n if (o) this.publishResult(o, null === (r = this.context.inputImageWrapper) || void 0 === r ? void 0 : r.data);else this.publishResult();\n }\n }\n }, {\n key: \"startContinuousUpdate\",\n value: function value() {\n var t,\n e = this,\n n = null,\n r = 1e3 / ((null === (t = this.context.config) || void 0 === t ? void 0 : t.frequency) || 60);\n this.context.stopped = !1;\n var o = this.context;\n !function t(i) {\n n = n || i, o.stopped || (i >= n && (n += r, e.update()), window.requestAnimationFrame(t));\n }(performance.now());\n }\n }, {\n key: \"start\",\n value: function value() {\n var t, e;\n this.context.onUIThread && \"LiveStream\" === (null === (t = this.context.config) || void 0 === t || null === (e = t.inputStream) || void 0 === e ? void 0 : e.type) ? this.startContinuousUpdate() : this.update();\n }\n }, {\n key: \"stop\",\n value: (e = It()(Ut.a.mark(function t() {\n var e;\n return Ut.a.wrap(function (t) {\n for (;;) {\n switch (t.prev = t.next) {\n case 0:\n if (this.context.stopped = !0, je(0), null === (e = this.context.config) || void 0 === e || !e.inputStream || \"LiveStream\" !== this.context.config.inputStream.type) {\n t.next = 6;\n break;\n }\n\n return t.next = 5, ee.release();\n\n case 5:\n this.context.inputStream.clearEventHandlers();\n\n case 6:\n case \"end\":\n return t.stop();\n }\n }\n }, t, this);\n })), function () {\n return e.apply(this, arguments);\n })\n }, {\n key: \"setReaders\",\n value: function value(t) {\n this.context.decoder && this.context.decoder.setReaders(t), function (t) {\n ke.forEach(function (e) {\n return e.worker.postMessage({\n cmd: \"setReaders\",\n readers: t\n });\n });\n }(t);\n }\n }, {\n key: \"registerReader\",\n value: function value(t, e) {\n Dt.registerReader(t, e), this.context.decoder && this.context.decoder.registerReader(t, e), function (t, e) {\n ke.forEach(function (n) {\n return n.worker.postMessage({\n cmd: \"registerReader\",\n name: t,\n reader: e\n });\n });\n }(t, e);\n }\n }]), t;\n }(),\n Ue = new ze(),\n Le = Ue.context,\n Ne = {\n init: function init(t, e, n) {\n var r,\n o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : Ue;\n return e || (r = new Promise(function (t, n) {\n e = function e(_e2) {\n _e2 ? n(_e2) : t();\n };\n })), o.context.config = u()({}, re, t), o.context.config.numOfWorkers > 0 && (o.context.config.numOfWorkers = 0), n ? (o.context.onUIThread = !1, o.initializeData(n), e && e()) : o.initInputStream(e), r;\n },\n start: function start() {\n return Ue.start();\n },\n stop: function stop() {\n return Ue.stop();\n },\n pause: function pause() {\n Le.stopped = !0;\n },\n onDetected: function onDetected(t) {\n t && (\"function\" == typeof t || \"object\" === i()(t) && t.callback) ? Tt.subscribe(\"detected\", t) : console.trace(\"* warning: Quagga.onDetected called with invalid callback, ignoring\");\n },\n offDetected: function offDetected(t) {\n Tt.unsubscribe(\"detected\", t);\n },\n onProcessed: function onProcessed(t) {\n t && (\"function\" == typeof t || \"object\" === i()(t) && t.callback) ? Tt.subscribe(\"processed\", t) : console.trace(\"* warning: Quagga.onProcessed called with invalid callback, ignoring\");\n },\n offProcessed: function offProcessed(t) {\n Tt.unsubscribe(\"processed\", t);\n },\n setReaders: function setReaders(t) {\n t ? Ue.setReaders(t) : console.trace(\"* warning: Quagga.setReaders called with no readers, ignoring\");\n },\n registerReader: function registerReader(t, e) {\n t ? e ? Ue.registerReader(t, e) : console.trace(\"* warning: Quagga.registerReader called with no reader, ignoring\") : console.trace(\"* warning: Quagga.registerReader called with no name, ignoring\");\n },\n registerResultCollector: function registerResultCollector(t) {\n t && \"function\" == typeof t.addResult && (Le.resultCollector = t);\n },\n\n get canvas() {\n return Le.canvasContainer;\n },\n\n decodeSingle: function decodeSingle(t, e) {\n var n = this,\n r = new ze();\n return (t = u()({\n inputStream: {\n type: \"ImageStream\",\n sequence: !1,\n size: 800,\n src: t.src\n },\n numOfWorkers: 1,\n locator: {\n halfSample: !1\n }\n }, t)).numOfWorkers > 0 && (t.numOfWorkers = 0), t.numOfWorkers > 0 && (\"undefined\" == typeof Blob || \"undefined\" == typeof Worker) && (console.warn(\"* no Worker and/or Blob support - forcing numOfWorkers to 0\"), t.numOfWorkers = 0), new Promise(function (o, i) {\n try {\n n.init(t, function () {\n Tt.once(\"processed\", function (t) {\n r.stop(), e && e.call(null, t), o(t);\n }, !0), r.start();\n }, null, r);\n } catch (t) {\n i(t);\n }\n });\n },\n\n get default() {\n return Ne;\n },\n\n Readers: r,\n CameraAccess: ee,\n ImageDebug: d.a,\n ImageWrapper: c.a,\n ResultCollector: ne\n };\n\n e.default = Ne;\n }]).default;\n});","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n\n for (i = 0; i < argLen; i++) {\n arg = '';\n\n if (_typeof(arguments[i]) === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (_typeof(units) === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n tokenLen = token.length;\n\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^()]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (_typeof(eras[i].since)) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (_typeof(eras[i].until)) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (_typeof(argWithSuffix) === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (_typeof(argThresholds) === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.29.4';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/////////////////////////////////////////////////////////////////////////////////\n\n/* UAParser.js v0.7.28\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n\n/*\nDetect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\nSupports browser & node.js environment. \nDemo : https://faisalman.github.io/ua-parser-js\nSource : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n(function (window, undefined) {\n 'use strict'; //////////////\n // Constants\n /////////////\n\n var LIBVERSION = '0.7.30',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE = 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 255;\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook'; ///////////\n // Helper\n //////////\n\n var extend = function extend(regexes, extensions) {\n var mergedRegexes = {};\n\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n\n return mergedRegexes;\n },\n enumerize = function enumerize(arr) {\n var enums = {};\n\n for (var i in arr) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n\n return enums;\n },\n has = function has(str1, str2) {\n return _typeof(str1) === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function lowerize(str) {\n return str.toLowerCase();\n },\n majorize = function majorize(version) {\n return _typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined;\n },\n trim = function trim(str, len) {\n if (_typeof(str) === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY).replace(/\\s\\s*$/, EMPTY);\n return _typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n }; ///////////////\n // Map helper\n //////////////\n\n\n var rgxMapper = function rgxMapper(ua, arrays) {\n var i = 0,\n j,\n k,\n p,\n q,\n matches,\n match; // loop through all regexes maps\n\n while (i < arrays.length && !matches) {\n var regex = arrays[i],\n // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n\n j = k = 0; // try matching uastring with regexes\n\n while (j < regex.length && !matches) {\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p]; // check if given property is actually array\n\n if (_typeof(q) === OBJ_TYPE && q.length > 0) {\n if (q.length == 2) {\n if (_typeof(q[1]) == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length == 3) {\n // check whether function or regex\n if (_typeof(q[1]) === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length == 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n\n i += 2;\n }\n },\n strMapper = function strMapper(str, map) {\n for (var i in map) {\n // check if current value is array\n if (_typeof(map[i]) === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return i === UNKNOWN ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return i === UNKNOWN ? undefined : i;\n }\n }\n\n return str;\n }; ///////////////\n // String map\n //////////////\n // Safari < 3.0\n\n\n var oldSafariMap = {\n '1.0': '/8',\n '1.2': '/1',\n '1.3': '/3',\n '2.0': '/412',\n '2.0.2': '/416',\n '2.0.3': '/417',\n '2.0.4': '/419',\n '?': '/'\n },\n windowsVersionMap = {\n 'ME': '4.90',\n 'NT 3.11': 'NT3.51',\n 'NT 4.0': 'NT4.0',\n '2000': 'NT 5.0',\n 'XP': ['NT 5.1', 'NT 5.2'],\n 'Vista': 'NT 6.0',\n '7': 'NT 6.1',\n '8': 'NT 6.2',\n '8.1': 'NT 6.3',\n '10': ['NT 6.4', 'NT 10.0'],\n 'RT': 'ARM'\n }; //////////////\n // Regex map\n /////////////\n\n var regexes = {\n browser: [[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [/edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [// Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [/opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA + ' Mini']], [/\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [// Mixed\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i, // Baidu Browser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\\/([-\\w\\.]+)/i, // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC' + BROWSER]], [/\\bqbcore\\/([\\w\\.]+)/i // WeChat Desktop for Windows Built-in Browser\n ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [/micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [/konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [/yabrowser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [/(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure ' + BROWSER], VERSION], [/\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX + ' Focus']], [/\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA + ' Touch']], [/coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [/dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [/coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA + ' Coast']], [/miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI ' + BROWSER]], [/fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [/\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 ' + BROWSER]], [/(oculus|samsung|sailfish)browser\\/([\\w\\.]+)/i], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [// Oculus/Samsung/Sailfish Browser\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [/(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\n ], [NAME, VERSION], [/(metasr)[\\/ ]?([\\w\\.]+)/i, // SouGouBrowser\n /(lbbrowser)/i // LieBao Browser\n ], [NAME], [// WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [/safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\n ], [NAME, VERSION], [/\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [/headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME + ' Headless']], [/ wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME + ' WebView'], VERSION], [/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android ' + BROWSER]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [/version\\/([\\w\\.]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [/version\\/([\\w\\.]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [/(webkit|khtml)\\/([\\w\\.]+)/i], [NAME, VERSION], [// Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [/mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX + ' Reality']], [/ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i, // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i, // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i, // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, VERSION]],\n cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [/(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [/((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [// PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i], [[ARCHITECTURE, 'arm']], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [/(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]],\n device: [[//////////////////////////\n // MOBILES & TABLETS\n // Ordered by popularity\n /////////////////////////\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[pt]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [/\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i, /samsung[- ]([-\\w]+)/i, /sec-(sgh\\w+)/i], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [// Apple\n /\\((ip(?:hone|od)[\\w ]*);/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [/\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i, /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [// Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [/(?:huawei|honor)([-\\w ]+)[;\\)]/i, /\\b(nexus 6p|\\w{2,4}-[atu]?[ln][01259x][012359][an]?)\\b(?!.+d\\/s)/i], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [// Xiaomi\n /\\b(poco[\\w ]+)(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [// OPPO\n /; (\\w+) bui.+ oppo/i, /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007)\\b/i], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [// Vivo\n /vivo (\\w+)(?: bui|\\))/i, /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [// Realme\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [// Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i, /\\bmot(?:orola)?[- ](\\w*)/i, /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [// LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i, /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i, /\\blg-?([\\d\\w]+) bui/i], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [// Lenovo\n /(ideatab[-\\w ]+)/i, /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [// Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i, /nokia[-_ ]?([-\\w\\.]*)/i], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [// Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [// Sony\n /droid.+ ([c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [/sony tablet [ps]/i, /\\b(?:sony)?sgp\\w+(?: bui|\\))/i], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [// OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i, /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [// Amazon\n /(alexa)webm/i, /(kf[a-z]{2}wi)( bui|\\))/i, // Kindle Fire without Silk\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [// BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [/\\b((?:bb[a-f]|st[hv])100-\\d)/i, /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [// Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [// HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i, /(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [// Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [// Meizu\n /droid.+; (m[1-5] note) bui/i, /\\bmz-([-\\w]{2,})/i], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [// Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i], [MODEL, [VENDOR, 'Sharp'], [TYPE, MOBILE]], [// MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i, // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [/(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [/(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [/(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [/\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [/\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [/\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [/\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [/\\b(tm\\d{3}\\w+) b/i], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [/\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [/\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [/\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [/\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [/\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [/\\b([yr]\\d{2}) b/i, /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [/\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [/\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [/\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [/\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [/\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [/\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [/\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [/(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [/(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [/(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [///////////////////\n // CONSOLES\n ///////////////////\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [/droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [/(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [///////////////////\n // SMARTTVS\n ///////////////////\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [/hbbtv.+maple;(\\d+)/i], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [/(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE + ' TV'], [TYPE, SMARTTV]], [/crkey/i // Google Chromecast\n ], [[MODEL, CHROME + 'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [/droid.+aft(\\w)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [/\\(dtv[\\);].+(aquos)/i // Sharp\n ], [MODEL, [VENDOR, 'Sharp'], [TYPE, SMARTTV]], [/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [///////////////////\n // WEARABLES\n ///////////////////\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [/droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [/droid.+; (wt63?0{2,3})\\)/i], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [/(quest( 2)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [///////////////////\n // EMBEDDED\n ///////////////////\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [////////////////////\n // MIXED (GENERIC)\n ///////////////////\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [/(phone|mobile(?:[;\\/]| safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [/(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]],\n engine: [[/windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE + 'HTML']], [/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [/(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i // iCab\n ], [NAME, VERSION], [/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]],\n os: [[// Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [/(windows) nt 6\\.2; (arm)/i, // Windows RT\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i, // Windows Phone\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i], [NAME, [VERSION, strMapper, windowsVersionMap]], [/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [// iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /cfnetwork\\/.+darwin/i], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [/(mac os x) ?([\\w\\. ]*)/i, /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [// Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86)/i // Android-x86\n ], [VERSION, NAME], [// Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i, /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [/\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX + ' OS']], [/web0s;.+rt(tv)/i, /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [// Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME + 'cast']], [/(cros) [\\w]+ ([\\w\\.]+\\w)/i // Chromium OS\n ], [[NAME, 'Chromium OS'], VERSION], [// Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i, // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [/(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]]\n }; /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function UAParser(ua, extensions) {\n if (_typeof(ua) === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _ua = ua || (_typeof(window) !== UNDEF_TYPE && window.navigator && window.navigator.userAgent ? window.navigator.userAgent : EMPTY);\n\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser.major = majorize(_browser.version);\n return _browser;\n };\n\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n return _device;\n };\n\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n return _os;\n };\n\n this.getResult = function () {\n return {\n ua: this.getUA(),\n browser: this.getBrowser(),\n engine: this.getEngine(),\n os: this.getOS(),\n device: this.getDevice(),\n cpu: this.getCPU()\n };\n };\n\n this.getUA = function () {\n return _ua;\n };\n\n this.setUA = function (ua) {\n _ua = _typeof(ua) === STR_TYPE && ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]); ///////////\n // Export\n //////////\n // check js environment\n\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) !== UNDEF_TYPE) {\n // nodejs env\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if ((typeof define === \"undefined\" ? \"undefined\" : _typeof(define)) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (_typeof(window) !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n } // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n\n\n var $ = _typeof(window) !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n\n $.ua.get = function () {\n return parser.getUA();\n };\n\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n})((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? window : this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n};\nvar logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n\n for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n\n messages.push(Date.now());\n\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [\"[ActionCable]\"].concat(messages));\n }\n }\n};\n\nvar now = function now() {\n return new Date().getTime();\n};\n\nvar secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n};\n\nvar ConnectionMonitor = /*#__PURE__*/function () {\n function ConnectionMonitor(connection) {\n _classCallCheck(this, ConnectionMonitor);\n\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n\n _createClass(ConnectionMonitor, [{\n key: \"start\",\n value: function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. stale threshold = \".concat(this.constructor.staleThreshold, \" s\"));\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n }, {\n key: \"isRunning\",\n value: function isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n }, {\n key: \"recordPing\",\n value: function recordPing() {\n this.pingedAt = now();\n }\n }, {\n key: \"recordConnect\",\n value: function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n }, {\n key: \"recordDisconnect\",\n value: function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n }, {\n key: \"startPolling\",\n value: function startPolling() {\n this.stopPolling();\n this.poll();\n }\n }, {\n key: \"stopPolling\",\n value: function stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n }, {\n key: \"poll\",\n value: function poll() {\n var _this = this;\n\n this.pollTimeout = setTimeout(function () {\n _this.reconnectIfStale();\n\n _this.poll();\n }, this.getPollInterval());\n }\n }, {\n key: \"getPollInterval\",\n value: function getPollInterval() {\n var _this$constructor = this.constructor,\n staleThreshold = _this$constructor.staleThreshold,\n reconnectionBackoffRate = _this$constructor.reconnectionBackoffRate;\n var backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n var jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n var jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n }, {\n key: \"reconnectIfStale\",\n value: function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \".concat(this.reconnectAttempts, \", time stale = \").concat(secondsSince(this.refreshedAt), \" s, stale threshold = \").concat(this.constructor.staleThreshold, \" s\"));\n this.reconnectAttempts++;\n\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect. time disconnected = \".concat(secondsSince(this.disconnectedAt), \" s\"));\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n }, {\n key: \"refreshedAt\",\n get: function get() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n }, {\n key: \"connectionIsStale\",\n value: function connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n }, {\n key: \"disconnectedRecently\",\n value: function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n }, {\n key: \"visibilityDidChange\",\n value: function visibilityDidChange() {\n var _this2 = this;\n\n if (document.visibilityState === \"visible\") {\n setTimeout(function () {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \".concat(document.visibilityState));\n\n _this2.connection.reopen();\n }\n }, 200);\n }\n }\n }]);\n\n return ConnectionMonitor;\n}();\n\nConnectionMonitor.staleThreshold = 6;\nConnectionMonitor.reconnectionBackoffRate = .15;\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n};\nvar message_types = INTERNAL.message_types,\n protocols = INTERNAL.protocols;\nvar supportedProtocols = protocols.slice(0, protocols.length - 1);\nvar indexOf = [].indexOf;\n\nvar Connection = /*#__PURE__*/function () {\n function Connection(consumer) {\n _classCallCheck(this, Connection);\n\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n\n _createClass(Connection, [{\n key: \"send\",\n value: function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"open\",\n value: function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \".concat(this.getState()));\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \".concat(this.getState(), \", subprotocols: \").concat(protocols));\n\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n },\n allowReconnect = _ref.allowReconnect;\n\n if (!allowReconnect) {\n this.monitor.stop();\n }\n\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n }, {\n key: \"reopen\",\n value: function reopen() {\n logger.log(\"Reopening WebSocket, current state is \".concat(this.getState()));\n\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \".concat(this.constructor.reopenDelay, \"ms\"));\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n }, {\n key: \"getProtocol\",\n value: function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n }, {\n key: \"isOpen\",\n value: function isOpen() {\n return this.isState(\"open\");\n }\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n }, {\n key: \"isProtocolSupported\",\n value: function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n }, {\n key: \"isState\",\n value: function isState() {\n for (var _len2 = arguments.length, states = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n states[_key2] = arguments[_key2];\n }\n\n return indexOf.call(states, this.getState()) >= 0;\n }\n }, {\n key: \"getState\",\n value: function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"installEventHandlers\",\n value: function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\".concat(eventName)] = handler;\n }\n }\n }, {\n key: \"uninstallEventHandlers\",\n value: function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\".concat(eventName)] = function () {};\n }\n }\n }]);\n\n return Connection;\n}();\n\nConnection.reopenDelay = 500;\nConnection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n\n var _JSON$parse = JSON.parse(event.data),\n identifier = _JSON$parse.identifier,\n message = _JSON$parse.message,\n reason = _JSON$parse.reason,\n reconnect = _JSON$parse.reconnect,\n type = _JSON$parse.type;\n\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \".concat(reason));\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\".concat(this.getProtocol(), \"' subprotocol\"));\n this.disconnected = false;\n\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n\n if (this.disconnected) {\n return;\n }\n\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\n\nvar extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n\n return object;\n};\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments.length > 2 ? arguments[2] : undefined;\n\n _classCallCheck(this, Subscription);\n\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n\n _createClass(Subscription, [{\n key: \"perform\",\n value: function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n }\n }, {\n key: \"send\",\n value: function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionGuarantor = /*#__PURE__*/function () {\n function SubscriptionGuarantor(subscriptions) {\n _classCallCheck(this, SubscriptionGuarantor);\n\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n\n _createClass(SubscriptionGuarantor, [{\n key: \"guarantee\",\n value: function guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(\"SubscriptionGuarantor guaranteeing \".concat(subscription.identifier));\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(\"SubscriptionGuarantor already guaranteeing \".concat(subscription.identifier));\n }\n\n this.startGuaranteeing();\n }\n }, {\n key: \"forget\",\n value: function forget(subscription) {\n logger.log(\"SubscriptionGuarantor forgetting \".concat(subscription.identifier));\n this.pendingSubscriptions = this.pendingSubscriptions.filter(function (s) {\n return s !== subscription;\n });\n }\n }, {\n key: \"startGuaranteeing\",\n value: function startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n }, {\n key: \"stopGuaranteeing\",\n value: function stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n }, {\n key: \"retrySubscribing\",\n value: function retrySubscribing() {\n var _this3 = this;\n\n this.retryTimeout = setTimeout(function () {\n if (_this3.subscriptions && typeof _this3.subscriptions.subscribe === \"function\") {\n _this3.pendingSubscriptions.map(function (subscription) {\n logger.log(\"SubscriptionGuarantor resubscribing \".concat(subscription.identifier));\n\n _this3.subscriptions.subscribe(subscription);\n });\n }\n }, 500);\n }\n }]);\n\n return SubscriptionGuarantor;\n}();\n\nvar Subscriptions = /*#__PURE__*/function () {\n function Subscriptions(consumer) {\n _classCallCheck(this, Subscriptions);\n\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n\n _createClass(Subscriptions, [{\n key: \"create\",\n value: function create(channelName, mixin) {\n var channel = channelName;\n var params = _typeof(channel) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n }, {\n key: \"add\",\n value: function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n }, {\n key: \"remove\",\n value: function remove(subscription) {\n this.forget(subscription);\n\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n\n return subscription;\n }\n }, {\n key: \"reject\",\n value: function reject(identifier) {\n var _this4 = this;\n\n return this.findAll(identifier).map(function (subscription) {\n _this4.forget(subscription);\n\n _this4.notify(subscription, \"rejected\");\n\n return subscription;\n });\n }\n }, {\n key: \"forget\",\n value: function forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter(function (s) {\n return s !== subscription;\n });\n return subscription;\n }\n }, {\n key: \"findAll\",\n value: function findAll(identifier) {\n return this.subscriptions.filter(function (s) {\n return s.identifier === identifier;\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n\n return this.subscriptions.map(function (subscription) {\n return _this5.subscribe(subscription);\n });\n }\n }, {\n key: \"notifyAll\",\n value: function notifyAll(callbackName) {\n var _this6 = this;\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return this.subscriptions.map(function (subscription) {\n return _this6.notify.apply(_this6, [subscription, callbackName].concat(args));\n });\n }\n }, {\n key: \"notify\",\n value: function notify(subscription, callbackName) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {\n args[_key4 - 2] = arguments[_key4];\n }\n\n var subscriptions;\n\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n\n return subscriptions.map(function (subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n }\n }, {\n key: \"subscribe\",\n value: function subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n }, {\n key: \"confirmSubscription\",\n value: function confirmSubscription(identifier) {\n var _this7 = this;\n\n logger.log(\"Subscription confirmed \".concat(identifier));\n this.findAll(identifier).map(function (subscription) {\n return _this7.guarantor.forget(subscription);\n });\n }\n }, {\n key: \"sendCommand\",\n value: function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n }]);\n\n return Subscriptions;\n}();\n\nvar Consumer = /*#__PURE__*/function () {\n function Consumer(url) {\n _classCallCheck(this, Consumer);\n\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n\n _createClass(Consumer, [{\n key: \"url\",\n get: function get() {\n return createWebSocketURL(this._url);\n }\n }, {\n key: \"send\",\n value: function send(data) {\n return this.connection.send(data);\n }\n }, {\n key: \"connect\",\n value: function connect() {\n return this.connection.open();\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n }, {\n key: \"ensureActiveConnection\",\n value: function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n }]);\n\n return Consumer;\n}();\n\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\n\nfunction createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n}\n\nfunction getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\".concat(name, \"']\"));\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };","function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { Controller } from \"@hotwired/stimulus\";\nimport CableReady, { Utils } from \"cable_ready\";\nimport { createConsumer } from \"@rails/actioncable\";\n/*!\n * Toastify js 1.12.0\n * https://github.com/apvarun/toastify-js\n * @license MIT licensed\n *\n * Copyright (C) 2018 Varun A P\n */\n\nvar Toastify = /*#__PURE__*/function () {\n function Toastify(options) {\n _classCallCheck(this, Toastify);\n\n this.defaults = {\n oldestFirst: true,\n text: \"Toastify is awesome!\",\n node: undefined,\n duration: 3e3,\n selector: undefined,\n callback: function callback() {},\n destination: undefined,\n newWindow: false,\n close: false,\n gravity: \"toastify-top\",\n positionLeft: false,\n position: \"\",\n backgroundColor: \"\",\n avatar: \"\",\n className: \"\",\n stopOnFocus: true,\n onClick: function onClick() {},\n offset: {\n x: 0,\n y: 0\n },\n escapeMarkup: true,\n ariaLive: \"polite\",\n style: {\n background: \"\"\n }\n };\n this.version = \"1.12.0\";\n this.options = {};\n this.toastElement = null;\n this._rootElement = document.body;\n\n this._init(options);\n }\n\n _createClass(Toastify, [{\n key: \"showToast\",\n value: function showToast() {\n var _this = this;\n\n this.toastElement = this._buildToast();\n\n if (typeof this.options.selector === \"string\") {\n this._rootElement = document.getElementById(this.options.selector);\n } else if (this.options.selector instanceof HTMLElement || this.options.selector instanceof ShadowRoot) {\n this._rootElement = this.options.selector;\n } else {\n this._rootElement = document.body;\n }\n\n if (!this._rootElement) {\n throw \"Root element is not defined\";\n }\n\n this._rootElement.insertBefore(this.toastElement, this._rootElement.firstChild);\n\n this._reposition();\n\n if (this.options.duration > 0) {\n this.toastElement.timeOutValue = window.setTimeout(function () {\n _this._removeElement(_this.toastElement);\n }, this.options.duration);\n }\n\n return this;\n }\n }, {\n key: \"hideToast\",\n value: function hideToast() {\n if (this.toastElement.timeOutValue) {\n clearTimeout(this.toastElement.timeOutValue);\n }\n\n this._removeElement(this.toastElement);\n }\n }, {\n key: \"_init\",\n value: function _init(options) {\n this.options = Object.assign(this.defaults, options);\n\n if (this.options.backgroundColor) {\n console.warn('DEPRECATION NOTICE: \"backgroundColor\" is being deprecated. Please use the \"style.background\" property.');\n }\n\n this.toastElement = null;\n this.options.gravity = options.gravity === \"bottom\" ? \"toastify-bottom\" : \"toastify-top\";\n this.options.stopOnFocus = options.stopOnFocus === undefined ? true : options.stopOnFocus;\n\n if (options.backgroundColor) {\n this.options.style.background = options.backgroundColor;\n }\n }\n }, {\n key: \"_buildToast\",\n value: function _buildToast() {\n var _this2 = this;\n\n if (!this.options) {\n throw \"Toastify is not initialized\";\n }\n\n var divElement = document.createElement(\"div\");\n divElement.className = \"toastify on \".concat(this.options.className);\n divElement.className += \" toastify-\".concat(this.options.position);\n divElement.className += \" \".concat(this.options.gravity);\n\n for (var property in this.options.style) {\n divElement.style[property] = this.options.style[property];\n }\n\n if (this.options.ariaLive) {\n divElement.setAttribute(\"aria-live\", this.options.ariaLive);\n }\n\n if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) {\n divElement.appendChild(this.options.node);\n } else {\n if (this.options.escapeMarkup) {\n divElement.innerText = this.options.text;\n } else {\n divElement.innerHTML = this.options.text;\n }\n\n if (this.options.avatar !== \"\") {\n var avatarElement = document.createElement(\"img\");\n avatarElement.src = this.options.avatar;\n avatarElement.className = \"toastify-avatar\";\n\n if (this.options.position == \"left\") {\n divElement.appendChild(avatarElement);\n } else {\n divElement.insertAdjacentElement(\"afterbegin\", avatarElement);\n }\n }\n }\n\n if (this.options.close === true) {\n var closeElement = document.createElement(\"button\");\n closeElement.type = \"button\";\n closeElement.setAttribute(\"aria-label\", \"Close\");\n closeElement.className = \"toast-close\";\n closeElement.innerHTML = \"✖\";\n closeElement.addEventListener(\"click\", function (event) {\n event.stopPropagation();\n\n _this2._removeElement(_this2.toastElement);\n\n window.clearTimeout(_this2.toastElement.timeOutValue);\n });\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n if (this.options.position == \"left\" && width > 360) {\n divElement.insertAdjacentElement(\"afterbegin\", closeElement);\n } else {\n divElement.appendChild(closeElement);\n }\n }\n\n if (this.options.stopOnFocus && this.options.duration > 0) {\n divElement.addEventListener(\"mouseover\", function (event) {\n window.clearTimeout(divElement.timeOutValue);\n });\n divElement.addEventListener(\"mouseleave\", function () {\n divElement.timeOutValue = window.setTimeout(function () {\n _this2._removeElement(divElement);\n }, _this2.options.duration);\n });\n }\n\n if (typeof this.options.destination !== \"undefined\") {\n divElement.addEventListener(\"click\", function (event) {\n event.stopPropagation();\n\n if (_this2.options.newWindow === true) {\n window.open(_this2.options.destination, \"_blank\");\n } else {\n window.location = _this2.options.destination;\n }\n });\n }\n\n if (typeof this.options.onClick === \"function\" && typeof this.options.destination === \"undefined\") {\n divElement.addEventListener(\"click\", function (event) {\n event.stopPropagation();\n\n _this2.options.onClick();\n });\n }\n\n if (_typeof(this.options.offset) === \"object\") {\n var x = this._getAxisOffsetAValue(\"x\", this.options);\n\n var y = this._getAxisOffsetAValue(\"y\", this.options);\n\n var xOffset = this.options.position == \"left\" ? x : \"-\".concat(x);\n var yOffset = this.options.gravity == \"toastify-top\" ? y : \"-\".concat(y);\n divElement.style.transform = \"translate(\".concat(xOffset, \",\").concat(yOffset, \")\");\n }\n\n return divElement;\n }\n }, {\n key: \"_removeElement\",\n value: function _removeElement(toastElement) {\n var _this3 = this;\n\n toastElement.className = toastElement.className.replace(\" on\", \"\");\n window.setTimeout(function () {\n if (_this3.options.node && _this3.options.node.parentNode) {\n _this3.options.node.parentNode.removeChild(_this3.options.node);\n }\n\n if (toastElement.parentNode) {\n toastElement.parentNode.removeChild(toastElement);\n }\n\n _this3.options.callback.call(toastElement);\n\n _this3._reposition();\n }, 400);\n }\n }, {\n key: \"_reposition\",\n value: function _reposition() {\n var topLeftOffsetSize = {\n top: 15,\n bottom: 15\n };\n var topRightOffsetSize = {\n top: 15,\n bottom: 15\n };\n var offsetSize = {\n top: 15,\n bottom: 15\n };\n\n var allToasts = this._rootElement.querySelectorAll(\".toastify\");\n\n var classUsed;\n\n for (var i = 0; i < allToasts.length; i++) {\n if (allToasts[i].classList.contains(\"toastify-top\") === true) {\n classUsed = \"toastify-top\";\n } else {\n classUsed = \"toastify-bottom\";\n }\n\n var height = allToasts[i].offsetHeight;\n classUsed = classUsed.substr(9, classUsed.length - 1);\n var offset = 15;\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n if (width <= 360) {\n allToasts[i].style[classUsed] = \"\".concat(offsetSize[classUsed], \"px\");\n offsetSize[classUsed] += height + offset;\n } else {\n if (allToasts[i].classList.contains(\"toastify-left\") === true) {\n allToasts[i].style[classUsed] = \"\".concat(topLeftOffsetSize[classUsed], \"px\");\n topLeftOffsetSize[classUsed] += height + offset;\n } else {\n allToasts[i].style[classUsed] = \"\".concat(topRightOffsetSize[classUsed], \"px\");\n topRightOffsetSize[classUsed] += height + offset;\n }\n }\n }\n }\n }, {\n key: \"_getAxisOffsetAValue\",\n value: function _getAxisOffsetAValue(axis, options) {\n if (options.offset[axis]) {\n if (isNaN(options.offset[axis])) {\n return options.offset[axis];\n } else {\n return \"\".concat(options.offset[axis], \"px\");\n }\n }\n\n return \"0px\";\n }\n }]);\n\n return Toastify;\n}();\n\nfunction StartToastifyInstance(options) {\n return new Toastify(options);\n}\n\nCableReady.operations.stimulusReflexVersionMismatch = function (operation) {\n var levels = {\n info: {},\n success: {\n background: \"#198754\",\n color: \"white\"\n },\n warn: {\n background: \"#ffc107\",\n color: \"black\"\n },\n error: {\n background: \"#dc3545\",\n color: \"white\"\n }\n };\n var defaults = {\n selector: setupToastify(),\n close: true,\n duration: 30 * 1e3,\n gravity: \"bottom\",\n position: \"right\",\n newWindow: true,\n style: levels[operation.level || \"info\"]\n };\n StartToastifyInstance(_objectSpread(_objectSpread({}, defaults), operation)).showToast();\n};\n\nfunction setupToastify() {\n var id = \"stimulus-reflex-toast-element\";\n var element = document.querySelector(\"#\".concat(id));\n\n if (!element) {\n element = document.createElement(\"div\");\n element.id = id;\n document.documentElement.appendChild(element);\n var styles = document.createElement(\"style\");\n styles.innerHTML = \"\\n #\".concat(id, \" .toastify {\\n padding: 12px 20px;\\n color: #ffffff;\\n display: inline-block;\\n background: -webkit-linear-gradient(315deg, #73a5ff, #5477f5);\\n background: linear-gradient(135deg, #73a5ff, #5477f5);\\n position: fixed;\\n opacity: 0;\\n transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);\\n border-radius: 2px;\\n cursor: pointer;\\n text-decoration: none;\\n max-width: calc(50% - 20px);\\n z-index: 2147483647;\\n bottom: -150px;\\n right: 15px;\\n }\\n\\n #\").concat(id, \" .toastify.on {\\n opacity: 1;\\n }\\n\\n #\").concat(id, \" .toast-close {\\n background: transparent;\\n border: 0;\\n color: white;\\n cursor: pointer;\\n font-family: inherit;\\n font-size: 1em;\\n opacity: 0.4;\\n padding: 0 5px;\\n }\\n \");\n document.head.appendChild(styles);\n }\n\n return element;\n}\n\nvar deprecationWarnings = true;\nvar Deprecate = {\n get enabled() {\n return deprecationWarnings;\n },\n\n get disabled() {\n return !deprecationWarnings;\n },\n\n get value() {\n return deprecationWarnings;\n },\n\n set: function set(value) {\n deprecationWarnings = !!value;\n },\n\n set deprecate(value) {\n deprecationWarnings = !!value;\n }\n\n};\nvar debugging = false;\nvar Debug$1 = {\n get enabled() {\n return debugging;\n },\n\n get disabled() {\n return !debugging;\n },\n\n get value() {\n return debugging;\n },\n\n set: function set(value) {\n debugging = !!value;\n },\n\n set debug(value) {\n debugging = !!value;\n }\n\n};\nvar defaultSchema = {\n reflexAttribute: \"data-reflex\",\n reflexPermanentAttribute: \"data-reflex-permanent\",\n reflexRootAttribute: \"data-reflex-root\",\n reflexSuppressLoggingAttribute: \"data-reflex-suppress-logging\",\n reflexDatasetAttribute: \"data-reflex-dataset\",\n reflexDatasetAllAttribute: \"data-reflex-dataset-all\",\n reflexSerializeFormAttribute: \"data-reflex-serialize-form\",\n reflexFormSelectorAttribute: \"data-reflex-form-selector\",\n reflexIncludeInnerHtmlAttribute: \"data-reflex-include-inner-html\",\n reflexIncludeTextContentAttribute: \"data-reflex-include-text-content\"\n};\nvar schema = {};\nvar Schema = {\n set: function set(application) {\n var _this4 = this;\n\n schema = _objectSpread(_objectSpread({}, defaultSchema), application.schema);\n\n var _loop = function _loop(attribute) {\n var attributeName = attribute.slice(0, -9);\n Object.defineProperty(_this4, attributeName, {\n get: function get() {\n return schema[attribute];\n },\n configurable: true\n });\n };\n\n for (var attribute in schema) {\n _loop(attribute);\n }\n }\n};\nvar debounce = Utils.debounce,\n dispatch = Utils.dispatch,\n xpathToElement = Utils.xpathToElement,\n xpathToElementArray = Utils.xpathToElementArray;\n\nvar uuidv4 = function uuidv4() {\n var crypto = window.crypto || window.msCrypto;\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {\n return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);\n });\n};\n\nvar serializeForm = function serializeForm(form) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!form) return \"\";\n var w = options.w || window;\n var element = options.element;\n var formData = new w.FormData(form);\n var data = Array.from(formData, function (e) {\n return e.map(encodeURIComponent).join(\"=\");\n });\n var submitButton = form.querySelector(\"input[type=submit]\");\n\n if (element && element.name && element.nodeName === \"INPUT\" && element.type === \"submit\") {\n data.push(\"\".concat(encodeURIComponent(element.name), \"=\").concat(encodeURIComponent(element.value)));\n } else if (submitButton && submitButton.name) {\n data.push(\"\".concat(encodeURIComponent(submitButton.name), \"=\").concat(encodeURIComponent(submitButton.value)));\n }\n\n return Array.from(data).join(\"&\");\n};\n\nvar camelize = function camelize(value) {\n var uppercaseFirstLetter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (typeof value !== \"string\") return \"\";\n value = value.replace(/[\\s_](.)/g, function ($1) {\n return $1.toUpperCase();\n }).replace(/[\\s_]/g, \"\").replace(/^(.)/, function ($1) {\n return $1.toLowerCase();\n });\n if (uppercaseFirstLetter) value = value.substr(0, 1).toUpperCase() + value.substr(1);\n return value;\n};\n\nvar XPathToElement = xpathToElement;\nvar XPathToArray = xpathToElementArray;\n\nvar emitEvent = function emitEvent(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatch(document, name, detail);\n};\n\nvar extractReflexName = function extractReflexName(reflexString) {\n var match = reflexString.match(/(?:.*->)?(.*?)(?:Reflex)?#/);\n return match ? match[1] : \"\";\n};\n\nvar elementToXPath = function elementToXPath(element) {\n if (element.id !== \"\") return \"//*[@id='\" + element.id + \"']\";\n if (element === document.body) return \"/html/body\";\n if (element.nodeName === \"HTML\") return \"/html\";\n var ix = 0;\n var siblings = element && element.parentNode ? element.parentNode.childNodes : [];\n\n for (var i = 0; i < siblings.length; i++) {\n var sibling = siblings[i];\n\n if (sibling === element) {\n var computedPath = elementToXPath(element.parentNode);\n var tagName = element.tagName.toLowerCase();\n var ixInc = ix + 1;\n return \"\".concat(computedPath, \"/\").concat(tagName, \"[\").concat(ixInc, \"]\");\n }\n\n if (sibling.nodeType === 1 && sibling.tagName === element.tagName) {\n ix++;\n }\n }\n};\n\nvar elementInvalid = function elementInvalid(element) {\n return element.type === \"number\" && element.validity && element.validity.badInput;\n};\n\nvar getReflexElement = function getReflexElement(args, element) {\n return args[0] && args[0].nodeType === Node.ELEMENT_NODE ? args.shift() : element;\n};\n\nvar getReflexOptions = function getReflexOptions(args) {\n var options = {};\n\n if (args[0] && _typeof(args[0]) === \"object\" && Object.keys(args[0]).filter(function (key) {\n return [\"id\", \"attrs\", \"selectors\", \"reflexId\", \"resolveLate\", \"serializeForm\", \"suppressLogging\", \"includeInnerHTML\", \"includeTextContent\"].includes(key);\n }).length) {\n var opts = args.shift();\n Object.keys(opts).forEach(function (o) {\n if (o === \"reflexId\") {\n if (Deprecate.enabled) console.warn(\"reflexId option will be removed in v4. Use id instead.\");\n options[\"id\"] = opts[\"reflexId\"];\n } else options[o] = opts[o];\n });\n }\n\n return options;\n};\n\nvar getReflexRoots = function getReflexRoots(element) {\n var list = [];\n\n while (list.length === 0 && element) {\n var reflexRoot = element.getAttribute(Schema.reflexRoot);\n\n if (reflexRoot) {\n if (reflexRoot.length === 0 && element.id) reflexRoot = \"#\".concat(element.id);\n var selectors = reflexRoot.split(\",\").filter(function (s) {\n return s.trim().length;\n });\n\n if (Debug$1.enabled && selectors.length === 0) {\n console.error(\"No value found for \".concat(Schema.reflexRoot, \". Add an #id to the element or provide a value for \").concat(Schema.reflexRoot, \".\"), element);\n }\n\n list = list.concat(selectors.filter(function (s) {\n return document.querySelector(s);\n }));\n }\n\n element = element.parentElement ? element.parentElement.closest(\"[\".concat(Schema.reflexRoot, \"]\")) : null;\n }\n\n return list;\n};\n\nvar reflexNameToControllerIdentifier = function reflexNameToControllerIdentifier(reflexName) {\n return reflexName.replace(/([a-z0–9])([A-Z])/g, \"$1-$2\").replace(/(::)/g, \"--\").replace(/-reflex$/gi, \"\").toLowerCase();\n};\n\nvar stages = [\"created\", \"before\", \"delivered\", \"queued\", \"after\", \"finalized\", \"success\", \"error\", \"halted\", \"forbidden\"];\nvar lastReflex;\nvar reflexes = new Proxy({}, {\n get: function get(target, prop) {\n if (stages.includes(prop)) return Object.fromEntries(Object.entries(target).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ = _ref2[0],\n reflex = _ref2[1];\n\n return reflex.stage === prop;\n }));else if (prop === \"last\") return lastReflex;else if (prop === \"all\") return target;\n return Reflect.get.apply(Reflect, arguments);\n },\n set: function set(target, prop, value) {\n target[prop] = value;\n lastReflex = value;\n return true;\n }\n});\n\nvar invokeLifecycleMethod = function invokeLifecycleMethod(reflex, stage) {\n var specificLifecycleMethod = reflex.controller[[\"before\", \"after\", \"finalize\"].includes(stage) ? \"\".concat(stage).concat(camelize(reflex.action)) : \"\".concat(camelize(reflex.action, false)).concat(camelize(stage))];\n var genericLifecycleMethod = reflex.controller[[\"before\", \"after\", \"finalize\"].includes(stage) ? \"\".concat(stage, \"Reflex\") : \"reflex\".concat(camelize(stage))];\n\n if (typeof specificLifecycleMethod === \"function\") {\n specificLifecycleMethod.call(reflex.controller, reflex.element, reflex.target, reflex.error, reflex.id, reflex.payload);\n }\n\n if (typeof genericLifecycleMethod === \"function\") {\n genericLifecycleMethod.call(reflex.controller, reflex.element, reflex.target, reflex.error, reflex.id, reflex.payload);\n }\n};\n\nvar dispatchLifecycleEvent = function dispatchLifecycleEvent(reflex, stage) {\n if (!reflex.controller.element.parentElement) {\n if (Debug$1.enabled && !reflex.warned) {\n console.warn(\"StimulusReflex was not able execute callbacks or emit events for \\\"\".concat(stage, \"\\\" or later life-cycle stages for this Reflex. The StimulusReflex Controller Element is no longer present in the DOM. Could you move the StimulusReflex Controller to an element higher in your DOM?\"));\n reflex.warned = true;\n }\n\n return;\n }\n\n reflex.stage = stage;\n reflex.lifecycle.push(stage);\n var event = \"stimulus-reflex:\".concat(stage);\n var action = \"\".concat(event, \":\").concat(reflex.action);\n var detail = {\n reflex: reflex.target,\n controller: reflex.controller,\n id: reflex.id,\n element: reflex.element,\n payload: reflex.payload\n };\n var options = {\n bubbles: true,\n cancelable: false,\n detail: detail\n };\n reflex.controller.element.dispatchEvent(new CustomEvent(event, options));\n reflex.controller.element.dispatchEvent(new CustomEvent(action, options));\n\n if (window.jQuery) {\n window.jQuery(reflex.controller.element).trigger(event, detail);\n window.jQuery(reflex.controller.element).trigger(action, detail);\n }\n};\n\ndocument.addEventListener(\"stimulus-reflex:before\", function (event) {\n return invokeLifecycleMethod(reflexes[event.detail.id], \"before\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:queued\", function (event) {\n return invokeLifecycleMethod(reflexes[event.detail.id], \"queued\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:delivered\", function (event) {\n return invokeLifecycleMethod(reflexes[event.detail.id], \"delivered\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:success\", function (event) {\n var reflex = reflexes[event.detail.id];\n invokeLifecycleMethod(reflex, \"success\");\n dispatchLifecycleEvent(reflex, \"after\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:nothing\", function (event) {\n return dispatchLifecycleEvent(reflexes[event.detail.id], \"success\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:error\", function (event) {\n var reflex = reflexes[event.detail.id];\n invokeLifecycleMethod(reflex, \"error\");\n dispatchLifecycleEvent(reflex, \"after\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:halted\", function (event) {\n return invokeLifecycleMethod(reflexes[event.detail.id], \"halted\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:forbidden\", function (event) {\n return invokeLifecycleMethod(reflexes[event.detail.id], \"forbidden\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:after\", function (event) {\n return invokeLifecycleMethod(reflexes[event.detail.id], \"after\");\n}, true);\ndocument.addEventListener(\"stimulus-reflex:finalize\", function (event) {\n return invokeLifecycleMethod(reflexes[event.detail.id], \"finalize\");\n}, true);\nvar app = {};\nvar App = {\n get app() {\n return app;\n },\n\n set: function set(application) {\n app = application;\n }\n};\nvar isolationMode = false;\nvar IsolationMode = {\n get disabled() {\n return !isolationMode;\n },\n\n set: function set(value) {\n isolationMode = value;\n\n if (Deprecate.enabled && !isolationMode) {\n document.addEventListener(\"DOMContentLoaded\", function () {\n return console.warn(\"Deprecation warning: the next version of StimulusReflex will standardize isolation mode, and the isolate option will be removed.\\nPlease update your applications to assume that every tab will be isolated. Use CableReady operations to broadcast updates to other tabs and users.\");\n }, {\n once: true\n });\n }\n }\n};\n\nvar Reflex = /*#__PURE__*/function () {\n function Reflex(data, controller) {\n _classCallCheck(this, Reflex);\n\n this.data = data.valueOf();\n this.controller = controller;\n this.element = data.reflexElement;\n this.id = data.id;\n this.error = null;\n this.payload = null;\n this.stage = \"created\";\n this.lifecycle = [\"created\"];\n this.warned = false;\n this.target = data.target;\n this.action = data.target.split(\"#\")[1];\n this.selector = null;\n this.morph = null;\n this.operation = null;\n this.timestamp = new Date();\n this.cloned = false;\n }\n\n _createClass(Reflex, [{\n key: \"getPromise\",\n get: function get() {\n var _this5 = this;\n\n var promise = new Promise(function (resolve, reject) {\n _this5.promise = {\n resolve: resolve,\n reject: reject,\n data: _this5.data\n };\n });\n promise.id = this.id;\n Object.defineProperty(promise, \"reflexId\", {\n get: function get() {\n if (Deprecate.enabled) console.warn(\"reflexId is deprecated and will be removed from v4. Use id instead.\");\n return this.id;\n }\n });\n promise.reflex = this;\n if (Debug$1.enabled) promise.catch(function () {});\n return promise;\n }\n }]);\n\n return Reflex;\n}();\n\nvar received = function received(data) {\n if (!data.cableReady) return;\n\n if (data.version.replace(\".pre\", \"-pre\").replace(\".rc\", \"-rc\") !== CableReady.version) {\n var mismatch = \"CableReady failed to execute your reflex action due to a version mismatch between your gem and JavaScript version. Package versions must match exactly.\\n\\ncable_ready gem: \".concat(data.version, \"\\ncable_ready npm: \").concat(CableReady.version);\n console.error(mismatch);\n\n if (Debug$1.enabled) {\n CableReady.operations.stimulusReflexVersionMismatch({\n text: mismatch,\n level: \"error\"\n });\n }\n\n return;\n }\n\n var reflexOperations = [];\n\n for (var i = data.operations.length - 1; i >= 0; i--) {\n if (data.operations[i].stimulusReflex) {\n reflexOperations.push(data.operations[i]);\n data.operations.splice(i, 1);\n }\n }\n\n if (reflexOperations.some(function (operation) {\n return operation.stimulusReflex.url !== location.href;\n })) {\n if (Debug$1.enabled) {\n console.error(\"Reflex failed due to mismatched URL.\");\n return;\n }\n }\n\n var reflexData;\n\n if (reflexOperations.length) {\n reflexData = reflexOperations[0].stimulusReflex;\n reflexData.payload = reflexOperations[0].payload;\n }\n\n if (reflexData) {\n var _reflexData = reflexData,\n id = _reflexData.id,\n payload = _reflexData.payload;\n var reflex;\n\n if (!reflexes[id] && IsolationMode.disabled) {\n var controllerElement = XPathToElement(reflexData.xpathController);\n var reflexElement = XPathToElement(reflexData.xpathElement);\n controllerElement.reflexController = controllerElement.reflexController || {};\n controllerElement.reflexData = controllerElement.reflexData || {};\n controllerElement.reflexError = controllerElement.reflexError || {};\n var controller = App.app.getControllerForElementAndIdentifier(controllerElement, reflexData.reflexController);\n controllerElement.reflexController[id] = controller;\n controllerElement.reflexData[id] = reflexData;\n reflex = new Reflex(reflexData, controller);\n reflexes[id] = reflex;\n reflex.cloned = true;\n reflex.element = reflexElement;\n controller.lastReflex = reflex;\n dispatchLifecycleEvent(reflex, \"before\");\n reflex.getPromise;\n } else {\n reflex = reflexes[id];\n }\n\n if (reflex) {\n reflex.payload = payload;\n reflex.totalOperations = reflexOperations.length;\n reflex.pendingOperations = reflexOperations.length;\n reflex.completedOperations = 0;\n reflex.piggybackOperations = data.operations;\n CableReady.perform(reflexOperations);\n }\n } else {\n if (data.operations.length && reflexes[data.operations[0].reflexId]) {\n CableReady.perform(data.operations);\n }\n }\n};\n\nvar consumer;\nvar params;\nvar subscription;\nvar active;\n\nvar initialize$1 = function initialize$1(consumerValue, paramsValue) {\n consumer = consumerValue;\n params = paramsValue;\n document.addEventListener(\"DOMContentLoaded\", function () {\n active = false;\n connectionStatusClass();\n if (Deprecate.enabled && consumerValue) console.warn(\"Deprecation warning: the next version of StimulusReflex will obtain a reference to consumer via the Stimulus application object.\\nPlease add 'application.consumer = consumer' to your index.js after your Stimulus application has been established, and remove the consumer key from your StimulusReflex initialize() options object.\");\n });\n document.addEventListener(\"turbolinks:load\", connectionStatusClass);\n document.addEventListener(\"turbo:load\", connectionStatusClass);\n};\n\nvar subscribe = function subscribe(controller) {\n if (subscription) return;\n consumer = consumer || controller.application.consumer || createConsumer();\n var channel = controller.StimulusReflex.channel;\n\n var request = _objectSpread({\n channel: channel\n }, params);\n\n var identifier = JSON.stringify(request);\n subscription = consumer.subscriptions.findAll(identifier)[0] || consumer.subscriptions.create(request, {\n received: received,\n connected: connected,\n rejected: rejected,\n disconnected: disconnected\n });\n};\n\nvar connected = function connected() {\n active = true;\n connectionStatusClass();\n emitEvent(\"stimulus-reflex:connected\");\n Object.values(reflexes.queued).forEach(function (reflex) {\n subscription.send(reflex.data);\n dispatchLifecycleEvent(reflex, \"delivered\");\n });\n};\n\nvar rejected = function rejected() {\n active = false;\n connectionStatusClass();\n emitEvent(\"stimulus-reflex:rejected\");\n if (Debug.enabled) console.warn(\"Channel subscription was rejected.\");\n};\n\nvar disconnected = function disconnected(willAttemptReconnect) {\n active = false;\n connectionStatusClass();\n emitEvent(\"stimulus-reflex:disconnected\", willAttemptReconnect);\n};\n\nvar deliver = function deliver(reflex) {\n if (active) {\n subscription.send(reflex.data);\n dispatchLifecycleEvent(reflex, \"delivered\");\n } else dispatchLifecycleEvent(reflex, \"queued\");\n};\n\nvar connectionStatusClass = function connectionStatusClass() {\n var list = document.body.classList;\n\n if (!(list.contains(\"stimulus-reflex-connected\") || list.contains(\"stimulus-reflex-disconnected\"))) {\n list.add(active ? \"stimulus-reflex-connected\" : \"stimulus-reflex-disconnected\");\n return;\n }\n\n if (active) {\n list.replace(\"stimulus-reflex-disconnected\", \"stimulus-reflex-connected\");\n } else {\n list.replace(\"stimulus-reflex-connected\", \"stimulus-reflex-disconnected\");\n }\n};\n\nvar ActionCableTransport = {\n subscribe: subscribe,\n deliver: deliver,\n initialize: initialize$1\n};\n\nvar request = function request(reflex) {\n if (Debug$1.disabled || reflex.data.suppressLogging) return;\n console.log(\"\\u2191 stimulus \\u2191 \".concat(reflex.target), {\n id: reflex.id,\n args: reflex.data.args,\n controller: reflex.controller.identifier,\n element: reflex.element,\n controllerElement: reflex.controller.element\n });\n};\n\nvar success = function success(reflex) {\n if (Debug$1.disabled || reflex.data.suppressLogging) return;\n var output = {\n id: reflex.id,\n morph: reflex.morph,\n payload: reflex.payload\n };\n if (reflex.operation !== \"dispatch_event\") output.operation = reflex.operation;\n console.log(\"\\u2193 reflex \\u2193 \".concat(reflex.target, \" \\u2192 \").concat(reflex.selector || \"∞\").concat(progress(reflex), \" \").concat(duration(reflex)), output);\n};\n\nvar halted$1 = function halted$1(reflex) {\n if (Debug$1.disabled || reflex.data.suppressLogging) return;\n console.log(\"\\u2193 reflex \\u2193 \".concat(reflex.target, \" \").concat(duration(reflex), \" %cHALTED\"), \"color: #ffa500;\", {\n id: reflex.id,\n payload: reflex.payload\n });\n};\n\nvar forbidden$1 = function forbidden$1(reflex) {\n if (Debug$1.disabled || reflex.data.suppressLogging) return;\n console.log(\"\\u2193 reflex \\u2193 \".concat(reflex.target, \" \").concat(duration(reflex), \" %cFORBIDDEN\"), \"color: #BF40BF;\", {\n id: reflex.id,\n payload: reflex.payload\n });\n};\n\nvar error$1 = function error$1(reflex) {\n if (Debug$1.disabled || reflex.data.suppressLogging) return;\n console.log(\"\\u2193 reflex \\u2193 \".concat(reflex.target, \" \").concat(duration(reflex), \" %cERROR: \").concat(reflex.error), \"color: #f00;\", {\n id: reflex.id,\n payload: reflex.payload\n });\n};\n\nvar duration = function duration(reflex) {\n return !reflex.cloned ? \"in \".concat(new Date() - reflex.timestamp, \"ms\") : \"CLONED\";\n};\n\nvar progress = function progress(reflex) {\n return reflex.totalOperations > 1 ? \" \".concat(reflex.completedOperations, \"/\").concat(reflex.totalOperations) : \"\";\n};\n\nvar Log = {\n request: request,\n success: success,\n halted: halted$1,\n forbidden: forbidden$1,\n error: error$1\n};\n\nvar multipleInstances = function multipleInstances(element) {\n if ([\"checkbox\", \"radio\"].includes(element.type)) {\n return document.querySelectorAll(\"input[type=\\\"\".concat(element.type, \"\\\"][name=\\\"\").concat(element.name, \"\\\"]\")).length > 1;\n }\n\n return false;\n};\n\nvar collectCheckedOptions = function collectCheckedOptions(element) {\n return Array.from(element.querySelectorAll(\"option:checked\")).concat(Array.from(document.querySelectorAll(\"input[type=\\\"\".concat(element.type, \"\\\"][name=\\\"\").concat(element.name, \"\\\"]\"))).filter(function (elem) {\n return elem.checked;\n })).map(function (o) {\n return o.value;\n });\n};\n\nvar attributeValue = function attributeValue() {\n var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var value = Array.from(new Set(values.filter(function (v) {\n return v && String(v).length;\n }).map(function (v) {\n return v.trim();\n }))).join(\" \").trim();\n return value.length > 0 ? value : null;\n};\n\nvar attributeValues = function attributeValues(value) {\n if (!value) return [];\n if (!value.length) return [];\n return value.split(\" \").filter(function (v) {\n return v.trim().length;\n });\n};\n\nvar extractElementAttributes = function extractElementAttributes(element) {\n var attrs = Array.from(element.attributes).reduce(function (memo, attr) {\n memo[attr.name] = attr.value;\n return memo;\n }, {});\n attrs.checked = !!element.checked;\n attrs.selected = !!element.selected;\n attrs.tag_name = element.tagName;\n\n if (element.tagName.match(/select/i) || multipleInstances(element)) {\n var collectedOptions = collectCheckedOptions(element);\n attrs.values = collectedOptions;\n attrs.value = collectedOptions.join(\",\");\n } else {\n attrs.value = element.value;\n }\n\n return attrs;\n};\n\nvar getElementsFromTokens = function getElementsFromTokens(element, tokens) {\n if (!tokens || tokens.length === 0) return [];\n var elements = [element];\n var xPath = elementToXPath(element);\n tokens.forEach(function (token) {\n try {\n switch (token) {\n case \"combined\":\n if (Deprecate.enabled) console.warn(\"In the next version of StimulusReflex, the 'combined' option to data-reflex-dataset will become 'ancestors'.\");\n elements = [].concat(_toConsumableArray(elements), _toConsumableArray(XPathToArray(\"\".concat(xPath, \"/ancestor::*\"), true)));\n break;\n\n case \"ancestors\":\n elements = [].concat(_toConsumableArray(elements), _toConsumableArray(XPathToArray(\"\".concat(xPath, \"/ancestor::*\"), true)));\n break;\n\n case \"parent\":\n elements = [].concat(_toConsumableArray(elements), _toConsumableArray(XPathToArray(\"\".concat(xPath, \"/parent::*\"))));\n break;\n\n case \"siblings\":\n elements = [].concat(_toConsumableArray(elements), _toConsumableArray(XPathToArray(\"\".concat(xPath, \"/preceding-sibling::*|\").concat(xPath, \"/following-sibling::*\"))));\n break;\n\n case \"children\":\n elements = [].concat(_toConsumableArray(elements), _toConsumableArray(XPathToArray(\"\".concat(xPath, \"/child::*\"))));\n break;\n\n case \"descendants\":\n elements = [].concat(_toConsumableArray(elements), _toConsumableArray(XPathToArray(\"\".concat(xPath, \"/descendant::*\"))));\n break;\n\n default:\n elements = [].concat(_toConsumableArray(elements), _toConsumableArray(document.querySelectorAll(token)));\n }\n } catch (error) {\n if (Debug$1.enabled) console.error(error);\n }\n });\n return elements;\n};\n\nvar extractElementDataset = function extractElementDataset(element) {\n var dataset = element.attributes[Schema.reflexDataset];\n var allDataset = element.attributes[Schema.reflexDatasetAll];\n var tokens = dataset && dataset.value.split(\" \") || [];\n var allTokens = allDataset && allDataset.value.split(\" \") || [];\n var datasetElements = getElementsFromTokens(element, tokens);\n var datasetAllElements = getElementsFromTokens(element, allTokens);\n var datasetAttributes = datasetElements.reduce(function (acc, ele) {\n return _objectSpread(_objectSpread({}, extractDataAttributes(ele)), acc);\n }, {});\n var reflexElementAttributes = extractDataAttributes(element);\n var elementDataset = {\n dataset: _objectSpread(_objectSpread({}, reflexElementAttributes), datasetAttributes),\n datasetAll: {}\n };\n datasetAllElements.forEach(function (element) {\n var elementAttributes = extractDataAttributes(element);\n Object.keys(elementAttributes).forEach(function (key) {\n var value = elementAttributes[key];\n\n if (elementDataset.datasetAll[key] && Array.isArray(elementDataset.datasetAll[key])) {\n elementDataset.datasetAll[key].push(value);\n } else {\n elementDataset.datasetAll[key] = [value];\n }\n });\n });\n return elementDataset;\n};\n\nvar extractDataAttributes = function extractDataAttributes(element) {\n var attrs = {};\n\n if (element && element.attributes) {\n Array.from(element.attributes).forEach(function (attr) {\n if (attr.name.startsWith(\"data-\")) {\n attrs[attr.name] = attr.value;\n }\n });\n }\n\n return attrs;\n};\n\nvar name = \"stimulus_reflex\";\nvar version = \"3.5.0-rc3\";\nvar description = \"Build reactive applications with the Rails tooling you already know and love.\";\nvar keywords = [\"ruby\", \"rails\", \"websockets\", \"actioncable\", \"turbolinks\", \"reactive\", \"cable\", \"ujs\", \"ssr\", \"stimulus\", \"reflex\", \"stimulus_reflex\", \"dom\", \"morphdom\"];\nvar homepage = \"https://docs.stimulusreflex.com\";\nvar bugs = \"https://github.com/stimulusreflex/stimulus_reflex/issues\";\nvar repository = \"https://github.com/stimulusreflex/stimulus_reflex\";\nvar license = \"MIT\";\nvar author = \"Nathan Hopkins \";\nvar contributors = [\"Andrew Mason \", \"Julian Rubisch \", \"Marco Roth \", \"Nathan Hopkins \"];\nvar main = \"./dist/stimulus_reflex.js\";\nvar module = \"./dist/stimulus_reflex.js\";\nvar browser = \"./dist/stimulus_reflex.js\";\nvar unpkg = \"./dist/stimulus_reflex.umd.js\";\nvar umd = \"./dist/stimulus_reflex.umd.js\";\nvar files = [\"dist/*\", \"javascript/*\"];\nvar scripts = {\n lint: \"yarn run format --check\",\n format: \"yarn run prettier-standard ./javascript/**/*.js rollup.config.mjs\",\n build: \"yarn rollup -c\",\n \"build:watch\": \"yarn rollup -wc\",\n watch: \"yarn build:watch\",\n test: \"web-test-runner javascript/test/**/*.test.js\",\n \"test:watch\": \"yarn test --watch\",\n \"docs:dev\": \"vitepress dev docs\",\n \"docs:build\": \"vitepress build docs && cp docs/_redirects docs/.vitepress/dist\",\n \"docs:preview\": \"vitepress preview docs\"\n};\nvar peerDependencies = {\n \"@hotwired/stimulus\": \">= 3.0\"\n};\nvar dependencies = {\n \"@hotwired/stimulus\": \"^3\",\n \"@rails/actioncable\": \"^6 || ^7\",\n cable_ready: \"^5.0.0\"\n};\nvar devDependencies = {\n \"@open-wc/testing\": \"^3.1.7\",\n \"@rollup/plugin-json\": \"^6.0.0\",\n \"@rollup/plugin-node-resolve\": \"^15.0.1\",\n \"@rollup/plugin-terser\": \"^0.4.0\",\n \"@web/dev-server-esbuild\": \"^0.3.3\",\n \"@web/dev-server-rollup\": \"^0.3.21\",\n \"@web/test-runner\": \"^0.15.1\",\n \"prettier-standard\": \"^16.4.1\",\n rollup: \"^3.19.1\",\n \"toastify-js\": \"^1.12.0\",\n vitepress: \"^1.0.0-beta.1\"\n};\nvar packageInfo = {\n name: name,\n version: version,\n description: description,\n keywords: keywords,\n homepage: homepage,\n bugs: bugs,\n repository: repository,\n license: license,\n author: author,\n contributors: contributors,\n main: main,\n module: module,\n browser: browser,\n import: \"./dist/stimulus_reflex.js\",\n unpkg: unpkg,\n umd: umd,\n files: files,\n scripts: scripts,\n peerDependencies: peerDependencies,\n dependencies: dependencies,\n devDependencies: devDependencies\n};\n\nvar ReflexData = /*#__PURE__*/function () {\n function ReflexData(options, reflexElement, controllerElement, reflexController, permanentAttributeName, target, args, url, tabId) {\n _classCallCheck(this, ReflexData);\n\n this.options = options;\n this.reflexElement = reflexElement;\n this.controllerElement = controllerElement;\n this.reflexController = reflexController;\n this.permanentAttributeName = permanentAttributeName;\n this.target = target;\n this.args = args;\n this.url = url;\n this.tabId = tabId;\n }\n\n _createClass(ReflexData, [{\n key: \"attrs\",\n get: function get() {\n this._attrs = this._attrs || this.options[\"attrs\"] || extractElementAttributes(this.reflexElement);\n return this._attrs;\n }\n }, {\n key: \"id\",\n get: function get() {\n this._id = this._id || this.options[\"id\"] || uuidv4();\n return this._id;\n }\n }, {\n key: \"selectors\",\n get: function get() {\n this._selectors = this._selectors || this.options[\"selectors\"] || getReflexRoots(this.reflexElement);\n return typeof this._selectors === \"string\" ? [this._selectors] : this._selectors;\n }\n }, {\n key: \"resolveLate\",\n get: function get() {\n return this.options[\"resolveLate\"] || false;\n }\n }, {\n key: \"dataset\",\n get: function get() {\n this._dataset = this._dataset || extractElementDataset(this.reflexElement);\n return this._dataset;\n }\n }, {\n key: \"innerHTML\",\n get: function get() {\n return this.includeInnerHtml ? this.reflexElement.innerHTML : \"\";\n }\n }, {\n key: \"textContent\",\n get: function get() {\n return this.includeTextContent ? this.reflexElement.textContent : \"\";\n }\n }, {\n key: \"xpathController\",\n get: function get() {\n return elementToXPath(this.controllerElement);\n }\n }, {\n key: \"xpathElement\",\n get: function get() {\n return elementToXPath(this.reflexElement);\n }\n }, {\n key: \"formSelector\",\n get: function get() {\n var attr = this.reflexElement.attributes[Schema.reflexFormSelector] ? this.reflexElement.attributes[Schema.reflexFormSelector].value : undefined;\n return this.options[\"formSelector\"] || attr;\n }\n }, {\n key: \"includeInnerHtml\",\n get: function get() {\n var attr = this.reflexElement.attributes[Schema.reflexIncludeInnerHtml] || false;\n return this.options[\"includeInnerHTML\"] || attr ? attr.value !== \"false\" : false;\n }\n }, {\n key: \"includeTextContent\",\n get: function get() {\n var attr = this.reflexElement.attributes[Schema.reflexIncludeTextContent] || false;\n return this.options[\"includeTextContent\"] || attr ? attr.value !== \"false\" : false;\n }\n }, {\n key: \"suppressLogging\",\n get: function get() {\n return this.options[\"suppressLogging\"] || this.reflexElement.attributes[Schema.reflexSuppressLogging] || false;\n }\n }, {\n key: \"valueOf\",\n value: function valueOf() {\n return {\n attrs: this.attrs,\n dataset: this.dataset,\n selectors: this.selectors,\n id: this.id,\n resolveLate: this.resolveLate,\n suppressLogging: this.suppressLogging,\n xpathController: this.xpathController,\n xpathElement: this.xpathElement,\n inner_html: this.innerHTML,\n text_content: this.textContent,\n formSelector: this.formSelector,\n reflexController: this.reflexController,\n permanentAttributeName: this.permanentAttributeName,\n target: this.target,\n args: this.args,\n url: this.url,\n tabId: this.tabId,\n version: packageInfo.version\n };\n }\n }]);\n\n return ReflexData;\n}();\n\nvar transport = {};\nvar Transport = {\n get plugin() {\n return transport;\n },\n\n set: function set(newTransport) {\n transport = newTransport;\n }\n};\n\nvar beforeDOMUpdate = function beforeDOMUpdate(event) {\n var _ref3 = event.detail || {},\n stimulusReflex = _ref3.stimulusReflex;\n\n if (!stimulusReflex) return;\n var reflex = reflexes[stimulusReflex.id];\n reflex.pendingOperations--;\n if (reflex.pendingOperations > 0) return;\n if (!stimulusReflex.resolveLate) setTimeout(function () {\n return reflex.promise.resolve({\n element: reflex.element,\n event: event,\n data: reflex.data,\n payload: reflex.payload,\n id: reflex.id,\n toString: function toString() {\n return \"\";\n }\n });\n });\n setTimeout(function () {\n return dispatchLifecycleEvent(reflex, \"success\");\n });\n};\n\nvar afterDOMUpdate = function afterDOMUpdate(event) {\n var _ref4 = event.detail || {},\n stimulusReflex = _ref4.stimulusReflex;\n\n if (!stimulusReflex) return;\n var reflex = reflexes[stimulusReflex.id];\n reflex.completedOperations++;\n reflex.selector = event.detail.selector;\n reflex.morph = event.detail.stimulusReflex.morph;\n reflex.operation = event.type.split(\":\")[1].split(\"-\").slice(1).join(\"_\");\n Log.success(reflex);\n if (reflex.completedOperations < reflex.totalOperations) return;\n if (stimulusReflex.resolveLate) setTimeout(function () {\n return reflex.promise.resolve({\n element: reflex.element,\n event: event,\n data: reflex.data,\n payload: reflex.payload,\n id: reflex.id,\n toString: function toString() {\n return \"\";\n }\n });\n });\n setTimeout(function () {\n return dispatchLifecycleEvent(reflex, \"finalize\");\n });\n if (reflex.piggybackOperations.length) CableReady.perform(reflex.piggybackOperations);\n};\n\nvar routeReflexEvent = function routeReflexEvent(event) {\n var _ref5 = event.detail || {},\n stimulusReflex = _ref5.stimulusReflex,\n name = _ref5.name;\n\n var eventType = name.split(\"-\")[2];\n var eventTypes = {\n nothing: nothing,\n halted: halted,\n forbidden: forbidden,\n error: error\n };\n if (!stimulusReflex || !Object.keys(eventTypes).includes(eventType)) return;\n var reflex = reflexes[stimulusReflex.id];\n reflex.completedOperations++;\n reflex.pendingOperations--;\n reflex.selector = event.detail.selector;\n reflex.morph = event.detail.stimulusReflex.morph;\n reflex.operation = event.type.split(\":\")[1].split(\"-\").slice(1).join(\"_\");\n if (eventType === \"error\") reflex.error = event.detail.error;\n eventTypes[eventType](reflex, event);\n setTimeout(function () {\n return dispatchLifecycleEvent(reflex, eventType);\n });\n if (reflex.piggybackOperations.length) CableReady.perform(reflex.piggybackOperations);\n};\n\nvar nothing = function nothing(reflex, event) {\n Log.success(reflex);\n setTimeout(function () {\n return reflex.promise.resolve({\n data: reflex.data,\n element: reflex.element,\n event: event,\n payload: reflex.payload,\n id: reflex.id,\n toString: function toString() {\n return \"\";\n }\n });\n });\n};\n\nvar halted = function halted(reflex, event) {\n Log.halted(reflex, event);\n setTimeout(function () {\n return reflex.promise.resolve({\n data: reflex.data,\n element: reflex.element,\n event: event,\n payload: reflex.payload,\n id: reflex.id,\n toString: function toString() {\n return \"\";\n }\n });\n });\n};\n\nvar forbidden = function forbidden(reflex, event) {\n Log.forbidden(reflex, event);\n setTimeout(function () {\n return reflex.promise.resolve({\n data: reflex.data,\n element: reflex.element,\n event: event,\n payload: reflex.payload,\n id: reflex.id,\n toString: function toString() {\n return \"\";\n }\n });\n });\n};\n\nvar error = function error(reflex, event) {\n Log.error(reflex, event);\n setTimeout(function () {\n return reflex.promise.reject({\n data: reflex.data,\n element: reflex.element,\n event: event,\n payload: reflex.payload,\n id: reflex.id,\n error: reflex.error,\n toString: function toString() {\n return reflex.error;\n }\n });\n });\n};\n\nvar localReflexControllers = function localReflexControllers(element) {\n var potentialIdentifiers = attributeValues(element.getAttribute(Schema.controller));\n var potentialControllers = potentialIdentifiers.map(function (identifier) {\n return App.app.getControllerForElementAndIdentifier(element, identifier);\n });\n return potentialControllers.filter(function (controller) {\n return controller && controller.StimulusReflex;\n });\n};\n\nvar allReflexControllers = function allReflexControllers(element) {\n var controllers = [];\n\n while (element) {\n controllers = controllers.concat(localReflexControllers(element));\n element = element.parentElement;\n }\n\n return controllers;\n};\n\nvar findControllerByReflexName = function findControllerByReflexName(reflexName, controllers) {\n var controller = controllers.find(function (controller) {\n if (!controller || !controller.identifier) return;\n var identifier = reflexNameToControllerIdentifier(extractReflexName(reflexName));\n return identifier === controller.identifier;\n });\n return controller || controllers[0];\n};\n\nvar scanForReflexes = debounce(function () {\n var reflexElements = document.querySelectorAll(\"[\".concat(Schema.reflex, \"]\"));\n reflexElements.forEach(function (element) {\n return scanForReflexesOnElement(element);\n });\n}, 20);\n\nvar scanForReflexesOnElement = function scanForReflexesOnElement(element) {\n var controller = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var controllerAttribute = element.getAttribute(Schema.controller);\n var controllers = attributeValues(controllerAttribute).filter(function (controller) {\n return controller !== \"stimulus-reflex\";\n });\n var reflexAttribute = element.getAttribute(Schema.reflex);\n var reflexAttributeNames = attributeValues(reflexAttribute);\n var actionAttribute = element.getAttribute(Schema.action);\n var actions = attributeValues(actionAttribute).filter(function (action) {\n return !action.includes(\"#__perform\");\n });\n reflexAttributeNames.forEach(function (reflexName) {\n var potentialControllers = [controller].concat(allReflexControllers(element));\n controller = findControllerByReflexName(reflexName, potentialControllers);\n var controllerName = controller ? controller.identifier : \"stimulus-reflex\";\n actions.push(\"\".concat(reflexName.split(\"->\")[0], \"->\").concat(controllerName, \"#__perform\"));\n var parentControllerElement = element.closest(\"[data-controller~=\".concat(controllerName, \"]\"));\n\n if (!parentControllerElement) {\n controllers.push(controllerName);\n }\n });\n var controllerValue = attributeValue(controllers);\n var actionValue = attributeValue(actions);\n var emitReadyEvent = false;\n\n if (controllerValue && element.getAttribute(Schema.controller) != controllerValue) {\n element.setAttribute(Schema.controller, controllerValue);\n emitReadyEvent = true;\n }\n\n if (actionValue && element.getAttribute(Schema.action) != actionValue) {\n element.setAttribute(Schema.action, actionValue);\n emitReadyEvent = true;\n }\n\n if (emitReadyEvent) {\n dispatch(element, \"stimulus-reflex:ready\", {\n reflex: reflexAttribute,\n controller: controllerValue,\n action: actionValue,\n element: element\n });\n }\n};\n\nvar StimulusReflexController = /*#__PURE__*/function (_Controller) {\n _inherits(StimulusReflexController, _Controller);\n\n var _super = _createSuper(StimulusReflexController);\n\n function StimulusReflexController() {\n var _this6;\n\n _classCallCheck(this, StimulusReflexController);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this6 = _super.call.apply(_super, [this].concat(args));\n register(_assertThisInitialized(_this6));\n return _this6;\n }\n\n return StimulusReflexController;\n}(Controller);\n\nvar tabId = uuidv4();\n\nvar initialize = function initialize(application) {\n var _ref6 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n controller = _ref6.controller,\n consumer = _ref6.consumer,\n debug = _ref6.debug,\n params = _ref6.params,\n isolate = _ref6.isolate,\n deprecate = _ref6.deprecate,\n transport = _ref6.transport;\n\n Transport.set(transport || ActionCableTransport);\n Transport.plugin.initialize(consumer, params);\n IsolationMode.set(!!isolate);\n App.set(application);\n Schema.set(application);\n App.app.register(\"stimulus-reflex\", controller || StimulusReflexController);\n Debug$1.set(!!debug);\n if (typeof deprecate !== \"undefined\") Deprecate.set(deprecate);\n var observer = new MutationObserver(scanForReflexes);\n observer.observe(document.documentElement, {\n attributeFilter: [Schema.reflex, Schema.action],\n childList: true,\n subtree: true\n });\n emitEvent(\"stimulus-reflex:initialized\");\n};\n\nvar register = function register(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var channel = \"StimulusReflex::Channel\";\n controller.StimulusReflex = _objectSpread(_objectSpread({}, options), {}, {\n channel: channel\n });\n Transport.plugin.subscribe(controller);\n Object.assign(controller, {\n stimulate: function stimulate() {\n var url = location.href;\n var controllerElement = this.element;\n var args = Array.from(arguments);\n var target = args.shift() || \"StimulusReflex::Reflex#default_reflex\";\n var reflexElement = getReflexElement(args, controllerElement);\n\n if (elementInvalid(reflexElement)) {\n if (Debug$1.enabled) console.warn(\"Reflex aborted: invalid numeric input\");\n return;\n }\n\n var options = getReflexOptions(args);\n var reflexData = new ReflexData(options, reflexElement, controllerElement, this.identifier, Schema.reflexPermanent, target, args, url, tabId);\n var id = reflexData.id;\n controllerElement.reflexController = controllerElement.reflexController || {};\n controllerElement.reflexData = controllerElement.reflexData || {};\n controllerElement.reflexError = controllerElement.reflexError || {};\n controllerElement.reflexController[id] = this;\n controllerElement.reflexData[id] = reflexData.valueOf();\n var reflex = new Reflex(reflexData, this);\n reflexes[id] = reflex;\n this.lastReflex = reflex;\n dispatchLifecycleEvent(reflex, \"before\");\n setTimeout(function () {\n var _ref7 = controllerElement.reflexData[id] || {},\n params = _ref7.params;\n\n var check = reflexElement.attributes[Schema.reflexSerializeForm];\n\n if (check) {\n options[\"serializeForm\"] = check.value !== \"false\";\n }\n\n var form = reflexElement.closest(reflexData.formSelector) || document.querySelector(reflexData.formSelector) || reflexElement.closest(\"form\");\n if (Deprecate.enabled && options[\"serializeForm\"] === undefined && form) console.warn(\"Deprecation warning: the next version of StimulusReflex will not serialize forms by default.\\nPlease set \".concat(Schema.reflexSerializeForm, \"=\\\"true\\\" on your Reflex Controller Element or pass { serializeForm: true } as an option to stimulate.\"));\n var formData = options[\"serializeForm\"] === false ? \"\" : serializeForm(form, {\n element: reflexElement\n });\n reflex.data = _objectSpread(_objectSpread({}, reflexData.valueOf()), {}, {\n params: params,\n formData: formData\n });\n controllerElement.reflexData[id] = reflex.data;\n Transport.plugin.deliver(reflex);\n });\n Log.request(reflex);\n return reflex.getPromise;\n },\n __perform: function __perform(event) {\n var element = event.target;\n var reflex;\n\n while (element && !reflex) {\n reflex = element.getAttribute(Schema.reflex);\n if (!reflex || !reflex.trim().length) element = element.parentElement;\n }\n\n var match = attributeValues(reflex).find(function (reflex) {\n return reflex.split(\"->\")[0] === event.type;\n });\n\n if (match) {\n event.preventDefault();\n event.stopPropagation();\n this.stimulate(match.split(\"->\")[1], element);\n }\n }\n });\n if (!controller.reflexes) Object.defineProperty(controller, \"reflexes\", {\n get: function get() {\n return new Proxy(reflexes, {\n get: function (target, prop) {\n var _this7 = this;\n\n if (prop === \"last\") return this.lastReflex;\n return Object.fromEntries(Object.entries(target[prop]).filter(function (_ref8) {\n var _ref9 = _slicedToArray(_ref8, 2),\n _ = _ref9[0],\n reflex = _ref9[1];\n\n return reflex.controller === _this7;\n }));\n }.bind(this)\n });\n }\n });\n scanForReflexesOnElement(controller.element, controller);\n emitEvent(\"stimulus-reflex:controller-registered\", {\n detail: {\n controller: controller\n }\n });\n};\n\nvar useReflex = function useReflex(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n register(controller, options);\n};\n\ndocument.addEventListener(\"cable-ready:after-dispatch-event\", routeReflexEvent);\ndocument.addEventListener(\"cable-ready:before-inner-html\", beforeDOMUpdate);\ndocument.addEventListener(\"cable-ready:before-morph\", beforeDOMUpdate);\ndocument.addEventListener(\"cable-ready:after-inner-html\", afterDOMUpdate);\ndocument.addEventListener(\"cable-ready:after-morph\", afterDOMUpdate);\ndocument.addEventListener(\"readystatechange\", function () {\n if (document.readyState === \"complete\") {\n scanForReflexes();\n }\n});\nvar StimulusReflex = Object.freeze({\n __proto__: null,\n initialize: initialize,\n reflexes: reflexes,\n register: register,\n scanForReflexes: scanForReflexes,\n scanForReflexesOnElement: scanForReflexesOnElement,\n useReflex: useReflex\n});\n\nvar global = _objectSpread(_objectSpread({\n version: packageInfo.version\n}, StimulusReflex), {}, {\n get debug() {\n return Debug$1.value;\n },\n\n set debug(value) {\n Debug$1.set(!!value);\n },\n\n get deprecate() {\n return Deprecate.value;\n },\n\n set deprecate(value) {\n Deprecate.set(!!value);\n }\n\n});\n\nwindow.StimulusReflex = global;\nexport { global as default, initialize, reflexes, register, scanForReflexes, scanForReflexesOnElement, useReflex };","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nexport var FetchResponse = /*#__PURE__*/function () {\n function FetchResponse(response) {\n _classCallCheck(this, FetchResponse);\n\n this.response = response;\n }\n\n _createClass(FetchResponse, [{\n key: \"statusCode\",\n get: function get() {\n return this.response.status;\n }\n }, {\n key: \"redirected\",\n get: function get() {\n return this.response.redirected;\n }\n }, {\n key: \"ok\",\n get: function get() {\n return this.response.ok;\n }\n }, {\n key: \"unauthenticated\",\n get: function get() {\n return this.statusCode === 401;\n }\n }, {\n key: \"authenticationURL\",\n get: function get() {\n return this.response.headers.get('WWW-Authenticate');\n }\n }, {\n key: \"contentType\",\n get: function get() {\n var contentType = this.response.headers.get('Content-Type') || '';\n return contentType.replace(/;.*$/, '');\n }\n }, {\n key: \"headers\",\n get: function get() {\n return this.response.headers;\n }\n }, {\n key: \"html\",\n get: function get() {\n if (this.contentType.match(/^(application|text)\\/(html|xhtml\\+xml)$/)) {\n return this.text;\n }\n\n return Promise.reject(new Error(\"Expected an HTML response but got \\\"\".concat(this.contentType, \"\\\" instead\")));\n }\n }, {\n key: \"json\",\n get: function get() {\n if (this.contentType.match(/^application\\/json/)) {\n return this.responseJson || (this.responseJson = this.response.json());\n }\n\n return Promise.reject(new Error(\"Expected a JSON response but got \\\"\".concat(this.contentType, \"\\\" instead\")));\n }\n }, {\n key: \"text\",\n get: function get() {\n return this.responseText || (this.responseText = this.response.text());\n }\n }, {\n key: \"isTurboStream\",\n get: function get() {\n return this.contentType.match(/^text\\/vnd\\.turbo-stream\\.html/);\n }\n }, {\n key: \"renderTurboStream\",\n value: function () {\n var _renderTurboStream = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this.isTurboStream) {\n _context.next = 12;\n break;\n }\n\n if (!window.Turbo) {\n _context.next = 9;\n break;\n }\n\n _context.t0 = window.Turbo;\n _context.next = 5;\n return this.text;\n\n case 5:\n _context.t1 = _context.sent;\n\n _context.t0.renderStreamMessage.call(_context.t0, _context.t1);\n\n _context.next = 10;\n break;\n\n case 9:\n console.warn('You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js');\n\n case 10:\n _context.next = 13;\n break;\n\n case 12:\n return _context.abrupt(\"return\", Promise.reject(new Error(\"Expected a Turbo Stream response but got \\\"\".concat(this.contentType, \"\\\" instead\"))));\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function renderTurboStream() {\n return _renderTurboStream.apply(this, arguments);\n }\n\n return renderTurboStream;\n }()\n }]);\n\n return FetchResponse;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nexport var RequestInterceptor = /*#__PURE__*/function () {\n function RequestInterceptor() {\n _classCallCheck(this, RequestInterceptor);\n }\n\n _createClass(RequestInterceptor, null, [{\n key: \"register\",\n value: function register(interceptor) {\n this.interceptor = interceptor;\n }\n }, {\n key: \"get\",\n value: function get() {\n return this.interceptor;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.interceptor = undefined;\n }\n }]);\n\n return RequestInterceptor;\n}();","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport function getCookie(name) {\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var prefix = \"\".concat(encodeURIComponent(name), \"=\");\n var cookie = cookies.find(function (cookie) {\n return cookie.startsWith(prefix);\n });\n\n if (cookie) {\n var value = cookie.split('=').slice(1).join('=');\n\n if (value) {\n return decodeURIComponent(value);\n }\n }\n}\nexport function compact(object) {\n var result = {};\n\n for (var key in object) {\n var value = object[key];\n\n if (value !== undefined) {\n result[key] = value;\n }\n }\n\n return result;\n}\nexport function metaContent(name) {\n var element = document.head.querySelector(\"meta[name=\\\"\".concat(name, \"\\\"]\"));\n return element && element.content;\n}\nexport function stringEntriesFromFormData(formData) {\n return _toConsumableArray(formData).reduce(function (entries, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n value = _ref2[1];\n\n return entries.concat(typeof value === 'string' ? [[name, value]] : []);\n }, []);\n}\nexport function mergeEntries(searchParams, entries) {\n var _iterator = _createForOfIteratorHelper(entries),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ref5 = _step.value;\n\n var _ref4 = _slicedToArray(_ref5, 2);\n\n var name = _ref4[0];\n var value = _ref4[1];\n if (value instanceof window.File) continue;\n\n if (searchParams.has(name)) {\n searchParams.delete(name);\n searchParams.set(name, value);\n } else {\n searchParams.append(name, value);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { FetchResponse } from './fetch_response';\nimport { RequestInterceptor } from './request_interceptor';\nimport { getCookie, compact, metaContent, stringEntriesFromFormData, mergeEntries } from './lib/utils';\nexport var FetchRequest = /*#__PURE__*/function () {\n function FetchRequest(method, url) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, FetchRequest);\n\n this.method = method;\n this.options = options;\n this.originalUrl = url;\n }\n\n _createClass(FetchRequest, [{\n key: \"perform\",\n value: function () {\n var _perform = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var requestInterceptor, response;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n requestInterceptor = RequestInterceptor.get();\n\n if (!requestInterceptor) {\n _context.next = 5;\n break;\n }\n\n _context.next = 5;\n return requestInterceptor(this);\n\n case 5:\n _context.next = 10;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n console.error(_context.t0);\n\n case 10:\n _context.t1 = FetchResponse;\n _context.next = 13;\n return window.fetch(this.url, this.fetchOptions);\n\n case 13:\n _context.t2 = _context.sent;\n response = new _context.t1(_context.t2);\n\n if (!(response.unauthenticated && response.authenticationURL)) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", Promise.reject(window.location.href = response.authenticationURL));\n\n case 17:\n if (response.ok && response.isTurboStream) {\n response.renderTurboStream();\n }\n\n return _context.abrupt(\"return\", response);\n\n case 19:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[0, 7]]);\n }));\n\n function perform() {\n return _perform.apply(this, arguments);\n }\n\n return perform;\n }()\n }, {\n key: \"addHeader\",\n value: function addHeader(key, value) {\n var headers = this.additionalHeaders;\n headers[key] = value;\n this.options.headers = headers;\n }\n }, {\n key: \"fetchOptions\",\n get: function get() {\n return {\n method: this.method.toUpperCase(),\n headers: this.headers,\n body: this.formattedBody,\n signal: this.signal,\n credentials: 'same-origin',\n redirect: this.redirect\n };\n }\n }, {\n key: \"headers\",\n get: function get() {\n return compact(Object.assign({\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-Token': this.csrfToken,\n 'Content-Type': this.contentType,\n Accept: this.accept\n }, this.additionalHeaders));\n }\n }, {\n key: \"csrfToken\",\n get: function get() {\n return getCookie(metaContent('csrf-param')) || metaContent('csrf-token');\n }\n }, {\n key: \"contentType\",\n get: function get() {\n if (this.options.contentType) {\n return this.options.contentType;\n } else if (this.body == null || this.body instanceof window.FormData) {\n return undefined;\n } else if (this.body instanceof window.File) {\n return this.body.type;\n }\n\n return 'application/json';\n }\n }, {\n key: \"accept\",\n get: function get() {\n switch (this.responseKind) {\n case 'html':\n return 'text/html, application/xhtml+xml';\n\n case 'turbo-stream':\n return 'text/vnd.turbo-stream.html, text/html, application/xhtml+xml';\n\n case 'json':\n return 'application/json';\n\n default:\n return '*/*';\n }\n }\n }, {\n key: \"body\",\n get: function get() {\n return this.options.body;\n }\n }, {\n key: \"query\",\n get: function get() {\n var originalQuery = (this.originalUrl.split('?')[1] || '').split('#')[0];\n var params = new URLSearchParams(originalQuery);\n var requestQuery = this.options.query;\n\n if (requestQuery instanceof window.FormData) {\n requestQuery = stringEntriesFromFormData(requestQuery);\n } else if (requestQuery instanceof window.URLSearchParams) {\n requestQuery = requestQuery.entries();\n } else {\n requestQuery = Object.entries(requestQuery || {});\n }\n\n mergeEntries(params, requestQuery);\n var query = params.toString();\n return query.length > 0 ? \"?\".concat(query) : '';\n }\n }, {\n key: \"url\",\n get: function get() {\n return this.originalUrl.split('?')[0] + this.query;\n }\n }, {\n key: \"responseKind\",\n get: function get() {\n return this.options.responseKind || 'html';\n }\n }, {\n key: \"signal\",\n get: function get() {\n return this.options.signal;\n }\n }, {\n key: \"redirect\",\n get: function get() {\n return this.options.redirect || 'follow';\n }\n }, {\n key: \"additionalHeaders\",\n get: function get() {\n return this.options.headers || {};\n }\n }, {\n key: \"formattedBody\",\n get: function get() {\n var bodyIsAString = Object.prototype.toString.call(this.body) === '[object String]';\n var contentTypeIsJson = this.headers['Content-Type'] === 'application/json';\n\n if (contentTypeIsJson && !bodyIsAString) {\n return JSON.stringify(this.body);\n }\n\n return this.body;\n }\n }]);\n\n return FetchRequest;\n}();","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nimport { FetchRequest } from './fetch_request';\n\nfunction get(_x, _x2) {\n return _get.apply(this, arguments);\n}\n\nfunction _get() {\n _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n request = new FetchRequest('get', url, options);\n return _context.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _get.apply(this, arguments);\n}\n\nfunction post(_x3, _x4) {\n return _post.apply(this, arguments);\n}\n\nfunction _post() {\n _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n request = new FetchRequest('post', url, options);\n return _context2.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _post.apply(this, arguments);\n}\n\nfunction put(_x5, _x6) {\n return _put.apply(this, arguments);\n}\n\nfunction _put() {\n _put = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n request = new FetchRequest('put', url, options);\n return _context3.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _put.apply(this, arguments);\n}\n\nfunction patch(_x7, _x8) {\n return _patch.apply(this, arguments);\n}\n\nfunction _patch() {\n _patch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n request = new FetchRequest('patch', url, options);\n return _context4.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _patch.apply(this, arguments);\n}\n\nfunction destroy(_x9, _x10) {\n return _destroy.apply(this, arguments);\n}\n\nfunction _destroy() {\n _destroy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n request = new FetchRequest('delete', url, options);\n return _context5.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n return _destroy.apply(this, arguments);\n}\n\nexport { get, post, put, patch, destroy };","export var method = function method(controller, methodName) {\n var method = controller[methodName];\n\n if (typeof method == 'function') {\n return method;\n }\n\n throw new Error(\"undefined method \\\"\".concat(methodName, \"\\\"\"));\n};\nexport var composeEventName = function composeEventName(name, controller, eventPrefix) {\n var composedName = name;\n\n if (eventPrefix === true) {\n composedName = \"\".concat(controller.identifier, \":\").concat(name);\n } else if (typeof eventPrefix === 'string') {\n composedName = \"\".concat(eventPrefix, \":\").concat(name);\n }\n\n return composedName;\n};\nexport var extendedEvent = function extendedEvent(type, event, detail) {\n var _ref = event || {\n bubbles: true,\n cancelable: true,\n composed: true\n },\n bubbles = _ref.bubbles,\n cancelable = _ref.cancelable,\n composed = _ref.composed;\n\n if (event) {\n Object.assign(detail, {\n originalEvent: event\n });\n }\n\n var customEvent = new CustomEvent(type, {\n bubbles: bubbles,\n cancelable: cancelable,\n composed: composed,\n detail: detail\n });\n return customEvent;\n};\nexport var isElementInViewport = function isElementInViewport(el) {\n var rect = el.getBoundingClientRect();\n return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { method, extendedEvent, composeEventName } from '../support/index';\nvar defaultOptions = {\n dispatchEvent: true,\n eventPrefix: true\n};\nexport var useIntersection = function useIntersection(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _Object$assign = Object.assign({}, defaultOptions, options),\n dispatchEvent = _Object$assign.dispatchEvent,\n eventPrefix = _Object$assign.eventPrefix;\n\n var targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n\n var callback = function callback(entries) {\n var _entries = _slicedToArray(entries, 1),\n entry = _entries[0];\n\n if (entry.isIntersecting) {\n dispatchAppear(entry);\n } else if (controller.isVisible) {\n dispatchDisappear(entry);\n }\n };\n\n var dispatchAppear = function dispatchAppear(entry) {\n controller.isVisible = true;\n controller.appear && method(controller, 'appear').call(controller, entry); // emit a custom \"appear\" event\n\n if (dispatchEvent) {\n var eventName = composeEventName('appear', controller, eventPrefix);\n var appearEvent = extendedEvent(eventName, null, {\n controller: controller,\n entry: entry\n });\n targetElement.dispatchEvent(appearEvent);\n }\n };\n\n var dispatchDisappear = function dispatchDisappear(entry) {\n controller.isVisible = false;\n controller.disappear && method(controller, 'disappear').call(controller, entry); // emit a custom \"disappear\" event\n\n if (dispatchEvent) {\n var eventName = composeEventName('disappear', controller, eventPrefix);\n var disappearEvent = extendedEvent(eventName, null, {\n controller: controller,\n entry: entry\n });\n targetElement.dispatchEvent(disappearEvent);\n }\n }; // keep a copy of the current disconnect() function of the controller\n // to support composing several behaviors\n\n\n var controllerDisconnect = controller.disconnect.bind(controller);\n var observer = new IntersectionObserver(callback, options);\n\n var observe = function observe() {\n observer.observe(targetElement);\n };\n\n var unobserve = function unobserve() {\n observer.unobserve(targetElement);\n };\n\n Object.assign(controller, {\n isVisible: false,\n disconnect: function disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [observe, unobserve];\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport { useIntersection } from './use-intersection';\nexport var IntersectionController = /*#__PURE__*/function (_Controller) {\n _inherits(IntersectionController, _Controller);\n\n var _super = _createSuper(IntersectionController);\n\n function IntersectionController(context) {\n var _this;\n\n _classCallCheck(this, IntersectionController);\n\n _this = _super.call(this, context);\n _this.isVisible = false;\n requestAnimationFrame(function () {\n var _useIntersection = useIntersection(_assertThisInitialized(_this), _this.options),\n _useIntersection2 = _slicedToArray(_useIntersection, 2),\n observe = _useIntersection2[0],\n unobserve = _useIntersection2[1];\n\n Object.assign(_assertThisInitialized(_this), {\n observe: observe,\n unobserve: unobserve\n });\n });\n return _this;\n }\n\n return IntersectionController;\n}(Controller);","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { method } from '../support/index';\nexport var useLazyLoad = function useLazyLoad(controller, options) {\n var callback = function callback(entries) {\n var _entries = _slicedToArray(entries, 1),\n entry = _entries[0];\n\n if (entry.isIntersecting && !controller.isLoaded) {\n handleAppear(entry);\n }\n };\n\n var handleAppear = function handleAppear(entry) {\n var src = controller.data.get('src');\n if (!src) return;\n var imageElement = controller.element;\n controller.isLoading = true;\n controller.loading && method(controller, 'loading').call(controller, src);\n\n imageElement.onload = function () {\n handleLoaded(src);\n };\n\n imageElement.src = src;\n };\n\n var handleLoaded = function handleLoaded(src) {\n controller.isLoading = false;\n controller.isLoaded = true;\n controller.loading && method(controller, 'loaded').call(controller, src);\n }; // keep a copy of the current disconnect() function of the controller to not override it\n\n\n var controllerDisconnect = controller.disconnect.bind(controller);\n var observer = new IntersectionObserver(callback, options);\n\n var observe = function observe() {\n observer.observe(controller.element);\n };\n\n var unobserve = function unobserve() {\n observer.unobserve(controller.element);\n };\n\n Object.assign(controller, {\n isVisible: false,\n disconnect: function disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [observe, unobserve];\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport { useLazyLoad } from './useLazyLoad';\nexport var LazyLoadController = /*#__PURE__*/function (_Controller) {\n _inherits(LazyLoadController, _Controller);\n\n var _super = _createSuper(LazyLoadController);\n\n function LazyLoadController(context) {\n var _this;\n\n _classCallCheck(this, LazyLoadController);\n\n _this = _super.call(this, context);\n _this.isLoading = false;\n _this.isLoaded = false;\n _this.options = {\n rootMargin: '10%'\n };\n requestAnimationFrame(function () {\n var _useLazyLoad = useLazyLoad(_assertThisInitialized(_this), _this.options),\n _useLazyLoad2 = _slicedToArray(_useLazyLoad, 2),\n observe = _useLazyLoad2[0],\n unobserve = _useLazyLoad2[1];\n\n Object.assign(_assertThisInitialized(_this), {\n observe: observe,\n unobserve: unobserve\n });\n });\n return _this;\n }\n\n _createClass(LazyLoadController, [{\n key: \"loading\",\n value: function loading(src) {}\n }, {\n key: \"loaded\",\n value: function loaded(src) {}\n }]);\n\n return LazyLoadController;\n}(Controller);","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { method, extendedEvent, composeEventName } from '../support/index';\nvar defaultOptions = {\n dispatchEvent: true,\n eventPrefix: true\n};\nexport var useResize = function useResize(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _Object$assign = Object.assign({}, defaultOptions, options),\n dispatchEvent = _Object$assign.dispatchEvent,\n eventPrefix = _Object$assign.eventPrefix;\n\n var targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n\n var callback = function callback(entries) {\n var _entries = _slicedToArray(entries, 1),\n entry = _entries[0];\n\n controller.resize && method(controller, 'resize').call(controller, entry.contentRect); // emit a custom \"controllerIdentifier:resize\" event\n\n if (dispatchEvent) {\n var eventName = composeEventName('resize', controller, eventPrefix);\n var appearEvent = extendedEvent(eventName, null, {\n controller: controller,\n entry: entry\n });\n targetElement.dispatchEvent(appearEvent);\n }\n };\n\n var controllerDisconnect = controller.disconnect.bind(controller);\n var observer = new ResizeObserver(callback);\n\n var observe = function observe() {\n observer.observe(targetElement);\n };\n\n var unobserve = function unobserve() {\n observer.unobserve(targetElement);\n };\n\n Object.assign(controller, {\n disconnect: function disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [observe, unobserve];\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport { useResize } from './use-resize';\nexport var ResizeController = /*#__PURE__*/function (_Controller) {\n _inherits(ResizeController, _Controller);\n\n var _super = _createSuper(ResizeController);\n\n function ResizeController(context) {\n var _this;\n\n _classCallCheck(this, ResizeController);\n\n _this = _super.call(this, context);\n requestAnimationFrame(function () {\n var _useResize = useResize(_assertThisInitialized(_this), _this.options),\n _useResize2 = _slicedToArray(_useResize, 2),\n observe = _useResize2[0],\n unobserve = _useResize2[1];\n\n Object.assign(_assertThisInitialized(_this), {\n observe: observe,\n unobserve: unobserve\n });\n });\n return _this;\n }\n\n _createClass(ResizeController, [{\n key: \"resize\",\n value: function resize(contentRect) {}\n }]);\n\n return ResizeController;\n}(Controller);","import { method, extendedEvent, isElementInViewport, composeEventName } from '../support/index';\nvar defaultOptions = {\n events: ['click', 'touchend'],\n onlyVisible: true,\n dispatchEvent: true,\n eventPrefix: true\n};\nexport var useClickOutside = function useClickOutside(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _Object$assign = Object.assign({}, defaultOptions, options),\n onlyVisible = _Object$assign.onlyVisible,\n dispatchEvent = _Object$assign.dispatchEvent,\n events = _Object$assign.events,\n eventPrefix = _Object$assign.eventPrefix;\n\n var onEvent = function onEvent(event) {\n var targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n\n if (targetElement.contains(event.target) || !isElementInViewport(targetElement) && onlyVisible) {\n return;\n } // call the clickOutside method of the Stimulus controller\n\n\n controller.clickOutside && method(controller, 'clickOutside').call(controller, event); // emit a custom event\n\n if (dispatchEvent) {\n var eventName = composeEventName('click:outside', controller, eventPrefix);\n var clickOutsideEvent = extendedEvent(eventName, event, {\n controller: controller\n });\n targetElement.dispatchEvent(clickOutsideEvent);\n }\n };\n\n var observe = function observe() {\n events === null || events === void 0 ? void 0 : events.forEach(function (event) {\n window.addEventListener(event, onEvent, false);\n });\n };\n\n var unobserve = function unobserve() {\n events === null || events === void 0 ? void 0 : events.forEach(function (event) {\n window.removeEventListener(event, onEvent, false);\n });\n }; // keep a copy of the current disconnect() function of the controller\n // to support composing several behaviors\n\n\n var controllerDisconnect = controller.disconnect.bind(controller);\n Object.assign(controller, {\n disconnect: function disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [observe, unobserve];\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport { useClickOutside } from './use-click-outside';\nexport var ClickOutsideController = /*#__PURE__*/function (_Controller) {\n _inherits(ClickOutsideController, _Controller);\n\n var _super = _createSuper(ClickOutsideController);\n\n function ClickOutsideController(context) {\n var _this;\n\n _classCallCheck(this, ClickOutsideController);\n\n _this = _super.call(this, context);\n requestAnimationFrame(function () {\n var _useClickOutside = useClickOutside(_assertThisInitialized(_this), _this.options),\n _useClickOutside2 = _slicedToArray(_useClickOutside, 2),\n observe = _useClickOutside2[0],\n unobserve = _useClickOutside2[1];\n\n Object.assign(_assertThisInitialized(_this), {\n observe: observe,\n unobserve: unobserve\n });\n });\n return _this;\n }\n\n _createClass(ClickOutsideController, [{\n key: \"clickOutside\",\n value: function clickOutside(event) {}\n }]);\n\n return ClickOutsideController;\n}(Controller);","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultOptions = {\n debug: false,\n logger: console\n};\nexport var StimulusUse = function StimulusUse(controller) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, StimulusUse);\n\n this.log = function (functionName, args) {\n if (!_this.debug) return;\n\n _this.logger.groupCollapsed(\"%c\".concat(_this.controller.identifier, \"#%c\").concat(functionName), 'color: #3B82F6', 'color: unset');\n\n _this.logger.log(Object.assign({\n controllerId: _this.controllerId\n }, args));\n\n _this.logger.groupEnd();\n };\n\n this.debug = (options === null || options === void 0 ? void 0 : options.debug) || controller.application.stimulusUseDebug || defaultOptions.debug;\n this.logger = (options === null || options === void 0 ? void 0 : options.logger) || defaultOptions.logger;\n this.controller = controller;\n this.controllerId = controller.element.id || controller.element.dataset.id; // make copies of lifecycle functions\n\n this.controllerInitialize = controller.initialize.bind(controller);\n this.controllerConnect = controller.connect.bind(controller);\n this.controllerDisconnect = controller.disconnect.bind(controller);\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { composeEventName } from '../support/index';\nimport { StimulusUse } from '../stimulus_use';\nvar defaultOptions = {\n eventPrefix: true,\n bubbles: true,\n cancelable: true\n};\nexport var UseDispatch = /*#__PURE__*/function (_StimulusUse) {\n _inherits(UseDispatch, _StimulusUse);\n\n var _super = _createSuper(UseDispatch);\n\n function UseDispatch(controller) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, UseDispatch);\n\n var _a, _b, _c, _d;\n\n _this = _super.call(this, controller, options);\n\n _this.dispatch = function (eventName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n controller = _assertThisInitialize.controller,\n targetElement = _assertThisInitialize.targetElement,\n eventPrefix = _assertThisInitialize.eventPrefix,\n bubbles = _assertThisInitialize.bubbles,\n cancelable = _assertThisInitialize.cancelable,\n log = _assertThisInitialize.log; // includes the emitting controller in the event detail\n\n\n Object.assign(detail, {\n controller: controller\n });\n var eventNameWithPrefix = composeEventName(eventName, _this.controller, eventPrefix); // creates the custom event\n\n var event = new CustomEvent(eventNameWithPrefix, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n }); // dispatch the event from the given element or by default from the root element of the controller\n\n targetElement.dispatchEvent(event);\n log(\"dispatch\", {\n eventName: eventNameWithPrefix,\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n return event;\n };\n\n _this.targetElement = (_a = options.element) !== null && _a !== void 0 ? _a : controller.element;\n _this.eventPrefix = (_b = options.eventPrefix) !== null && _b !== void 0 ? _b : defaultOptions.eventPrefix;\n _this.bubbles = (_c = options.bubbles) !== null && _c !== void 0 ? _c : defaultOptions.bubbles;\n _this.cancelable = (_d = options.cancelable) !== null && _d !== void 0 ? _d : defaultOptions.cancelable;\n\n _this.enhanceController();\n\n return _this;\n }\n\n _createClass(UseDispatch, [{\n key: \"enhanceController\",\n value: function enhanceController() {\n Object.assign(this.controller, {\n dispatch: this.dispatch\n });\n }\n }]);\n\n return UseDispatch;\n}(StimulusUse);\nexport var useDispatch = function useDispatch(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new UseDispatch(controller, options);\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport { useApplication } from './use-application';\nexport var ApplicationController = /*#__PURE__*/function (_Controller) {\n _inherits(ApplicationController, _Controller);\n\n var _super = _createSuper(ApplicationController);\n\n function ApplicationController(context) {\n var _this;\n\n _classCallCheck(this, ApplicationController);\n\n _this = _super.call(this, context);\n _this.isPreview = false;\n _this.csrfToken = '';\n useApplication(_assertThisInitialized(_this), _this.options);\n return _this;\n }\n\n return ApplicationController;\n}(Controller);","import { extendedEvent, method, composeEventName } from '../support/index';\nvar defaultEvents = ['mousemove', 'mousedown', 'resize', 'keydown', 'touchstart', 'wheel'];\nvar oneMinute = 60e3;\nvar defaultOptions = {\n ms: oneMinute,\n initialState: false,\n events: defaultEvents,\n dispatchEvent: true,\n eventPrefix: true\n};\nexport var useIdle = function useIdle(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _Object$assign = Object.assign({}, defaultOptions, options),\n ms = _Object$assign.ms,\n initialState = _Object$assign.initialState,\n events = _Object$assign.events,\n dispatchEvent = _Object$assign.dispatchEvent,\n eventPrefix = _Object$assign.eventPrefix;\n\n var isIdle = initialState;\n var timeout = setTimeout(function () {\n isIdle = true;\n dispatchAway();\n }, ms);\n\n var dispatchAway = function dispatchAway(event) {\n var eventName = composeEventName('away', controller, eventPrefix);\n controller.isIdle = true;\n controller.away && method(controller, 'away').call(controller, event);\n\n if (dispatchEvent) {\n var clickOutsideEvent = extendedEvent(eventName, event || null, {\n controller: controller\n });\n controller.element.dispatchEvent(clickOutsideEvent);\n }\n };\n\n var dispatchBack = function dispatchBack(event) {\n var eventName = composeEventName('back', controller, eventPrefix);\n controller.isIdle = false;\n controller.back && method(controller, 'back').call(controller, event);\n\n if (dispatchEvent) {\n var clickOutsideEvent = extendedEvent(eventName, event || null, {\n controller: controller\n });\n controller.element.dispatchEvent(clickOutsideEvent);\n }\n };\n\n var onEvent = function onEvent(event) {\n if (isIdle) dispatchBack(event);\n isIdle = false;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n isIdle = true;\n dispatchAway(event);\n }, ms);\n };\n\n var onVisibility = function onVisibility(event) {\n if (!document.hidden) onEvent(event);\n };\n\n if (isIdle) {\n dispatchAway();\n } else {\n dispatchBack();\n }\n\n var controllerDisconnect = controller.disconnect.bind(controller);\n\n var observe = function observe() {\n events.forEach(function (event) {\n window.addEventListener(event, onEvent);\n });\n document.addEventListener('visibilitychange', onVisibility);\n };\n\n var unobserve = function unobserve() {\n events.forEach(function (event) {\n window.removeEventListener(event, onEvent);\n });\n document.removeEventListener('visibilitychange', onVisibility);\n };\n\n Object.assign(controller, {\n disconnect: function disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [observe, unobserve];\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport { useIdle } from './use-idle';\nexport var IdleController = /*#__PURE__*/function (_Controller) {\n _inherits(IdleController, _Controller);\n\n var _super = _createSuper(IdleController);\n\n function IdleController(context) {\n var _this;\n\n _classCallCheck(this, IdleController);\n\n _this = _super.call(this, context);\n _this.isIdle = false;\n requestAnimationFrame(function () {\n var _useIdle = useIdle(_assertThisInitialized(_this), _this.options),\n _useIdle2 = _slicedToArray(_useIdle, 2),\n observe = _useIdle2[0],\n unobserve = _useIdle2[1];\n\n Object.assign(_assertThisInitialized(_this), {\n observe: observe,\n unobserve: unobserve\n });\n });\n return _this;\n }\n\n _createClass(IdleController, [{\n key: \"away\",\n value: function away() {}\n }, {\n key: \"back\",\n value: function back() {}\n }]);\n\n return IdleController;\n}(Controller);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { extendedEvent, method, composeEventName } from '../support/index';\nimport { StimulusUse } from '../stimulus_use';\nvar defaultOptions = {\n dispatchEvent: true,\n eventPrefix: true\n};\nexport var UseVisibility = /*#__PURE__*/function (_StimulusUse) {\n _inherits(UseVisibility, _StimulusUse);\n\n var _super = _createSuper(UseVisibility);\n\n function UseVisibility(controller) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, UseVisibility);\n\n _this = _super.call(this, controller, options);\n\n _this.observe = function () {\n _this.controller.isVisible = !document.hidden;\n document.addEventListener('visibilitychange', _this.handleVisibilityChange);\n };\n\n _this.unobserve = function () {\n document.removeEventListener('visibilitychange', _this.handleVisibilityChange);\n }; // private\n\n\n _this.becomesInvisible = function (event) {\n var eventName = composeEventName('invisible', _this.controller, _this.eventPrefix);\n _this.controller.isVisible = false;\n _this.controller.invisible && method(_this.controller, 'invisible').call(_this.controller, event);\n\n _this.log(\"invisible\", {\n isVisible: false\n });\n\n _this.dispatch(eventName, event);\n };\n\n _this.becomesVisible = function (event) {\n var eventName = composeEventName('visible', _this.controller, _this.eventPrefix);\n _this.controller.isVisible = true;\n _this.controller.visible && method(_this.controller, 'visible').call(_this.controller, event);\n\n _this.log(\"visible\", {\n isVisible: true\n });\n\n _this.dispatch(eventName, event);\n };\n\n _this.dispatch = function (eventName, event) {\n if (_this.dispatchEvent) {\n var detail = {\n controller: _this.controller,\n isVisible: _this.controller.isVisible\n };\n var visibilityEvent = extendedEvent(eventName, event || null, detail);\n\n _this.controller.element.dispatchEvent(visibilityEvent);\n\n _this.log(\"dispatchEvent\", Object.assign({\n eventName: eventName\n }, detail));\n }\n };\n\n _this.handleVisibilityChange = function (event) {\n if (document.hidden) {\n _this.becomesInvisible(event);\n } else {\n _this.becomesVisible(event);\n }\n };\n\n var _Object$assign = Object.assign({}, defaultOptions, options),\n dispatchEvent = _Object$assign.dispatchEvent,\n eventPrefix = _Object$assign.eventPrefix;\n\n Object.assign(_assertThisInitialized(_this), {\n dispatchEvent: dispatchEvent,\n eventPrefix: eventPrefix\n });\n _this.controller = controller;\n\n var disconnect = function disconnect() {\n _this.unobserve();\n\n _this.controllerDisconnect();\n };\n\n Object.assign(controller, {\n disconnect: disconnect\n }); // triggers initial callback on connect\n\n _this.handleVisibilityChange();\n\n _this.observe();\n\n return _this;\n }\n\n return UseVisibility;\n}(StimulusUse);\nexport var useVisibility = function useVisibility(controller) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var observer = new UseVisibility(controller, options);\n return [observer.observe, observer.unobserve];\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport { useVisibility } from './use-visibility';\nexport var VisibilityController = /*#__PURE__*/function (_Controller) {\n _inherits(VisibilityController, _Controller);\n\n var _super = _createSuper(VisibilityController);\n\n function VisibilityController(context) {\n var _this;\n\n _classCallCheck(this, VisibilityController);\n\n _this = _super.call(this, context);\n requestAnimationFrame(function () {\n var _useVisibility = useVisibility(_assertThisInitialized(_this), _this.options),\n _useVisibility2 = _slicedToArray(_useVisibility, 2),\n observe = _useVisibility2[0],\n unobserve = _useVisibility2[1];\n\n Object.assign(_assertThisInitialized(_this), {\n observe: observe,\n unobserve: unobserve\n });\n });\n return _this;\n }\n\n return VisibilityController;\n}(Controller);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\nimport { useWindowResize } from './use-window-resize';\nexport var WindowResizeController = /*#__PURE__*/function (_Controller) {\n _inherits(WindowResizeController, _Controller);\n\n var _super = _createSuper(WindowResizeController);\n\n function WindowResizeController(context) {\n var _this;\n\n _classCallCheck(this, WindowResizeController);\n\n _this = _super.call(this, context);\n requestAnimationFrame(function () {\n var _useWindowResize = useWindowResize(_assertThisInitialized(_this)),\n _useWindowResize2 = _slicedToArray(_useWindowResize, 2),\n observe = _useWindowResize2[0],\n unobserve = _useWindowResize2[1];\n\n Object.assign(_assertThisInitialized(_this), {\n observe: observe,\n unobserve: unobserve\n });\n });\n return _this;\n }\n\n _createClass(WindowResizeController, [{\n key: \"windowResize\",\n value: function windowResize(payload) {}\n }]);\n\n return WindowResizeController;\n}(Controller);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\n\nvar DebounceController = /*#__PURE__*/function (_Controller) {\n _inherits(DebounceController, _Controller);\n\n var _super = _createSuper(DebounceController);\n\n function DebounceController() {\n _classCallCheck(this, DebounceController);\n\n return _super.apply(this, arguments);\n }\n\n return DebounceController;\n}(Controller);\n\nDebounceController.debounces = [];\nvar defaultWait = 200;\n\nvar debounce = function debounce(fn) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultWait;\n var timeoutId = null;\n return function () {\n var args = arguments;\n var context = this;\n\n var callback = function callback() {\n return fn.apply(context, args);\n };\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(callback, wait);\n };\n};\n\nexport var useDebounce = function useDebounce(controller, options) {\n var _a;\n\n var constructor = controller.constructor;\n (_a = constructor.debounces) === null || _a === void 0 ? void 0 : _a.forEach(function (func) {\n if (typeof func === \"string\") {\n controller[func] = debounce(controller[func], options === null || options === void 0 ? void 0 : options.wait);\n }\n\n if (_typeof(func) === \"object\") {\n var name = func.name,\n wait = func.wait;\n if (!name) return;\n controller[name] = debounce(controller[name], wait || (options === null || options === void 0 ? void 0 : options.wait));\n }\n });\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { Controller } from 'stimulus';\n\nvar ThrottleController = /*#__PURE__*/function (_Controller) {\n _inherits(ThrottleController, _Controller);\n\n var _super = _createSuper(ThrottleController);\n\n function ThrottleController() {\n _classCallCheck(this, ThrottleController);\n\n return _super.apply(this, arguments);\n }\n\n return ThrottleController;\n}(Controller);\n\nThrottleController.trottles = [];\nvar defaultWait = 200;\nexport function throttle(func) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultWait;\n var inThrottle;\n return function () {\n var args = arguments;\n var context = this;\n\n if (!inThrottle) {\n inThrottle = true;\n func.apply(context, args);\n setTimeout(function () {\n return inThrottle = false;\n }, wait);\n }\n };\n}\nexport var useThrottle = function useThrottle(controller, options) {\n var _a;\n\n var constructor = controller.constructor;\n (_a = constructor.throttles) === null || _a === void 0 ? void 0 : _a.forEach(function (func) {\n if (typeof func === \"string\") {\n controller[func] = throttle(controller[func], options === null || options === void 0 ? void 0 : options.wait);\n }\n\n if (_typeof(func) === \"object\") {\n var name = func.name,\n wait = func.wait;\n if (!name) return;\n controller[name] = throttle(controller[name], wait || (options === null || options === void 0 ? void 0 : options.wait));\n }\n });\n};"],"sourceRoot":""}