{"version":3,"file":"js/f9da435cf0d3ebab.5bbda45f.js","mappings":"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Q,MACR5X,SAAU,cACVhnB,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,eAAgB,OAAQ,ySAE7CirD,GAAeD,GACfE,GAAgB,CACpBtsB,OAAQ,MACR5X,SAAU,gBACVhnB,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,YAAa,OAAQ,yhBAE3CmrD,GAAYD,GACZE,GAAkB,CACtBxsB,OAAQ,MACR5X,SAAU,kBACVhnB,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,q7BAE/B,IAAIgL,GAAQ,CACVowC,cACAC,cACAC,aACAC,gBACAC,eACAC,aACAC,cACAC,kBACAC,iBACAC,oBACAC,mBACAC,eACAC,mBACAC,eACAC,iBACAC,iBACAC,cACAC,WACAC,mBACAC,0BACAC,sBACAC,iBACAC,aACAC,sBACAC,sBACAC,iBACAC,iBACAC,aACAC,qBACAC,qBACAC,kBACAC,cACAC,eACAC,UACAC,iBACAC,iBACAC,eACAC,eACAC,eACAC,WACAC,YACAC,gBACAC,gBACAC,iBACAC,UACAC,mBACAC,gBACAC,cACAC,UACAC,eACAC,eACAC,cACAC,UACAC,oBACAC,gBACAC,iBACAC,kBACAC,cACAC,kBACAC,aACAC,mBACAC,eACAC,iBACAC,cACAC,mBACAC,YACAC,iBACAC,UACAC,qBACAC,qBACAC,UACAC,iBACAC,qBACAC,iBACAC,eACAC,WACAC,gBACAC,eACAC,gBACAC,kBACAC,cACAC,mBACAC,mBACAC,cACAC,cACAC,mBACAC,gBACAC,gBACAC,WACAC,kBACAC,WACAC,eACAC,SACAC,gBACAC,gBACAC,iBACAC,iBACAC,gBACAC,gBACAC,aACAC,mBACAC,eACAC,gBACAC,iBACAC,iBACAC,WACAC,eACAC,WACAC,iBACAC,qBACAC,yBACAC,mBACAC,eACAC,cACAC,oBACAC,kBACAC,gBACAC,iBACAC,YACAC,eACAC,eACAC,uBACAC,mBACAC,oBACAC,iBACAC,eACAC,kBACAC,cACAC,mBACAC,iBACAC,yBACAC,qBACAC,oBACAC,iBACAC,WACAC,kBACAC,cACAC,iBACAC,iBACAC,YACAC,cACAC,sBACAC,eACAC,eACAC,oBACAC,oBACAC,kBACAC,cACAC,SACAC,gBACAC,YACAC,cACAC,oBACAC,eACAC,WACAC,gBACAC,UACAC,iBACAC,gBACAC,oBACAC,gBACAC,iBACAC,kBACAC,mBACAC,eACAC,mBACAC,mBACAC,eACAC,aACAC,aACAC,cACAC,eACAC,oBACAC,mBACAC,eACAC,SACAC,yBACAC,qBACAC,mBACAC,aACAC,kBACAC,gBACAC,wBACAC,gBACAC,kBACAC,WACAC,eACAC,cACAC,sBACAC,YACAC,cACAC,UACAC,aACAC,SACAC,YACAC,oBACAC,SACAC,mBACAC,eACAC,gBACAC,wBACAC,gBACAC,eACAC,gBACAC,mBACAC,UACAC,UACAC,cACAC,iBACAC,kBACAC,eACAC,cACAC,eACAC,gBACAC,gBACAC,UACAC,qBACAC,iBACAC,eACAC,SACAC,eACAC,gBACAC,eACAC,WACAC,eACAC,oBACAC,gBACAC,cACAC,uBACAC,mBACAC,UACAC,cACAC,wBACAC,oBACAC,WACAC,eACAC,WACAC,oBACAC,oBACAC,oBACAC,iBACAC,gBACAC,cACAC,iBACAC,aACAC,mBACAC,iBACAC,iBACAC,iBACAC,cACAC,oBACAC,gBACAC,gBACAC,gBACAC,iBACAC,aACAC,oB,yDC5oCFvnD,EAAAA,WAAIrD,UAAU,oBAAqBq6C,IACnCnU,GAAQ9kC,IAAIyxB,IAEZxvB,EAAAA,WAAIgX,IAAID,EAAAA,GAER,aAAmBA,EAAAA,EAAQ,CACzB5P,MAAO,CACLC,SAAU,QACVC,OAAQ,CACN9B,KAAM,CACJ5I,UAAW6qD,GAAAA,EACXnrD,MAAO,CACLF,KAAM,kBACNF,UAAU,EACVF,MAAO,cAGXuJ,KAAM,CACJ3I,UAAW6qD,GAAAA,EACXnrD,MAAO,CACLF,KAAM,iBACNF,UAAU,EACVF,MAAO,cAGXsM,MAAO,CACL1L,UAAW6qD,GAAAA,EACXnrD,MAAO,CACLF,KAAM,kBACNF,UAAU,EACVF,MAAO,cAGX0rD,cAAeC,GACfC,kBAAmB,+DAGvBroD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","sources":["webpack://new_payment_experience_portal/./src/components/atoms/WpFontAwesome.vue","webpack://new_payment_experience_portal/src/components/atoms/WpFontAwesome.vue","webpack://new_payment_experience_portal/./src/components/atoms/WpFontAwesome.vue?4f4b","webpack://new_payment_experience_portal/./src/components/atoms/WpFontAwesome.vue?6f3e","webpack://new_payment_experience_portal/./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://new_payment_experience_portal/../../../src/components/VApp/VApp.ts","webpack://new_payment_experience_portal/../../../src/components/VGrid/VLayout.ts","webpack://new_payment_experience_portal/../../../src/components/VGrid/grid.ts","webpack://new_payment_experience_portal/../../../src/components/VSheet/VSheet.ts","webpack://new_payment_experience_portal/../src/install.ts","webpack://new_payment_experience_portal/../../src/locale/en.ts","webpack://new_payment_experience_portal/../../../src/presets/default/index.ts","webpack://new_payment_experience_portal/../../../src/services/presets/index.ts","webpack://new_payment_experience_portal/../../../src/services/application/index.ts","webpack://new_payment_experience_portal/../../../src/services/breakpoint/index.ts","webpack://new_payment_experience_portal/../../../../src/services/icons/presets/mdi-svg.ts","webpack://new_payment_experience_portal/../../../../src/services/icons/presets/md.ts","webpack://new_payment_experience_portal/../../../../src/services/icons/presets/mdi.ts","webpack://new_payment_experience_portal/../../../../src/services/icons/presets/fa.ts","webpack://new_payment_experience_portal/../../../../src/services/icons/presets/fa4.ts","webpack://new_payment_experience_portal/../../../../src/services/icons/presets/fa-svg.ts","webpack://new_payment_experience_portal/../../../../src/services/icons/presets/index.ts","webpack://new_payment_experience_portal/../../../src/services/icons/index.ts","webpack://new_payment_experience_portal/../../../src/services/lang/index.ts","webpack://new_payment_experience_portal/../../../src/util/color/transformSRGB.ts","webpack://new_payment_experience_portal/../../../src/util/color/transformCIELAB.ts","webpack://new_payment_experience_portal/../../../src/services/theme/utils.ts","webpack://new_payment_experience_portal/../../../src/services/theme/index.ts","webpack://new_payment_experience_portal/../src/framework.ts","webpack://new_payment_experience_portal/../../../src/mixins/binds-attrs/index.ts","webpack://new_payment_experience_portal/../../../src/mixins/colorable/index.ts","webpack://new_payment_experience_portal/../../../src/mixins/elevatable/index.ts","webpack://new_payment_experience_portal/../../../src/mixins/measurable/index.ts","webpack://new_payment_experience_portal/../../../src/mixins/positionable/index.ts","webpack://new_payment_experience_portal/../../../src/mixins/roundable/index.ts","webpack://new_payment_experience_portal/../../../src/mixins/themeable/index.ts","webpack://new_payment_experience_portal/../../../src/services/goto/easing-patterns.ts","webpack://new_payment_experience_portal/../../../src/services/goto/util.ts","webpack://new_payment_experience_portal/../../../src/services/goto/index.ts","webpack://new_payment_experience_portal/../../../src/services/service/index.ts","webpack://new_payment_experience_portal/../../src/util/colorUtils.ts","webpack://new_payment_experience_portal/../../src/util/console.ts","webpack://new_payment_experience_portal/../../src/util/helpers.ts","webpack://new_payment_experience_portal/../../src/util/mergeData.ts","webpack://new_payment_experience_portal/../../src/util/mixins.ts","webpack://new_payment_experience_portal/./src/models/contact-info.js","webpack://new_payment_experience_portal/./src/models/payer.js","webpack://new_payment_experience_portal/./src/models/payment-method.js","webpack://new_payment_experience_portal/./src/models/term.js","webpack://new_payment_experience_portal/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://new_payment_experience_portal/./node_modules/@fortawesome/vue-fontawesome/index.es.js","webpack://new_payment_experience_portal/./node_modules/@fortawesome/free-regular-svg-icons/index.mjs","webpack://new_payment_experience_portal/./src/plugins/vuetify.js","webpack://new_payment_experience_portal/./node_modules/vue-router/dist/vue-router.esm.js","webpack://new_payment_experience_portal/./src/router/index.js","webpack://new_payment_experience_portal/./src/services/payer-service.js","webpack://new_payment_experience_portal/./src/services/payment-service.js","webpack://new_payment_experience_portal/./src/services/term-service.js","webpack://new_payment_experience_portal/./src/services/invoice-service.js","webpack://new_payment_experience_portal/./src/services/user-service.js","webpack://new_payment_experience_portal/./src/services/onboarding-service.js","webpack://new_payment_experience_portal/./src/services/ezidebit-service.js","webpack://new_payment_experience_portal/./src/services/merchant-service.js","webpack://new_payment_experience_portal/./src/utils/http-client-wp-frontend.js","webpack://new_payment_experience_portal/./src/services/pos-service.js","webpack://new_payment_experience_portal/./src/store/getters.js","webpack://new_payment_experience_portal/./src/models/user.js","webpack://new_payment_experience_portal/./src/models/invoice.js","webpack://new_payment_experience_portal/./src/utils/object-helper.js","webpack://new_payment_experience_portal/./src/models/merchant.js","webpack://new_payment_experience_portal/./src/store/mutations.js","webpack://new_payment_experience_portal/./src/store/actions.js","webpack://new_payment_experience_portal/./src/store/state.js","webpack://new_payment_experience_portal/./src/store/store.js","webpack://new_payment_experience_portal/./src/utils/http-client.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/display.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/boot/init.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/timer.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/observable.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/context/heavyCustomerDataWarning.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/context/storedContextManager.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/tracekit/computeStackTrace.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/arrayUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/configuration.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/logger.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/boot/logsPublicApi.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/transport/batch.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/logsSessionManager.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/logger/loggerCollection.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/assembly.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/console/consoleCollection.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/report/reportCollection.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/networkError/networkErrorCollection.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/tracekit/tracekit.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/runtimeError/runtimeErrorCollection.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/lifeCycle.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/transport/startLogsBatch.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/transport/startLogsBridge.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/domain/internalContext.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/boot/startLogs.js","webpack://new_payment_experience_portal/./node_modules/@datadog/browser-logs/esm/entries/main.js","webpack://new_payment_experience_portal/./src/utils/logger.js","webpack://new_payment_experience_portal/./src/utils/pendo.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/isDate/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/isValid/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/format/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://new_payment_experience_portal/./node_modules/date-fns/esm/toDate/index.js","webpack://new_payment_experience_portal/./node_modules/vuelidate/lib/index.js","webpack://new_payment_experience_portal/./node_modules/vuelidate/lib/params.js","webpack://new_payment_experience_portal/./node_modules/vuelidate/lib/vval.js","webpack://new_payment_experience_portal/./node_modules/vuex-map-fields/dist/index.esm.js","webpack://new_payment_experience_portal/./node_modules/vuex/dist/vuex.esm.js","webpack://new_payment_experience_portal/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/bind.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/utils.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/AxiosError.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/null.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/toFormData.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/buildURL.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/InterceptorManager.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/defaults/transitional.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/platform/browser/index.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/platform/common/utils.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/platform/index.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/defaults/index.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/transformData.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/cancel/isCancel.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/cancel/CanceledError.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/settle.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/speedometer.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/throttle.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/cookies.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/combineURLs.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/buildFullPath.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/mergeConfig.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/adapters/xhr.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/composeSignals.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/trackStream.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/adapters/fetch.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/adapters/adapters.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/dispatchRequest.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/env/data.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/validator.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/core/Axios.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/cancel/CancelToken.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/spread.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://new_payment_experience_portal/./node_modules/axios/lib/axios.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('font-awesome-icon',{class:[_vm.color ? _vm.color + '--text' : null, _vm.spin ? 'fa-spin' : null, _vm.iconOnly ? 'mr-4' : null],attrs:{\"size\":\"lg\",\"icon\":'far ' + _vm.icon}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <font-awesome-icon\r\n size=\"lg\"\r\n :class=\"[color ? color + '--text' : null, spin ? 'fa-spin' : null, iconOnly ? 'mr-4' : null]\"\r\n :icon=\"'far ' + icon\"\r\n />\r\n</template>\r\n\r\n<script>\r\n// This component is registered globally in \"plugins/vuetify.js\"\r\n// Using Font Awesome free SVG icons\r\nexport default {\r\n props: {\r\n color: {\r\n type: String,\r\n default: \"\",\r\n },\r\n icon: {\r\n type: String,\r\n default: \"\",\r\n required: true,\r\n },\r\n spin: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n iconOnly: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n};\r\n</script>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WpFontAwesome.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WpFontAwesome.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./WpFontAwesome.vue?vue&type=template&id=32bb98d3\"\nimport script from \"./WpFontAwesome.vue?vue&type=script&lang=js\"\nexport * from \"./WpFontAwesome.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","// Styles\nimport './VApp.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(\n Themeable\n).extend({\n name: 'v-app',\n\n props: {\n dark: {\n type: Boolean,\n default: undefined,\n },\n id: {\n type: String,\n default: 'app',\n },\n light: {\n type: Boolean,\n default: undefined,\n },\n },\n\n computed: {\n isDark (): boolean {\n return this.$vuetify.theme.dark\n },\n },\n\n beforeCreate () {\n if (!this.$vuetify || (this.$vuetify === this.$root as any)) {\n throw new Error('Vuetify is not properly initialized, see https://v2.vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object')\n }\n },\n\n render (h) {\n const wrapper = h('div', { staticClass: 'v-application--wrap' }, getSlot(this))\n\n return h('div', {\n staticClass: 'v-application',\n class: {\n 'v-application--is-rtl': this.$vuetify.rtl,\n 'v-application--is-ltr': !this.$vuetify.rtl,\n ...this.themeClasses,\n },\n attrs: { 'data-app': true },\n domProps: { id: this.id },\n }, [wrapper])\n },\n})\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('layout')\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import OurVue, { VueConstructor } from 'vue'\nimport { VuetifyUseOptions } from 'vuetify/types'\nimport { consoleError } from './util/console'\n\nexport function install (Vue: VueConstructor, args: VuetifyUseOptions = {}) {\n if ((install as any).installed) return\n (install as any).installed = true\n\n if (OurVue !== Vue) {\n consoleError(`Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you're seeing \"$attrs is readonly\", it's caused by this`)\n }\n\n const components = args.components || {}\n const directives = args.directives || {}\n\n for (const name in directives) {\n const directive = directives[name]\n\n Vue.directive(name, directive)\n }\n\n (function registerComponents (components: any) {\n if (components) {\n for (const key in components) {\n const component = components[key]\n if (component && !registerComponents(component.$_vuetify_subcomponents)) {\n Vue.component(key, component as typeof Vue)\n }\n }\n return true\n }\n return false\n })(components)\n\n // Used to avoid multiple mixins being setup\n // when in dev mode and hot module reload\n // https://github.com/vuejs/vue/issues/5089#issuecomment-284260111\n if (Vue.$_vuetify_installed) return\n Vue.$_vuetify_installed = true\n\n Vue.mixin({\n beforeCreate () {\n const options = this.$options as any\n\n if (options.vuetify) {\n options.vuetify.init(this, this.$ssrContext)\n this.$vuetify = Vue.observable(options.vuetify.framework)\n } else {\n this.$vuetify = (options.parent && options.parent.$vuetify) || this\n }\n },\n beforeMount () {\n // @ts-ignore\n if (this.$options.vuetify && this.$el && this.$el.hasAttribute('data-server-rendered')) {\n // @ts-ignore\n this.$vuetify.isHydrating = true\n // @ts-ignore\n this.$vuetify.breakpoint.update(true)\n }\n },\n mounted () {\n // @ts-ignore\n if (this.$options.vuetify && this.$vuetify.isHydrating) {\n // @ts-ignore\n this.$vuetify.isHydrating = false\n // @ts-ignore\n this.$vuetify.breakpoint.update()\n }\n },\n })\n}\n","export default {\n badge: 'Badge',\n close: 'Close',\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...',\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.',\n },\n sortBy: 'Sort by',\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}',\n },\n datePicker: {\n itemsSelected: '{0} selected',\n nextMonthAriaLabel: 'Next month',\n nextYearAriaLabel: 'Next year',\n prevMonthAriaLabel: 'Previous month',\n prevYearAriaLabel: 'Previous year',\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} more',\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n },\n pagination: {\n ariaLabel: {\n wrapper: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Goto Page {0}',\n currentPage: 'Current Page, Page {0}',\n },\n },\n rating: {\n ariaLabel: {\n icon: 'Rating {0} of {1}',\n },\n },\n loading: 'Loading...',\n}\n","// Styles\nimport '../../styles/main.sass'\n\n// Locale\nimport { en } from '../../locale'\n\n// Icons\n// TODO: Enable for v3\n// import mdi from '../../services/icons/presets/mdi'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\n\nexport const preset: VuetifyPreset = {\n breakpoint: {\n // TODO: update to MD2 spec in v3 - 1280\n mobileBreakpoint: 1264,\n scrollBarWidth: 16,\n thresholds: {\n xs: 600,\n sm: 960,\n md: 1280,\n lg: 1920,\n },\n },\n icons: {\n // TODO: remove v3\n iconfont: 'mdi',\n values: {},\n },\n lang: {\n current: 'en',\n locales: { en },\n // Default translator exists in lang service\n t: undefined as any,\n },\n rtl: false,\n theme: {\n dark: false,\n default: 'light',\n disable: false,\n options: {\n cspNonce: undefined,\n customProperties: undefined,\n minifyTheme: undefined,\n themeCache: undefined,\n variations: true,\n },\n themes: {\n light: {\n primary: '#1976D2',\n secondary: '#424242',\n accent: '#82B1FF',\n error: '#FF5252',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n dark: {\n primary: '#2196F3',\n secondary: '#424242',\n accent: '#FF4081',\n error: '#FF5252',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n },\n },\n}\n","// Preset\nimport { preset as Preset } from '../../presets/default'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { mergeDeep } from '../../util/helpers'\n\n// Types\nimport Vuetify from 'vuetify/types'\nimport { Service } from '../service'\nimport {\n UserVuetifyPreset,\n VuetifyPreset,\n} from 'vuetify/types/services/presets'\n\nexport class Presets extends Service {\n static property: 'presets' = 'presets'\n\n constructor (\n parentPreset: Partial<UserVuetifyPreset>,\n parent: Vuetify,\n ) {\n super()\n\n // The default preset\n const defaultPreset = mergeDeep({}, Preset)\n // The user provided preset\n const { userPreset } = parent\n // The user provided global preset\n const {\n preset: globalPreset = {},\n ...preset\n } = userPreset\n\n if (globalPreset.preset != null) {\n consoleWarn('Global presets do not support the **preset** option, it can be safely omitted')\n }\n\n parent.preset = mergeDeep(\n mergeDeep(defaultPreset, globalPreset),\n preset\n ) as VuetifyPreset\n }\n}\n","// Extensions\nimport { Service } from '../service'\n\n// Types\nimport { TargetPropValues, TargetProp, Application as IApplication } from 'vuetify/types/services/application'\n\nexport class Application extends Service implements IApplication {\n static property: 'application' = 'application'\n\n bar = 0\n\n top = 0\n\n left = 0\n\n insetFooter = 0\n\n right = 0\n\n bottom = 0\n\n footer = 0\n\n application: Dictionary<TargetPropValues> = {\n bar: {},\n top: {},\n left: {},\n insetFooter: {},\n right: {},\n bottom: {},\n footer: {},\n }\n\n register (\n uid: number,\n location: TargetProp,\n size: number\n ) {\n this.application[location][uid] = size\n\n this.update(location)\n }\n\n unregister (uid: number, location: TargetProp) {\n if (this.application[location][uid] == null) return\n\n delete this.application[location][uid]\n this.update(location)\n }\n\n update (location: TargetProp) {\n this[location] = Object.values(this.application[location])\n .reduce((acc: number, cur: number): number => (acc + cur), 0)\n }\n}\n","// Extensions\nimport { Service } from '../service'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport { Breakpoint as IBreakpoint } from 'vuetify/types/services/breakpoint'\n\nexport class Breakpoint extends Service implements IBreakpoint {\n public static property: 'breakpoint' = 'breakpoint'\n\n // Public\n public xs = false\n\n public sm = false\n\n public md = false\n\n public lg = false\n\n public xl = false\n\n public xsOnly = false\n\n public smOnly = false\n\n public smAndDown = false\n\n public smAndUp = false\n\n public mdOnly = false\n\n public mdAndDown = false\n\n public mdAndUp = false\n\n public lgOnly = false\n\n public lgAndDown = false\n\n public lgAndUp = false\n\n public xlOnly = false\n\n // Value is xs to match v2.x functionality\n public name: IBreakpoint['name'] = 'xs'\n\n public height = 0\n\n public width = 0\n\n // TODO: Add functionality to detect this dynamically in v3\n // Value is true to match v2.x functionality\n public mobile = true\n\n public mobileBreakpoint: IBreakpoint['mobileBreakpoint']\n\n public thresholds: IBreakpoint['thresholds']\n\n public scrollBarWidth: IBreakpoint['scrollBarWidth']\n\n private resizeTimeout = 0\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n mobileBreakpoint,\n scrollBarWidth,\n thresholds,\n } = preset[Breakpoint.property]\n\n this.mobileBreakpoint = mobileBreakpoint\n this.scrollBarWidth = scrollBarWidth\n this.thresholds = thresholds\n }\n\n public init () {\n this.update()\n\n /* istanbul ignore if */\n if (typeof window === 'undefined') return\n\n window.addEventListener(\n 'resize',\n this.onResize.bind(this),\n { passive: true }\n )\n }\n\n /* eslint-disable-next-line max-statements */\n public update (ssr = false) {\n const height = ssr ? 0 : this.getClientHeight()\n const width = ssr ? 0 : this.getClientWidth()\n\n const xs = width < this.thresholds.xs\n const sm = width < this.thresholds.sm && !xs\n const md = width < (this.thresholds.md - this.scrollBarWidth) && !(sm || xs)\n const lg = width < (this.thresholds.lg - this.scrollBarWidth) && !(md || sm || xs)\n const xl = width >= (this.thresholds.lg - this.scrollBarWidth)\n\n this.height = height\n this.width = width\n\n this.xs = xs\n this.sm = sm\n this.md = md\n this.lg = lg\n this.xl = xl\n\n this.xsOnly = xs\n this.smOnly = sm\n this.smAndDown = (xs || sm) && !(md || lg || xl)\n this.smAndUp = !xs && (sm || md || lg || xl)\n this.mdOnly = md\n this.mdAndDown = (xs || sm || md) && !(lg || xl)\n this.mdAndUp = !(xs || sm) && (md || lg || xl)\n this.lgOnly = lg\n this.lgAndDown = (xs || sm || md || lg) && !xl\n this.lgAndUp = !(xs || sm || md) && (lg || xl)\n this.xlOnly = xl\n\n switch (true) {\n case (xs):\n this.name = 'xs'\n break\n case (sm):\n this.name = 'sm'\n break\n case (md):\n this.name = 'md'\n break\n case (lg):\n this.name = 'lg'\n break\n default:\n this.name = 'xl'\n break\n }\n\n if (typeof this.mobileBreakpoint === 'number') {\n this.mobile = width < parseInt(this.mobileBreakpoint, 10)\n\n return\n }\n\n const breakpoints = {\n xs: 0,\n sm: 1,\n md: 2,\n lg: 3,\n xl: 4,\n } as const\n\n const current = breakpoints[this.name]\n const max = breakpoints[this.mobileBreakpoint]\n\n this.mobile = current <= max\n }\n\n private onResize () {\n clearTimeout(this.resizeTimeout)\n\n // Added debounce to match what\n // v-resize used to do but was\n // removed due to a memory leak\n // https://github.com/vuetifyjs/vuetify/pull/2997\n this.resizeTimeout = window.setTimeout(this.update.bind(this), 200)\n }\n\n // Cross-browser support as described in:\n // https://stackoverflow.com/questions/1248081\n private getClientWidth () {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return 0 // SSR\n return Math.max(\n document.documentElement!.clientWidth,\n window.innerWidth || 0\n )\n }\n\n private getClientHeight () {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return 0 // SSR\n return Math.max(\n document.documentElement!.clientHeight,\n window.innerHeight || 0\n )\n }\n}\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n complete: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z',\n cancel: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n close: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z',\n delete: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', // delete (e.g. v-chip close)\n clear: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n success: 'M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z',\n info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2ZM13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z',\n warning: 'M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z',\n error: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n prev: 'M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z',\n next: 'M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z',\n checkboxOn: 'M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n checkboxOff: 'M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z',\n checkboxIndeterminate: 'M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n delimiter: 'M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', // for carousel\n sort: 'M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z',\n expand: 'M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z',\n menu: 'M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z',\n subgroup: 'M7,10L12,15L17,10H7Z',\n dropdown: 'M7,10L12,15L17,10H7Z',\n radioOn: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z',\n radioOff: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n edit: 'M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z',\n ratingEmpty: 'M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n ratingFull: 'M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z',\n ratingHalf: 'M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n loading: 'M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12',\n first: 'M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z',\n last: 'M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z',\n unfold: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z',\n file: 'M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z',\n plus: 'M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z',\n minus: 'M19,13H5V11H19V13Z',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n complete: 'check',\n cancel: 'cancel',\n close: 'close',\n delete: 'cancel', // delete (e.g. v-chip close)\n clear: 'clear',\n success: 'check_circle',\n info: 'info',\n warning: 'priority_high',\n error: 'warning',\n prev: 'chevron_left',\n next: 'chevron_right',\n checkboxOn: 'check_box',\n checkboxOff: 'check_box_outline_blank',\n checkboxIndeterminate: 'indeterminate_check_box',\n delimiter: 'fiber_manual_record', // for carousel\n sort: 'arrow_upward',\n expand: 'keyboard_arrow_down',\n menu: 'menu',\n subgroup: 'arrow_drop_down',\n dropdown: 'arrow_drop_down',\n radioOn: 'radio_button_checked',\n radioOff: 'radio_button_unchecked',\n edit: 'edit',\n ratingEmpty: 'star_border',\n ratingFull: 'star',\n ratingHalf: 'star_half',\n loading: 'cached',\n first: 'first_page',\n last: 'last_page',\n unfold: 'unfold_more',\n file: 'attach_file',\n plus: 'add',\n minus: 'remove',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-exclamation',\n error: 'mdi-alert',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sort: 'mdi-arrow-up',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n complete: 'fas fa-check',\n cancel: 'fas fa-times-circle',\n close: 'fas fa-times',\n delete: 'fas fa-times-circle', // delete (e.g. v-chip close)\n clear: 'fas fa-times-circle', // delete (e.g. v-chip close)\n success: 'fas fa-check-circle',\n info: 'fas fa-info-circle',\n warning: 'fas fa-exclamation-circle',\n error: 'fas fa-exclamation-triangle',\n prev: 'fas fa-chevron-left',\n next: 'fas fa-chevron-right',\n checkboxOn: 'fas fa-check-square',\n checkboxOff: 'far fa-square', // note 'far'\n checkboxIndeterminate: 'fas fa-minus-square',\n delimiter: 'fas fa-circle', // for carousel\n sort: 'fas fa-sort-up',\n expand: 'fas fa-chevron-down',\n menu: 'fas fa-bars',\n subgroup: 'fas fa-caret-down',\n dropdown: 'fas fa-caret-down',\n radioOn: 'far fa-dot-circle',\n radioOff: 'far fa-circle',\n edit: 'fas fa-edit',\n ratingEmpty: 'far fa-star',\n ratingFull: 'fas fa-star',\n ratingHalf: 'fas fa-star-half',\n loading: 'fas fa-sync',\n first: 'fas fa-step-backward',\n last: 'fas fa-step-forward',\n unfold: 'fas fa-arrows-alt-v',\n file: 'fas fa-paperclip',\n plus: 'fas fa-plus',\n minus: 'fas fa-minus',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n complete: 'fa fa-check',\n cancel: 'fa fa-times-circle',\n close: 'fa fa-times',\n delete: 'fa fa-times-circle', // delete (e.g. v-chip close)\n clear: 'fa fa-times-circle', // delete (e.g. v-chip close)\n success: 'fa fa-check-circle',\n info: 'fa fa-info-circle',\n warning: 'fa fa-exclamation',\n error: 'fa fa-exclamation-triangle',\n prev: 'fa fa-chevron-left',\n next: 'fa fa-chevron-right',\n checkboxOn: 'fa fa-check-square',\n checkboxOff: 'fa fa-square-o',\n checkboxIndeterminate: 'fa fa-minus-square',\n delimiter: 'fa fa-circle', // for carousel\n sort: 'fa fa-sort-up',\n expand: 'fa fa-chevron-down',\n menu: 'fa fa-bars',\n subgroup: 'fa fa-caret-down',\n dropdown: 'fa fa-caret-down',\n radioOn: 'fa fa-dot-circle-o',\n radioOff: 'fa fa-circle-o',\n edit: 'fa fa-pencil',\n ratingEmpty: 'fa fa-star-o',\n ratingFull: 'fa fa-star',\n ratingHalf: 'fa fa-star-half-o',\n loading: 'fa fa-refresh',\n first: 'fa fa-step-backward',\n last: 'fa fa-step-forward',\n unfold: 'fa fa-angle-double-down',\n file: 'fa fa-paperclip',\n plus: 'fa fa-plus',\n minus: 'fa fa-minus',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\nimport { Component } from 'vue'\nimport icons from './fa'\n\nexport function convertToComponentDeclarations (\n component: Component | string,\n iconSet: VuetifyIcons,\n) {\n const result: Partial<VuetifyIcons> = {}\n\n for (const key in iconSet) {\n result[key] = {\n component,\n props: {\n icon: (iconSet[key] as string).split(' fa-'),\n },\n }\n }\n\n return result as VuetifyIcons\n}\n\nexport default convertToComponentDeclarations('font-awesome-icon', icons)\n","import mdiSvg from './mdi-svg'\nimport md from './md'\nimport mdi from './mdi'\nimport fa from './fa'\nimport fa4 from './fa4'\nimport faSvg from './fa-svg'\n\nexport default Object.freeze({\n mdiSvg,\n md,\n mdi,\n fa,\n fa4,\n faSvg,\n})\n","// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport { mergeDeep } from '../../util/helpers'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport { Icons as IIcons } from 'vuetify/types/services/icons'\n\n// Presets\nimport presets from './presets'\n\nexport class Icons extends Service implements IIcons {\n static property: 'icons' = 'icons'\n\n public iconfont: IIcons['iconfont']\n\n public values: IIcons['values']\n\n public component: IIcons['component']\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n iconfont,\n values,\n component,\n } = preset[Icons.property]\n\n this.component = component\n this.iconfont = iconfont\n this.values = mergeDeep(\n presets[iconfont],\n values\n ) as IIcons['values']\n }\n}\n","// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { consoleError, consoleWarn } from '../../util/console'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n VuetifyLocale,\n Lang as ILang,\n} from 'vuetify/types/services/lang'\n\nconst LANG_PREFIX = '$vuetify.'\nconst fallback = Symbol('Lang fallback')\n\nfunction getTranslation (\n locale: VuetifyLocale,\n key: string,\n usingDefault = false,\n defaultLocale: VuetifyLocale\n): string {\n const shortKey = key.replace(LANG_PREFIX, '')\n let translation = getObjectValueByPath(locale, shortKey, fallback) as string | typeof fallback\n\n if (translation === fallback) {\n if (usingDefault) {\n consoleError(`Translation key \"${shortKey}\" not found in fallback`)\n translation = key\n } else {\n consoleWarn(`Translation key \"${shortKey}\" not found, falling back to default`)\n translation = getTranslation(defaultLocale, key, true, defaultLocale)\n }\n }\n\n return translation\n}\n\nexport class Lang extends Service implements ILang {\n static property: 'lang' = 'lang'\n\n public current: ILang['current']\n\n public defaultLocale = 'en'\n\n public locales: ILang['locales']\n\n private translator: ILang['t']\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n current,\n locales,\n t,\n } = preset[Lang.property]\n\n this.current = current\n this.locales = locales\n this.translator = t || this.defaultTranslator\n }\n\n public currentLocale (key: string) {\n const translation = this.locales[this.current]\n const defaultLocale = this.locales[this.defaultLocale]\n\n return getTranslation(translation, key, false, defaultLocale)\n }\n\n public t (key: string, ...params: any[]) {\n if (!key.startsWith(LANG_PREFIX)) return this.replace(key, params)\n\n return this.translator(key, ...params)\n }\n\n private defaultTranslator (key: string, ...params: any[]) {\n return this.replace(this.currentLocale(key), params)\n }\n\n private replace (str: string, params: any[]) {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n /* istanbul ignore next */\n return String(params[+index])\n })\n }\n}\n","import { ColorInt, XYZ } from '../colorUtils'\nimport { clamp } from '../../util/helpers'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): ColorInt {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n // Rescale back to [0, 255]\n return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0)\n}\n\nexport function toXYZ (rgb: ColorInt): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n const r = transform((rgb >> 16 & 0xff) / 255)\n const g = transform((rgb >> 8 & 0xff) / 255)\n const b = transform((rgb >> 0 & 0xff) / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n","import { XYZ, LAB } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n","import { keys } from '../../util/helpers'\nimport { colorToInt, intToHex, colorToHex, ColorInt } from '../../util/colorUtils'\nimport * as sRGB from '../../util/color/transformSRGB'\nimport * as LAB from '../../util/color/transformCIELAB'\nimport {\n VuetifyParsedTheme,\n VuetifyThemeItem,\n} from 'vuetify/types/services/theme'\n\nexport function parse (\n theme: Record<string, VuetifyThemeItem>,\n isItem = false,\n variations = true,\n): VuetifyParsedTheme {\n const { anchor, ...variant } = theme\n const colors = Object.keys(variant)\n const parsedTheme: any = {}\n\n for (let i = 0; i < colors.length; ++i) {\n const name = colors[i]\n const value = theme[name]\n\n if (value == null) continue\n\n if (!variations) {\n parsedTheme[name] = { base: intToHex(colorToInt(value)) }\n } else if (isItem) {\n /* istanbul ignore else */\n if (name === 'base' || name.startsWith('lighten') || name.startsWith('darken')) {\n parsedTheme[name] = colorToHex(value)\n }\n } else if (typeof value === 'object') {\n parsedTheme[name] = parse(value, true, variations)\n } else {\n parsedTheme[name] = genVariations(name, colorToInt(value))\n }\n }\n\n if (!isItem) {\n parsedTheme.anchor = anchor || parsedTheme.base || parsedTheme.primary.base\n }\n\n return parsedTheme\n}\n\n/**\n * Generate the CSS for a base color (.primary)\n */\nconst genBaseColor = (name: string, value: string): string => {\n return `\n.v-application .${name} {\n background-color: ${value} !important;\n border-color: ${value} !important;\n}\n.v-application .${name}--text {\n color: ${value} !important;\n caret-color: ${value} !important;\n}`\n}\n\n/**\n * Generate the CSS for a variant color (.primary.darken-2)\n */\nconst genVariantColor = (name: string, variant: string, value: string): string => {\n const [type, n] = variant.split(/(\\d)/, 2)\n return `\n.v-application .${name}.${type}-${n} {\n background-color: ${value} !important;\n border-color: ${value} !important;\n}\n.v-application .${name}--text.text--${type}-${n} {\n color: ${value} !important;\n caret-color: ${value} !important;\n}`\n}\n\nconst genColorVariableName = (name: string, variant = 'base'): string => `--v-${name}-${variant}`\n\nconst genColorVariable = (name: string, variant = 'base'): string => `var(${genColorVariableName(name, variant)})`\n\nexport function genStyles (theme: VuetifyParsedTheme, cssVar = false): string {\n const { anchor, ...variant } = theme\n const colors = Object.keys(variant)\n\n if (!colors.length) return ''\n\n let variablesCss = ''\n let css = ''\n\n const aColor = cssVar ? genColorVariable('anchor') : anchor\n css += `.v-application a { color: ${aColor}; }`\n cssVar && (variablesCss += ` ${genColorVariableName('anchor')}: ${anchor};\\n`)\n\n for (let i = 0; i < colors.length; ++i) {\n const name = colors[i]\n const value = theme[name]\n\n css += genBaseColor(name, cssVar ? genColorVariable(name) : value.base)\n cssVar && (variablesCss += ` ${genColorVariableName(name)}: ${value.base};\\n`)\n\n const variants = keys(value)\n for (let i = 0; i < variants.length; ++i) {\n const variant = variants[i]\n const variantValue = value[variant]\n if (variant === 'base') continue\n\n css += genVariantColor(name, variant, cssVar ? genColorVariable(name, variant) : variantValue)\n cssVar && (variablesCss += ` ${genColorVariableName(name, variant)}: ${variantValue};\\n`)\n }\n }\n\n if (cssVar) {\n variablesCss = `:root {\\n${variablesCss}}\\n\\n`\n }\n\n return variablesCss + css\n}\n\nexport function genVariations (name: string, value: ColorInt): Record<string, string> {\n const values: Record<string, string> = {\n base: intToHex(value),\n }\n\n for (let i = 5; i > 0; --i) {\n values[`lighten${i}`] = intToHex(lighten(value, i))\n }\n\n for (let i = 1; i <= 4; ++i) {\n values[`darken${i}`] = intToHex(darken(value, i))\n }\n\n return values\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n const lab = LAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n return sRGB.fromXYZ(LAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n const lab = LAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n return sRGB.fromXYZ(LAB.toXYZ(lab))\n}\n","/* eslint-disable no-multi-spaces */\n// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as ThemeUtils from './utils'\nimport { getNestedValue } from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n VuetifyParsedTheme,\n VuetifyThemes,\n VuetifyThemeVariant,\n Theme as ITheme,\n} from 'vuetify/types/services/theme'\n\nexport class Theme extends Service {\n static property: 'theme' = 'theme'\n\n public disabled = false\n\n public options: ITheme['options']\n\n public styleEl?: HTMLStyleElement\n\n public themes: VuetifyThemes\n\n public defaults: VuetifyThemes\n\n private isDark = null as boolean | null\n\n private unwatch = null as (() => void) | null\n\n private vueMeta = null as any | null\n\n constructor (preset: VuetifyPreset) {\n super()\n\n const {\n dark,\n disable,\n options,\n themes,\n } = preset[Theme.property]\n\n this.dark = Boolean(dark)\n this.defaults = this.themes = themes\n this.options = options\n\n if (disable) {\n this.disabled = true\n\n return\n }\n\n this.themes = {\n dark: this.fillVariant(themes.dark, true),\n light: this.fillVariant(themes.light, false),\n }\n }\n\n // When setting css, check for element and apply new values\n /* eslint-disable-next-line accessor-pairs */\n set css (val: string) {\n if (this.vueMeta) {\n if (this.isVueMeta23) {\n this.applyVueMeta23()\n }\n return\n }\n this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = val)\n }\n\n set dark (val: boolean) {\n const oldDark = this.isDark\n\n this.isDark = val\n // Only apply theme after dark\n // has already been set before\n oldDark != null && this.applyTheme()\n }\n\n get dark () {\n return Boolean(this.isDark)\n }\n\n // Apply current theme default\n // only called on client side\n public applyTheme (): void {\n if (this.disabled) return this.clearCss()\n\n this.css = this.generatedStyles\n }\n\n public clearCss (): void {\n this.css = ''\n }\n\n // Initialize theme for SSR and SPA\n // Attach to ssrContext head or\n // apply new theme to document\n public init (root: Vue, ssrContext?: any): void {\n if (this.disabled) return\n\n /* istanbul ignore else */\n if ((root as any).$meta) {\n this.initVueMeta(root)\n } else if (ssrContext) {\n this.initSSR(ssrContext)\n }\n\n this.initTheme(root)\n }\n\n // Allows for you to set target theme\n public setTheme (theme: 'light' | 'dark', value: object) {\n this.themes[theme] = Object.assign(this.themes[theme], value)\n this.applyTheme()\n }\n\n // Reset theme defaults\n public resetThemes () {\n this.themes.light = Object.assign({}, this.defaults.light)\n this.themes.dark = Object.assign({}, this.defaults.dark)\n this.applyTheme()\n }\n\n // Check for existence of style element\n private checkOrCreateStyleElement (): boolean {\n this.styleEl = document.getElementById('vuetify-theme-stylesheet') as HTMLStyleElement\n\n /* istanbul ignore next */\n if (this.styleEl) return true\n\n this.genStyleElement() // If doesn't have it, create it\n\n return Boolean(this.styleEl)\n }\n\n private fillVariant (\n theme: Partial<VuetifyThemeVariant> = {},\n dark: boolean\n ): VuetifyThemeVariant {\n const defaultTheme = this.themes[dark ? 'dark' : 'light']\n\n return Object.assign({},\n defaultTheme,\n theme\n )\n }\n\n // Generate the style element\n // if applicable\n private genStyleElement (): void {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return\n\n /* istanbul ignore next */\n this.styleEl = document.createElement('style')\n this.styleEl.type = 'text/css'\n this.styleEl.id = 'vuetify-theme-stylesheet'\n\n if (this.options.cspNonce) {\n this.styleEl.setAttribute('nonce', this.options.cspNonce)\n }\n\n document.head.appendChild(this.styleEl)\n }\n\n private initVueMeta (root: any) {\n this.vueMeta = root.$meta()\n if (this.isVueMeta23) {\n // vue-meta needs to apply after mounted()\n root.$nextTick(() => {\n this.applyVueMeta23()\n })\n return\n }\n\n const metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo'\n const metaInfo = root.$options[metaKeyName] || {}\n\n root.$options[metaKeyName] = () => {\n metaInfo.style = metaInfo.style || []\n\n const vuetifyStylesheet = metaInfo.style.find((s: any) => s.id === 'vuetify-theme-stylesheet')\n\n if (!vuetifyStylesheet) {\n metaInfo.style.push({\n cssText: this.generatedStyles,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n nonce: (this.options || {}).cspNonce,\n })\n } else {\n vuetifyStylesheet.cssText = this.generatedStyles\n }\n\n return metaInfo\n }\n }\n\n private applyVueMeta23 () {\n const { set } = this.vueMeta.addApp('vuetify')\n\n set({\n style: [{\n cssText: this.generatedStyles,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n nonce: this.options.cspNonce,\n }],\n })\n }\n\n private initSSR (ssrContext?: any) {\n // SSR\n const nonce = this.options.cspNonce ? ` nonce=\"${this.options.cspNonce}\"` : ''\n ssrContext.head = ssrContext.head || ''\n ssrContext.head += `<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"${nonce}>${this.generatedStyles}</style>`\n }\n\n private initTheme (root: Vue) {\n // Only watch for reactivity on client side\n if (typeof document === 'undefined') return\n\n // If we get here somehow, ensure\n // existing instance is removed\n if (this.unwatch) {\n this.unwatch()\n this.unwatch = null\n }\n\n // TODO: Update to use RFC if merged\n // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n root.$once('hook:created', () => {\n const obs = Vue.observable({ themes: this.themes })\n this.unwatch = root.$watch(() => obs.themes, () => this.applyTheme(), { deep: true })\n })\n this.applyTheme()\n }\n\n get currentTheme () {\n const target = this.dark ? 'dark' : 'light'\n\n return this.themes[target]\n }\n\n get generatedStyles (): string {\n const theme = this.parsedTheme\n /* istanbul ignore next */\n const options = this.options || {}\n let css\n\n if (options.themeCache != null) {\n css = options.themeCache.get(theme)\n /* istanbul ignore if */\n if (css != null) return css\n }\n\n css = ThemeUtils.genStyles(theme, options.customProperties)\n\n if (options.minifyTheme != null) {\n css = options.minifyTheme(css)\n }\n\n if (options.themeCache != null) {\n options.themeCache.set(theme, css)\n }\n\n return css\n }\n\n get parsedTheme (): VuetifyParsedTheme {\n return ThemeUtils.parse(\n this.currentTheme || {},\n undefined,\n getNestedValue(this.options, ['variations'], true)\n )\n }\n\n // Is using v2.3 of vue-meta\n // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0\n private get isVueMeta23 (): boolean {\n return typeof this.vueMeta.addApp === 'function'\n }\n}\n","import { install } from './install'\n\n// Types\nimport Vue from 'vue'\nimport {\n UserVuetifyPreset,\n VuetifyPreset,\n} from 'vuetify/types/services/presets'\nimport {\n VuetifyService,\n VuetifyServiceContract,\n} from 'vuetify/types/services'\n\n// Services\nimport * as services from './services'\n\nexport default class Vuetify {\n static install = install\n\n static installed = false\n\n static version = __VUETIFY_VERSION__\n\n static config = {\n silent: false,\n }\n\n public framework: Dictionary<VuetifyServiceContract> = {\n isHydrating: false,\n } as any\n\n public installed: string[] = []\n\n public preset = {} as VuetifyPreset\n\n public userPreset: UserVuetifyPreset = {}\n\n constructor (userPreset: UserVuetifyPreset = {}) {\n this.userPreset = userPreset\n\n this.use(services.Presets)\n this.use(services.Application)\n this.use(services.Breakpoint)\n this.use(services.Goto)\n this.use(services.Icons)\n this.use(services.Lang)\n this.use(services.Theme)\n }\n\n // Called on the new vuetify instance\n // bootstrap in install beforeCreate\n // Exposes ssrContext if available\n init (root: Vue, ssrContext?: object) {\n this.installed.forEach(property => {\n const service = this.framework[property]\n\n service.framework = this.framework\n\n service.init(root, ssrContext)\n })\n\n // rtl is not installed and\n // will never be called by\n // the init process\n this.framework.rtl = Boolean(this.preset.rtl) as any\n }\n\n // Instantiate a VuetifyService\n use (Service: VuetifyService) {\n const property = Service.property\n\n if (this.installed.includes(property)) return\n\n // TODO maybe a specific type for arg 2?\n this.framework[property] = new Service(this.preset, this as any)\n this.installed.push(property)\n }\n}\n","import Vue from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType<Vue> & ((val: any, oldVal: any) => void) {\n return function (this: Vue, val, oldVal) {\n for (const attr in oldVal) {\n if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n this.$delete(this.$data[property], attr)\n }\n }\n for (const attr in val) {\n this.$set(this.$data[property], attr, val[attr])\n }\n }\n}\n\nexport default Vue.extend({\n data: () => ({\n attrs$: {} as Dictionary<string>,\n listeners$: {} as Dictionary<Function | Function[]>,\n }),\n\n created () {\n // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n },\n})\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n name: 'colorable',\n\n props: {\n color: String,\n },\n\n methods: {\n setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n 'background-color': `${color}`,\n 'border-color': `${color}`,\n }\n } else if (color) {\n data.class = {\n ...data.class,\n [color]: true,\n }\n }\n\n return data\n },\n\n setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n if (typeof data.style === 'string') {\n // istanbul ignore next\n consoleError('style must be an object', this)\n // istanbul ignore next\n return data\n }\n if (typeof data.class === 'string') {\n // istanbul ignore next\n consoleError('class must be an object', this)\n // istanbul ignore next\n return data\n }\n if (isCssColor(color)) {\n data.style = {\n ...data.style as object,\n color: `${color}`,\n 'caret-color': `${color}`,\n }\n } else if (color) {\n const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n data.class = {\n ...data.class,\n [colorName + '--text']: true,\n }\n if (colorModifier) {\n data.class['text--' + colorModifier] = true\n }\n }\n return data\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'elevatable',\n\n props: {\n elevation: [Number, String],\n },\n\n computed: {\n computedElevation (): string | number | undefined {\n return this.elevation\n },\n elevationClasses (): Record<string, boolean> {\n const elevation = this.computedElevation\n\n if (elevation == null) return {}\n if (isNaN(parseInt(elevation))) return {}\n return { [`elevation-${this.elevation}`]: true }\n },\n },\n})\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType<string | number | undefined>\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record<string, string> = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record<keyof typeof availableProps, boolean>\n\nexport type Positionable<S extends keyof props> = VueConstructor<Vue & { [P in S]: boolean }, { [P in S]: BooleanConstructor }>\n\nexport function factory <S extends keyof props> (selected?: S[]): Positionable<S>\nexport function factory (selected: undefined): OptionsVue<Vue, {}, {}, {}, props, typeof availableProps>\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'roundable',\n\n props: {\n rounded: [Boolean, String],\n tile: Boolean,\n },\n\n computed: {\n roundedClasses (): Record<string, boolean> {\n const composite = []\n const rounded = typeof this.rounded === 'string'\n ? String(this.rounded)\n : this.rounded === true\n\n if (this.tile) {\n composite.push('rounded-0')\n } else if (typeof rounded === 'string') {\n const values = rounded.split(' ')\n\n for (const value of values) {\n composite.push(`rounded-${value}`)\n }\n } else if (rounded) {\n composite.push('rounded')\n }\n\n return composite.length > 0 ? {\n [composite.join(' ')]: true,\n } : {}\n },\n },\n})\n","import Vue from 'vue'\nimport { PropType, RenderContext } from 'vue/types/options'\n\ninterface options extends Vue {\n theme: {\n isDark: boolean\n }\n}\n\n/* @vue/component */\nconst Themeable = Vue.extend<options>().extend({\n name: 'themeable',\n\n provide (): object {\n return {\n theme: this.themeableProvide,\n }\n },\n\n inject: {\n theme: {\n default: {\n isDark: false,\n },\n },\n },\n\n props: {\n dark: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n light: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n },\n\n data () {\n return {\n themeableProvide: {\n isDark: false,\n },\n }\n },\n\n computed: {\n appIsDark (): boolean {\n return this.$vuetify.theme.dark || false\n },\n isDark (): boolean {\n if (this.dark === true) {\n // explicitly dark\n return true\n } else if (this.light === true) {\n // explicitly light\n return false\n } else {\n // inherit from parent, or default false if there is none\n return this.theme.isDark\n }\n },\n themeClasses (): object {\n return {\n 'theme--dark': this.isDark,\n 'theme--light': !this.isDark,\n }\n },\n /** Used by menus and dialogs, inherits from v-app instead of the parent */\n rootIsDark (): boolean {\n if (this.dark === true) {\n // explicitly dark\n return true\n } else if (this.light === true) {\n // explicitly light\n return false\n } else {\n // inherit from v-app\n return this.appIsDark\n }\n },\n rootThemeClasses (): Dictionary<boolean> {\n return {\n 'theme--dark': this.rootIsDark,\n 'theme--light': !this.rootIsDark,\n }\n },\n },\n\n watch: {\n isDark: {\n handler (newVal, oldVal) {\n if (newVal !== oldVal) {\n this.themeableProvide.isDark = this.isDark\n }\n },\n immediate: true,\n },\n },\n})\n\nexport default Themeable\n\nexport function functionalThemeClasses (context: RenderContext): object {\n const vm = {\n ...context.props,\n ...context.injections,\n }\n const isDark = Themeable.options.computed.isDark.call(vm)\n return Themeable.options.computed.themeClasses.call({ isDark })\n}\n","export type EasingFunction = (t: number) => number\n\n// linear\nexport const linear = (t: number) => t\n// accelerating from zero velocity\nexport const easeInQuad = (t: number) => t ** 2\n// decelerating to zero velocity\nexport const easeOutQuad = (t: number) => t * (2 - t)\n// acceleration until halfway, then deceleration\nexport const easeInOutQuad = (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t)\n// accelerating from zero velocity\nexport const easeInCubic = (t: number) => t ** 3\n// decelerating to zero velocity\nexport const easeOutCubic = (t: number) => --t ** 3 + 1\n// acceleration until halfway, then deceleration\nexport const easeInOutCubic = (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1\n// accelerating from zero velocity\nexport const easeInQuart = (t: number) => t ** 4\n// decelerating to zero velocity\nexport const easeOutQuart = (t: number) => 1 - --t ** 4\n// acceleration until halfway, then deceleration\nexport const easeInOutQuart = (t: number) => (t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t)\n// accelerating from zero velocity\nexport const easeInQuint = (t: number) => t ** 5\n// decelerating to zero velocity\nexport const easeOutQuint = (t: number) => 1 + --t ** 5\n// acceleration until halfway, then deceleration\nexport const easeInOutQuint = (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5\n","import Vue from 'vue'\n\n// Return target's cumulative offset from the top\nexport function getOffset (target: any): number {\n if (typeof target === 'number') {\n return target\n }\n\n let el = $(target)\n if (!el) {\n throw typeof target === 'string'\n ? new Error(`Target element \"${target}\" not found.`)\n : new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${type(target)} instead.`)\n }\n\n let totalOffset = 0\n while (el) {\n totalOffset += el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function getContainer (container: any): HTMLElement {\n const el = $(container)\n\n if (el) return el\n\n throw typeof container === 'string'\n ? new Error(`Container element \"${container}\" not found.`)\n : new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${type(container)} instead.`)\n}\n\nfunction type (el: any) {\n return el == null ? el : el.constructor.name\n}\n\nfunction $ (el: any): HTMLElement | null {\n if (typeof el === 'string') {\n return document.querySelector<HTMLElement>(el)\n } else if (el && el._isVue) {\n return (el as Vue).$el as HTMLElement\n } else if (el instanceof HTMLElement) {\n return el\n } else {\n return null\n }\n}\n","// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as easingPatterns from './easing-patterns'\nimport {\n getContainer,\n getOffset,\n} from './util'\n\n// Types\nimport { GoToOptions, VuetifyGoToTarget } from 'vuetify/types/services/goto'\n\nimport { VuetifyServiceContract } from 'vuetify/types/services'\n\nexport default function goTo (\n _target: VuetifyGoToTarget,\n _settings: GoToOptions = {}\n): Promise<number> {\n const settings: GoToOptions = {\n container: (document.scrollingElement as HTMLElement | null) || document.body || document.documentElement,\n duration: 500,\n offset: 0,\n easing: 'easeInOutCubic',\n appOffset: true,\n ..._settings,\n }\n const container = getContainer(settings.container)\n\n /* istanbul ignore else */\n if (settings.appOffset && goTo.framework.application) {\n const isDrawer = container.classList.contains('v-navigation-drawer')\n const isClipped = container.classList.contains('v-navigation-drawer--clipped')\n const { bar, top } = goTo.framework.application as any\n\n settings.offset += bar\n /* istanbul ignore else */\n if (!isDrawer || isClipped) settings.offset += top\n }\n\n const startTime = performance.now()\n\n let targetLocation: number\n if (typeof _target === 'number') {\n targetLocation = getOffset(_target) - settings.offset!\n } else {\n targetLocation = getOffset(_target) - getOffset(container) - settings.offset!\n }\n\n const startLocation = container.scrollTop\n if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n const ease = typeof settings.easing === 'function'\n ? settings.easing\n : easingPatterns[settings.easing!]\n /* istanbul ignore else */\n if (!ease) throw new TypeError(`Easing function \"${settings.easing}\" not found.`)\n\n // Cannot be tested properly in jsdom\n /* istanbul ignore next */\n return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n const timeElapsed = currentTime - startTime\n const progress = Math.abs(settings.duration ? Math.min(timeElapsed / settings.duration, 1) : 1)\n\n container.scrollTop = Math.floor(startLocation + (targetLocation - startLocation) * ease(progress))\n\n const clientHeight = container === document.body ? document.documentElement.clientHeight : container.clientHeight\n const reachBottom = clientHeight + container.scrollTop >= container.scrollHeight\n if (\n progress === 1 ||\n // Need to go lower but reach bottom\n (targetLocation > container.scrollTop && reachBottom)\n ) {\n return resolve(targetLocation)\n }\n\n requestAnimationFrame(step)\n }))\n}\n\ngoTo.framework = {} as Record<string, VuetifyServiceContract>\ngoTo.init = () => {}\n\nexport class Goto extends Service {\n public static property: 'goTo' = 'goTo'\n\n constructor () {\n super()\n\n return goTo\n }\n}\n","// Contracts\nimport { VuetifyServiceContract } from 'vuetify/types/services/index'\n\n// Types\nimport Vue from 'vue'\n\nexport class Service implements VuetifyServiceContract {\n framework = {}\n\n init (root: Vue, ssrContext?: object) {}\n}\n","// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, padEnd } from './helpers'\nimport { toXYZ } from './color/transformSRGB'\n\n// Types\nimport { VuetifyThemeVariant } from 'types/services/theme'\n\nexport type ColorInt = number\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number }\nexport type HSVA = HSV & { a: number }\nexport type RGB = { r: number, g: number, b: number }\nexport type RGBA = RGB & { a: number }\nexport type HSL = { h: number, s: number, l: number }\nexport type HSLA = HSL & { a: number }\nexport type Hex = string\nexport type Hexa = string\nexport type Color = string | number | {}\n\nexport function isCssColor (color?: string | false): boolean {\n return !!color && !!color.match(/^(#|var\\(--|(rgb|hsl)a?\\()/)\n}\n\nexport function colorToInt (color: Color): ColorInt {\n let rgb\n\n if (typeof color === 'number') {\n rgb = color\n } else if (typeof color === 'string') {\n let c = color[0] === '#' ? color.substring(1) : color\n if (c.length === 3) {\n c = c.split('').map(char => char + char).join('')\n }\n if (c.length !== 6) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n }\n rgb = parseInt(c, 16)\n } else {\n throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`)\n }\n\n if (rgb < 0) {\n consoleWarn(`Colors cannot be negative: '${color}'`)\n rgb = 0\n } else if (rgb > 0xffffff || isNaN(rgb)) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n rgb = 0xffffff\n }\n\n return rgb\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<VuetifyThemeVariant>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\nexport function intToHex (color: ColorInt): string {\n let hexColor: string = color.toString(16)\n\n if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor\n\n return '#' + hexColor\n}\n\nexport function colorToHex (color: Color): string {\n return intToHex(colorToInt(color))\n}\n\n/**\n * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]\n */\nexport function HSVAtoRGBA (hsva: HSVA): RGBA {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\n/**\n * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]\n */\nexport function RGBAtoHSVA (rgba: RGBA): HSVA {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVAtoHSLA (hsva: HSVA): HSLA {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLAtoHSVA (hsl: HSLA): HSVA {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBAtoCSS (rgba: RGBA): string {\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n}\n\nexport function RGBtoCSS (rgba: RGBA): string {\n return RGBAtoCSS({ ...rgba, a: 1 })\n}\n\nexport function RGBAtoHex (rgba: RGBA): Hex {\n const toHex = (v: number) => {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n }\n\n return `#${[\n toHex(rgba.r),\n toHex(rgba.g),\n toHex(rgba.b),\n toHex(Math.round(rgba.a * 255)),\n ].join('')}`\n}\n\nexport function HexToRGBA (hex: Hex): RGBA {\n const rgba = chunk(hex.slice(1), 2).map((c: string) => parseInt(c, 16))\n\n return {\n r: rgba[0],\n g: rgba[1],\n b: rgba[2],\n a: Math.round((rgba[3] / 255) * 100) / 100,\n }\n}\n\nexport function HexToHSVA (hex: Hex): HSVA {\n const rgb = HexToRGBA(hex)\n return RGBAtoHSVA(rgb)\n}\n\nexport function HSVAtoHex (hsva: HSVA): Hex {\n return RGBAtoHex(HSVAtoRGBA(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length === 6) {\n hex = padEnd(hex, 8, 'F')\n } else {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return `#${hex}`.toUpperCase().substr(0, 9)\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<VuetifyThemeVariant>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function RGBtoInt (rgba: RGBA): ColorInt {\n return (rgba.r << 16) + (rgba.g << 8) + rgba.b\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n *\n * @param c1 First color\n * @param c2 Second color\n */\nexport function contrastRatio (c1: RGBA, c2: RGBA): number {\n const [, y1] = toXYZ(RGBtoInt(c1))\n const [, y2] = toXYZ(RGBtoInt(c2))\n\n return (Math.max(y1, y2) + 0.05) / (Math.min(y1, y2) + 0.05)\n}\n","/* eslint-disable no-console */\nimport Vuetify from '../framework'\n\nfunction createMessage (message: string, vm?: any, parent?: any): string | void {\n if (Vuetify.config.silent) return\n\n if (parent) {\n vm = {\n _isVue: true,\n $parent: parent,\n $options: vm,\n }\n }\n\n if (vm) {\n // Only show each message once per instance\n vm.$_alreadyWarned = vm.$_alreadyWarned || []\n if (vm.$_alreadyWarned.includes(message)) return\n vm.$_alreadyWarned.push(message)\n }\n\n return `[Vuetify] ${message}` + (\n vm ? generateComponentTrace(vm) : ''\n )\n}\n\nexport function consoleInfo (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.info(newMessage)\n}\n\nexport function consoleWarn (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.warn(newMessage)\n}\n\nexport function consoleError (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.error(newMessage)\n}\n\nexport function deprecate (original: string, replacement: string, vm?: any, parent?: any) {\n consoleWarn(`[UPGRADE] '${original}' is deprecated, use '${replacement}' instead.`, vm, parent)\n}\nexport function breaking (original: string, replacement: string, vm?: any, parent?: any) {\n consoleError(`[BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`, vm, parent)\n}\nexport function removed (original: string, vm?: any, parent?: any) {\n consoleWarn(`[REMOVED] '${original}' has been removed. You can safely omit it.`, vm, parent)\n}\n\n/**\n * Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = (str: string) => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nfunction formatComponentName (vm: any, includeFile?: boolean): string {\n if (vm.$root === vm) {\n return '<Root>'\n }\n const options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {}\n let name = options.name || options._componentTag\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match && match[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : `<Anonymous>`) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nfunction generateComponentTrace (vm: any): string {\n if (vm._isVue && vm.$parent) {\n const tree: any[] = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (tree.length > 0) {\n const last: any = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : ' '.repeat(5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n : formatComponentName(vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm)})`\n }\n}\n","import Vue from 'vue'\nimport { VNode, VNodeDirective } from 'vue/types'\nimport { VuetifyIcon } from 'vuetify/types/services/icons'\nimport { DataTableCompareFunction, SelectItemKey, ItemGroup } from 'vuetify/types'\n\nexport function createSimpleFunctional (\n c: string,\n el = 'div',\n name?: string\n) {\n return Vue.extend({\n name: name || c.replace(/__/g, '-'),\n\n functional: true,\n\n props: {\n tag: {\n type: String,\n default: el,\n },\n },\n\n render (h, { data, props, children }): VNode {\n data.staticClass = (`${c} ${data.staticClass || ''}`).trim()\n\n return h(props.tag, data, children)\n },\n })\n}\n\nexport type BindingConfig = Pick<VNodeDirective, 'arg' | 'modifiers' | 'value'>\nexport function directiveConfig (binding: BindingConfig, defaults = {}): VNodeDirective {\n return {\n ...defaults,\n ...binding.modifiers,\n value: binding.arg,\n ...(binding.value || {}),\n }\n}\n\nexport function addOnceEventListener (\n el: EventTarget,\n eventName: string,\n cb: (event: Event) => void,\n options: boolean | AddEventListenerOptions = false\n): void {\n const once = (event: Event) => {\n cb(event)\n el.removeEventListener(eventName, once, options)\n }\n\n el.addEventListener(eventName, once, options)\n}\n\nlet passiveSupported = false\ntry {\n if (typeof window !== 'undefined') {\n const testListenerOpts = Object.defineProperty({}, 'passive', {\n get: () => {\n passiveSupported = true\n },\n }) as EventListener & EventListenerOptions\n\n window.addEventListener('testListener', testListenerOpts, testListenerOpts)\n window.removeEventListener('testListener', testListenerOpts, testListenerOpts)\n }\n} catch (e) { console.warn(e) } /* eslint-disable-line no-console */\nexport { passiveSupported }\n\nexport function addPassiveEventListener (\n el: EventTarget,\n event: string,\n cb: (event: any) => void,\n options: {}\n): void {\n el.addEventListener(event, cb, passiveSupported ? options : false)\n}\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport function getPropertyFromItem (\n item: object,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number): number[] {\n return Array.from({ length }, (v, k) => k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function kebabCase (str: string): string {\n return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object'\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\n/**\n * This remaps internal names like '$cancel' or '$vuetify.icons.cancel'\n * to the current name or component for that icon.\n */\nexport function remapInternalIcon (vm: Vue, iconName: string): VuetifyIcon {\n // Look for custom component in the configuration\n const component = vm.$vuetify.icons.component\n\n // Look for overrides\n if (iconName.startsWith('$')) {\n // Get the target icon name\n const iconPath = `$vuetify.icons.values.${iconName.split('$').pop()!.split('.').pop()}`\n\n // Now look up icon indirection name,\n // e.g. '$vuetify.icons.values.cancel'\n const override = getObjectValueByPath(vm, iconPath, iconName)\n\n if (typeof override === 'string') iconName = override\n else return override\n }\n\n if (component == null) {\n return iconName\n }\n\n return {\n component,\n props: {\n icon: iconName,\n },\n }\n}\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g\nexport const camelize = (str: string): string => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (a.indexOf(b[i]) < 0) diff.push(b[i])\n }\n return diff\n}\n\n/**\n * Makes the first character of a string uppercase\n */\nexport function upperFirst (str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] { return v != null ? Array.isArray(v) ? v : [v] : [] }\n\nexport function sortItems<T extends any = any> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction<T>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters && customSorters[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\n/**\n * Returns:\n * - 'normal' for old style slots - `<template slot=\"default\">`\n * - 'scoped' for old style scoped slots (`<template slot=\"default\" slot-scope=\"data\">`) or bound v-slot (`#default=\"data\"`)\n * - 'v-slot' for unbound v-slot (`#default`) - only if the third param is true, otherwise counts as scoped\n */\nexport function getSlotType<T extends boolean = false> (vm: Vue, name: string, split?: T): (T extends true ? 'v-slot' : never) | 'normal' | 'scoped' | void {\n if (vm.$slots.hasOwnProperty(name) && vm.$scopedSlots.hasOwnProperty(name) && (vm.$scopedSlots[name] as any).name) {\n return split ? 'v-slot' as any : 'scoped'\n }\n if (vm.$slots.hasOwnProperty(name)) return 'normal'\n if (vm.$scopedSlots.hasOwnProperty(name)) return 'scoped'\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\nexport function getPrefixedScopedSlots (prefix: string, scopedSlots: any) {\n return Object.keys(scopedSlots).filter(k => k.startsWith(prefix)).reduce((obj: any, k: string) => {\n obj[k.replace(prefix, '')] = scopedSlots[k]\n return obj\n }, {})\n}\n\nexport function getSlot (vm: Vue, name = 'default', data?: object | (() => object), optional = false) {\n const kebabName = kebabCase(name)\n if (vm.$scopedSlots.hasOwnProperty(name)) {\n return vm.$scopedSlots[name]!(data instanceof Function ? data() : data)\n } else if (vm.$scopedSlots.hasOwnProperty(kebabName)) {\n return vm.$scopedSlots[kebabName]!(data instanceof Function ? data() : data)\n } else if (vm.$slots.hasOwnProperty(name) && (!data || optional)) {\n return vm.$slots[name]\n } else if (vm.$slots.hasOwnProperty(kebabName) && (!data || optional)) {\n return vm.$slots[kebabName]\n }\n return undefined\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, binary = false): string {\n const base = binary ? 1024 : 1000\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Dictionary<any> = {},\n target: Dictionary<any> = {}\n) {\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n source[key] = mergeDeep(sourceProperty, targetProperty)\n\n continue\n }\n\n source[key] = targetProperty\n }\n\n return source\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\n/** Polyfill for Event.prototype.composedPath */\nexport function composedPath (e: Event): EventTarget[] {\n if (e.composedPath) return e.composedPath()\n\n const path = []\n let el = e.target as Element\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n\n return path\n }\n\n el = el.parentElement!\n }\n return path\n}\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary<any> = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary<any> = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n","/* eslint-disable max-len, import/export, no-use-before-define */\nimport Vue, { VueConstructor } from 'vue'\n\nexport default function mixins<T extends VueConstructor[]> (...args: T): ExtractVue<T> extends infer V ? V extends Vue ? VueConstructor<V> : never : never\nexport default function mixins<T extends Vue> (...args: VueConstructor[]): VueConstructor<T>\nexport default function mixins (...args: VueConstructor[]): VueConstructor {\n return Vue.extend({ mixins: args })\n}\n\n/**\n * Returns the instance type from a VueConstructor\n * Useful for adding types when using mixins().extend()\n */\nexport type ExtractVue<T extends VueConstructor | VueConstructor[]> = T extends (infer U)[]\n ? UnionToIntersection<\n U extends VueConstructor<infer V> ? V : never\n >\n : T extends VueConstructor<infer V> ? V : never\n\ntype UnionToIntersection<U> =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n","export default class ContactInfo {\r\n constructor(data) {\r\n this.email = data.Email || data.email;\r\n this.firstName = data.FirstName || data.firstName;\r\n this.lastName = data.LastName || data.lastName;\r\n this.phoneNumber = data.PhoneNumber || data.phoneNumber;\r\n this.company = data.Company || data.company;\r\n this.country = data.country;\r\n this.state = data.state;\r\n this.suburb = data.suburb;\r\n this.postcode = data.postcode;\r\n this.streetAddress = data.streetAddress;\r\n this.streetAddressLineTwo = data.streetAddressLineTwo;\r\n }\r\n\r\n update(data) {\r\n Object.keys(data).forEach((key) => {\r\n this[key] = data[key];\r\n });\r\n }\r\n\r\n getAddressPayload() {\r\n return {\r\n Country: this.country,\r\n State: this.state,\r\n Suburb: this.suburb,\r\n PostCode: this.postcode,\r\n StreetAddress: this.streetAddress,\r\n StreetAddressLineTwo: this.streetAddressLineTwo,\r\n };\r\n }\r\n}\r\n","import ContactInfo from \"@/models/contact-info\";\r\n\r\nexport default class Payer extends ContactInfo {\r\n constructor(data = {}) {\r\n super(data);\r\n this.userId = data.userId;\r\n this.email = data.email;\r\n this.paymentMethods = data.paymentMethods || [];\r\n this.payerProfiles = data.payerProfiles || [];\r\n }\r\n}\r\n","import ContactInfo from \"./contact-info\";\r\n\r\nexport default class PaymentMethod {\r\n constructor(data = {}) {\r\n this.id = data.id;\r\n this.hasAutoPay = data.hasAutoPay;\r\n this.isDefault = data.isDefault;\r\n this.savedInWP = data.savedInWP;\r\n this.type = data.type;\r\n this.companyName = data.companyName;\r\n this.hasPendingScheduledPayments = data.hasPendingScheduledPayments;\r\n this.hasPaymentMethod = data.hasPaymentMethod;\r\n this.billingDetails = new ContactInfo(data.billingDetails || {});\r\n\r\n if (this.isCreditCard) {\r\n this.cardNumber = data.cardNumber;\r\n this.cardName = data.cardName;\r\n this.cardCVV = data.cardCVV;\r\n this.savedCardType = data.cardType;\r\n this.token = data.token;\r\n if (data.cardExpiry) {\r\n this.setCardExpiry(data.cardExpiry);\r\n } else if (data.cardExpiryMonth && data.cardExpiryYear) {\r\n this.cardExpiryMonth = data.cardExpiryMonth;\r\n this.cardExpiryYear = data.cardExpiryYear;\r\n }\r\n }\r\n if (this.isBankDebit) {\r\n this.accountName = data.accountName;\r\n this.bsb = data.bsb;\r\n this.bsbTwo = data.bsbTwo || data.institutionNumber;\r\n this.account = data.account;\r\n }\r\n }\r\n\r\n get isCreditCard() {\r\n return this.type === \"CreditCard\";\r\n }\r\n\r\n get isBankDebit() {\r\n return this.type === \"BankAccount\";\r\n }\r\n\r\n get cardExpiry() {\r\n if (this.cardExpiryMonth && this.cardExpiryYear) {\r\n return `${this.cardExpiryMonth}/${this.cardExpiryYear}`;\r\n }\r\n return \"\";\r\n }\r\n\r\n get maskedCardNumber() {\r\n const cardNumberBlocks = this.cardNumber.match(/.{1,4}/g);\r\n return cardNumberBlocks[0] + \" **** **** \" + cardNumberBlocks[3];\r\n }\r\n\r\n get cardType() {\r\n if (this.savedCardType) {\r\n return this.savedCardType;\r\n }\r\n const cardTypeValidations = {\r\n visa: \"^4\",\r\n mastercard: \"^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$\",\r\n amex: \"^3[47]\",\r\n discover: \"^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)\",\r\n diners: \"^(36|30[0-5])\",\r\n jcb: \"^35(2[89]|[3-8][0-9])\",\r\n union: \"^(62[0-9]{14,17})$\",\r\n };\r\n return Object.keys(cardTypeValidations).find((cardType) =>\r\n new RegExp(cardTypeValidations[cardType]).test(this.cardNumber)\r\n );\r\n }\r\n\r\n getPayload() {\r\n const payload = {\r\n IsDefault: this.isDefault,\r\n UniquePayerReferenceId: this.id,\r\n };\r\n if (this.isCreditCard) {\r\n Object.assign(payload, {\r\n TokenFromCardProvider: this.token,\r\n MaskedCreditCard: {\r\n cardName: this.cardName,\r\n cardMaskedNumber: this.maskedCardNumber,\r\n cardExpiry: this.cardExpiry,\r\n cardCVV: this.cardCVV,\r\n },\r\n });\r\n } else if (this.isBankDebit) {\r\n Object.assign(payload, {\r\n BankAccount: {\r\n AccountName: this.accountName,\r\n AccountNumber: this.account,\r\n Bsb: this.bsb + (this.bsbTwo || \"\"),\r\n },\r\n });\r\n }\r\n return payload;\r\n }\r\n\r\n getPayrixPayload() {\r\n return {\r\n Card: {\r\n CardNumber: this.cardNumber,\r\n CardholderName: this.cardName,\r\n ExpiryYear: `20${this.cardExpiryYear}`,\r\n ExpiryMonth: this.cardExpiryMonth,\r\n Ccv: this.cardCVV,\r\n },\r\n };\r\n }\r\n\r\n setCardExpiry(expiry) {\r\n if (expiry) {\r\n let [month, year] = expiry.split(\"/\");\r\n if (year && year.length === 4) {\r\n year = year.slice(-2);\r\n }\r\n this.cardExpiryMonth = month;\r\n this.cardExpiryYear = year;\r\n }\r\n }\r\n}\r\n","import store from \"../store/store\";\r\nimport { WsApi } from \"@/utils/http-client\";\r\n\r\nexport default class Term {\r\n constructor(data) {\r\n this.detailsEndpoint = data.detailsEndpoint;\r\n this.name = data.name;\r\n this.id = parseInt(data.termsAndConditionsId);\r\n this.accepted = false;\r\n this.update(data);\r\n }\r\n update(data) {\r\n this.content = data.Content || data.content;\r\n this.description = data.Description || data.description;\r\n this.isSignatureRequired = data.IsSignatureRequired || data.isSignatureRequired;\r\n this.type = data.Type || data.type;\r\n }\r\n get endpoint() {\r\n return (\r\n this.detailsEndpoint ||\r\n WsApi.getUrl(\"/PaymentServices/TermsAndDisclaimers/Details\", { termsAndConditionsId: this.id })\r\n );\r\n }\r\n get isLoaded() {\r\n return !!this.description;\r\n }\r\n getFormattedContent() {\r\n const replacingElements = {\r\n PayerName: `${store.state.payer.firstName} ${store.state.payer.lastName}`,\r\n PayerCompanyName: store.state.payer.company,\r\n SurchargeLabel: store.state.merchant.paymentTypes.creditCards.surchargeLabel,\r\n };\r\n let formattedContent = this.content || \"\";\r\n Object.keys(replacingElements).forEach((replacementText) => {\r\n const findingRegex = new RegExp(`{{${replacementText}}}`, \"g\");\r\n formattedContent = formattedContent.replace(findingRegex, replacingElements[replacementText]);\r\n });\r\n return formattedContent;\r\n }\r\n getPayload() {\r\n const payload = {\r\n Type: this.type,\r\n TermsAndConditionsId: this.id,\r\n };\r\n if (this.isSignatureRequired) {\r\n payload.Signature = store.state.termsAndConditions.signature;\r\n payload.Position = store.state.termsAndConditions.acceptedByPosition;\r\n payload.AcceptedBy = store.state.termsAndConditions.acceptedBy;\r\n }\r\n return payload;\r\n }\r\n}\r\n","/*!\n * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _inherits(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 }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _wrapRegExp() {\n _wrapRegExp = function (e, r) {\n return new BabelRegExp(e, void 0, r);\n };\n var e = RegExp.prototype,\n r = new WeakMap();\n function BabelRegExp(e, t, p) {\n var o = RegExp(e, t);\n return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n }\n function buildGroups(e, t) {\n var p = r.get(t);\n return Object.keys(p).reduce(function (r, t) {\n var o = p[t];\n if (\"number\" == typeof o) r[t] = e[o];else {\n for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;\n r[t] = e[o[i]];\n }\n return r;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {\n var t = e.exec.call(this, r);\n if (t) {\n t.groups = buildGroups(t, this);\n var p = t.indices;\n p && (p.groups = buildGroups(p, this));\n }\n return t;\n }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {\n if (\"string\" == typeof p) {\n var o = r.get(this);\n return e[Symbol.replace].call(this, t, p.replace(/\\$<([^>]+)>/g, function (e, r) {\n var t = o[r];\n return \"$\" + (Array.isArray(t) ? t.join(\"$\") : t);\n }));\n }\n if (\"function\" == typeof p) {\n var i = this;\n return e[Symbol.replace].call(this, t, function () {\n var e = arguments;\n return \"object\" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);\n });\n }\n return e[Symbol.replace].call(this, t, p);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nconst noop = () => {};\nlet _WINDOW = {};\nlet _DOCUMENT = {};\nlet _MUTATION_OBSERVER = null;\nlet _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\nconst {\n userAgent = ''\n} = _WINDOW.navigator || {};\nconst WINDOW = _WINDOW;\nconst DOCUMENT = _DOCUMENT;\nconst MUTATION_OBSERVER = _MUTATION_OBSERVER;\nconst PERFORMANCE = _PERFORMANCE;\nconst IS_BROWSER = !!WINDOW.document;\nconst IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nconst IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar p = /fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\\-\\ ]/,\n g = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;\nvar S = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n }\n },\n A = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n P = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\"];\nvar s = \"classic\",\n t = \"duotone\",\n r = \"sharp\",\n o = \"sharp-duotone\",\n L = [s, t, r, o];\nvar G = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n }\n };\nvar lt = {\n \"Font Awesome 6 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 6 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 6 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 6 Duotone\": {\n 900: \"fad\",\n 400: \"fadr\",\n normal: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n \"Font Awesome 6 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 6 Sharp Duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n normal: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n }\n };\nvar pt = new Map([[\"classic\", {\n defaultShortPrefixId: \"fas\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp\", {\n defaultShortPrefixId: \"fass\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"duotone\", {\n defaultShortPrefixId: \"fad\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp-duotone\", {\n defaultShortPrefixId: \"fasds\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }]]),\n xt = {\n classic: {\n solid: \"fas\",\n regular: \"far\",\n light: \"fal\",\n thin: \"fat\",\n brands: \"fab\"\n },\n duotone: {\n solid: \"fad\",\n regular: \"fadr\",\n light: \"fadl\",\n thin: \"fadt\"\n },\n sharp: {\n solid: \"fass\",\n regular: \"fasr\",\n light: \"fasl\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n solid: \"fasds\",\n regular: \"fasdr\",\n light: \"fasdl\",\n thin: \"fasdt\"\n }\n };\nvar Ft = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n St = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n At = [\"kit\"];\nvar Ct = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n};\nvar Lt = [\"fak\", \"fakd\"],\n Wt = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\nvar Et = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\nvar t$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n r$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\"];\nvar bt$1 = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"];\nvar Yt = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n };\nvar po = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n }\n },\n I$1 = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"]\n },\n co = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n }\n },\n x = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\"],\n xo = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", ...r$1, ...x],\n m$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\"],\n c$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n F$1 = c$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n Fo = [...Object.keys(I$1), ...m$1, \"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"fw\", \"inverse\", \"layers-counter\", \"layers-text\", \"layers\", \"li\", \"pull-left\", \"pull-right\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(c$1.map(o => \"\".concat(o, \"x\"))).concat(F$1.map(o => \"w-\".concat(o)));\nvar ko = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n };\n\nconst NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nconst UNITS_IN_GRID = 16;\nconst DEFAULT_CSS_PREFIX = 'fa';\nconst DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nconst DATA_FA_I2SVG = 'data-fa-i2svg';\nconst DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nconst DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nconst DATA_PREFIX = 'data-prefix';\nconst DATA_ICON = 'data-icon';\nconst HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nconst MUTATION_APPROACH_ASYNC = 'async';\nconst TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nconst PRODUCTION = (() => {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n})();\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get(target, prop) {\n return prop in target ? target[prop] : target[s];\n }\n });\n}\nconst _PREFIX_TO_STYLE = _objectSpread2({}, S);\n\n// We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n// {'fa-duotone': 'duotone'}\n_PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n}), S[s]), St['kit']), St['kit-duotone']);\nconst PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nconst _STYLE_TO_PREFIX = _objectSpread2({}, xt);\n\n// We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n}), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']);\nconst STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nconst _PREFIX_TO_LONG_STYLE = _objectSpread2({}, co);\n_PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']);\nconst PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nconst _LONG_STYLE_TO_PREFIX = _objectSpread2({}, po);\n_LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']);\nconst LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nconst ICON_SELECTION_SYNTAX_PATTERN = p; // eslint-disable-line no-useless-escape\n\nconst LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nconst FONT_FAMILY_PATTERN = g;\nconst _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G);\nconst FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nconst ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nconst DUOTONE_CLASSES = A;\nconst RESERVED_CLASSES = [...At, ...Fo];\n\nconst initial = WINDOW.FontAwesomeConfig || {};\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\n }\n}\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n const attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(_ref => {\n let [attr, key] = _ref;\n const val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\nconst _default = {\n styleDefault: 'solid',\n familyDefault: s,\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\n// familyPrefix is deprecated but we must still support it if present\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\nconst _config = _objectSpread2(_objectSpread2({}, _default), initial);\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nconst config = {};\nObject.keys(_default).forEach(key => {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function (val) {\n _config[key] = val;\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config[key];\n }\n });\n});\n\n// familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function (val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nconst _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n return () => {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nconst d$2 = UNITS_IN_GRID;\nconst meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n const style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n const headChildren = DOCUMENT.head.childNodes;\n let beforeChild = null;\n for (let i = headChildren.length - 1; i > -1; i--) {\n const child = headChildren[i];\n const tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nconst idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n let size = 12;\n let id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n}\nfunction toArray(obj) {\n const array = [];\n for (let i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(i => i);\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce((acc, attributeName) => {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce((acc, styleName) => {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n let {\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer,\n inner,\n path\n };\n}\nfunction transformForCss(_ref2) {\n let {\n transform,\n width = UNITS_IN_GRID,\n height = UNITS_IN_GRID,\n startCentered = false\n } = _ref2;\n let val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-regular: normal 400 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-light: normal 300 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-thin: normal 100 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n animation-delay: -1ms;\\n animation-duration: 1ms;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\";\n\nfunction css() {\n const dcp = DEFAULT_CSS_PREFIX;\n const drc = DEFAULT_REPLACEMENT_CLASS;\n const fp = config.cssPrefix;\n const rc = config.replacementClass;\n let s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n const dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n const customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n const rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n}\nlet _cssInserted = false;\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\nvar InjectCSS = {\n mixout() {\n return {\n dom: {\n css,\n insertCss: ensureCss\n }\n };\n },\n hooks() {\n return {\n beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nconst w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nconst functions = [];\nconst listener = function () {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(fn => fn());\n};\nlet loaded = false;\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n const {\n tag,\n attributes = {},\n children = []\n } = abstractNodes;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix,\n iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens <https://mathiasbynens.be/>\n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nfunction ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n const extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\nfunction toHex(unicode) {\n const decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n const size = string.length;\n let first = string.charCodeAt(index);\n let second;\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce((acc, iconName) => {\n const icon = icons[iconName];\n const expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n}\nfunction defineIcons(prefix, icons) {\n let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n skipHooks = false\n } = params;\n const normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nconst duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]+)\".*d=\"([^\"]+)\".*path class=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nconst {\n styles,\n shims\n} = namespace;\nconst FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\nconst PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce((acc, familyId) => {\n acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n return acc;\n}, {});\nlet _defaultUsablePrefix = null;\nlet _byUnicode = {};\nlet _byLigature = {};\nlet _byOldName = {};\nlet _byOldUnicode = {};\nlet _byAlias = {};\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction getIconName(cssPrefix, cls) {\n const parts = cls.split('-');\n const prefix = parts[0];\n const iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nconst build = () => {\n const lookup = reducer => {\n return reduce(styles, (o$$1, style, prefix) => {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup((acc, icon, iconName) => {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(alias => {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup((acc, icon, iconName) => {\n acc[iconName] = iconName;\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup((acc, icon, iconName) => {\n const aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n return acc;\n });\n\n // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n const hasRegular = 'far' in styles || config.autoFetchSvg;\n const shimLookups = reduce(shims, (acc, shim) => {\n const maybeNameMaybeUnicode = shim[0];\n let prefix = shim[1];\n const iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix,\n iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix,\n iconName\n };\n }\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(c$$1 => {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n const oldUnicode = _byOldUnicode[unicode];\n const newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nconst emptyCanonicalIcon = () => {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getFamilyId(values) {\n let family = s;\n const famProps = FAMILY_NAMES.reduce((acc, familyId) => {\n acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n return acc;\n }, {});\n L.forEach(familyId => {\n if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) {\n family = familyId;\n }\n });\n return family;\n}\nfunction getCanonicalPrefix(styleOrPrefix) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n family = s\n } = params;\n const style = PREFIX_TO_STYLE[family][styleOrPrefix];\n\n // handles the exception of passing in only a family of 'duotone' with no style\n if (family === t && !styleOrPrefix) {\n return 'fad';\n }\n const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n const result = prefix || defined || null;\n return result;\n}\nfunction moveNonFaClassesToRest(classNames) {\n let rest = [];\n let iconName = null;\n classNames.forEach(cls => {\n const result = getIconName(config.cssPrefix, cls);\n if (result) {\n iconName = result;\n } else if (cls) {\n rest.push(cls);\n }\n });\n return {\n iconName,\n rest\n };\n}\nfunction sortedUniqueValues(arr) {\n return arr.sort().filter((value, index, arr) => {\n return arr.indexOf(value) === index;\n });\n}\nfunction getCanonicalIcon(values) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n skipLookups = false\n } = params;\n let givenPrefix = null;\n const faCombinedClasses = xo.concat(bt$1);\n const faStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => faCombinedClasses.includes(cls)));\n const nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => !xo.includes(cls)));\n const faStyles = faStyleOrFamilyClasses.filter(cls => {\n givenPrefix = cls;\n return !P.includes(cls);\n });\n const [styleFromValues = null] = faStyles;\n const family = getFamilyId(faStyleOrFamilyClasses);\n const canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n prefix: getCanonicalPrefix(styleFromValues, {\n family\n })\n });\n return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n values,\n family,\n styles,\n config,\n canonical,\n givenPrefix\n })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n}\nfunction applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n let {\n prefix,\n iconName\n } = canonical;\n if (skipLookups || !prefix || !iconName) {\n return {\n prefix,\n iconName\n };\n }\n const shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n const aliasIconName = byAlias(prefix, iconName);\n iconName = shim.iconName || aliasIconName || iconName;\n prefix = shim.prefix || prefix;\n if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n prefix = 'fas';\n }\n return {\n prefix,\n iconName\n };\n}\nconst newCanonicalFamilies = L.filter(familyId => {\n return familyId !== s || familyId !== t;\n});\nconst newCanonicalStyles = Object.keys(co).filter(key => key !== s).map(key => Object.keys(co[key])).flat();\nfunction getDefaultCanonicalPrefix(prefixOptions) {\n const {\n values,\n family,\n canonical,\n givenPrefix = '',\n styles = {},\n config: config$$1 = {}\n } = prefixOptions;\n const isDuotoneFamily = family === t;\n const valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n const defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n const canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';\n if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {\n canonical.prefix = 'fad';\n }\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (!canonical.prefix && newCanonicalFamilies.includes(family)) {\n const validPrefix = Object.keys(styles).find(key => newCanonicalStyles.includes(key));\n if (validPrefix || config$$1.autoFetchSvg) {\n const defaultPrefix = pt.get(family).defaultShortPrefixId;\n canonical.prefix = defaultPrefix;\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n }\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n return canonical;\n}\n\nclass Library {\n constructor() {\n this.definitions = {};\n }\n add() {\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n const additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(key => {\n this.definitions[key] = _objectSpread2(_objectSpread2({}, this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n\n // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n const longPrefix = PREFIX_TO_LONG_STYLE[s][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n reset() {\n this.definitions = {};\n }\n _pullDefinitions(additions, definition) {\n const normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(key => {\n const {\n prefix,\n iconName,\n icon\n } = normalized[key];\n const aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(alias => {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n}\n\nlet _plugins = [];\nlet _hooks = {};\nconst providers = {};\nconst defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n let {\n mixoutsTo: obj\n } = _ref;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(k => {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(plugin => {\n const mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(tk => {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (typeof mixout[tk] === 'object') {\n Object.keys(mixout[tk]).forEach(sk => {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n const hooks = plugin.hooks();\n Object.keys(hooks).forEach(hook => {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n accumulator = hookFn.apply(null, [accumulator, ...args]); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n const hook = arguments[0];\n const args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n let {\n iconName\n } = iconLookup;\n const prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nconst library = new Library();\nconst noAuto = () => {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nconst dom = {\n i2svg: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot\n } = params;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(() => {\n autoReplace({\n autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nconst parse = {\n icon: icon => {\n if (icon === null) {\n return null;\n }\n if (typeof icon === 'object' && icon.prefix && icon.iconName) {\n return {\n prefix: icon.prefix,\n iconName: byAlias(icon.prefix, icon.iconName) || icon.iconName\n };\n }\n if (Array.isArray(icon) && icon.length === 2) {\n const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1];\n const prefix = getCanonicalPrefix(icon[0]);\n return {\n prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof icon === 'string' && (icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n const canonicalIcon = getCanonicalIcon(icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n if (typeof icon === 'string') {\n const prefix = getDefaultUsablePrefix();\n return {\n prefix,\n iconName: byAlias(prefix, icon) || icon\n };\n }\n }\n};\nconst api = {\n noAuto,\n config,\n dom,\n parse,\n library,\n findIconDefinition,\n toHtml\n};\nconst autoReplace = function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot = DOCUMENT\n } = params;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function () {\n return val.abstract.map(a => toHtml(a));\n }\n });\n Object.defineProperty(val, 'node', {\n get: function () {\n if (!IS_DOM) return;\n const container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n let {\n children,\n main,\n mask,\n attributes,\n styles,\n transform\n } = _ref;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n const {\n width,\n height\n } = main;\n const offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n return [{\n tag: 'svg',\n attributes,\n children\n }];\n}\n\nfunction asSymbol (_ref) {\n let {\n prefix,\n iconName,\n children,\n attributes,\n symbol\n } = _ref;\n const id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id\n }),\n children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n const {\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n title,\n maskId,\n titleId,\n extra,\n watchable = false\n } = params;\n const {\n width,\n height\n } = mask.found ? mask : main;\n const isUploadedIcon = Lt.includes(prefix);\n const attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(c$$1 => extra.classes.indexOf(c$$1) === -1).filter(c$$1 => c$$1 !== '' || !!c$$1).concat(extra.classes).join(' ');\n let content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n const args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix,\n iconName,\n main,\n mask,\n maskId,\n transform,\n symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n const {\n children,\n attributes\n } = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n };\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n const {\n content,\n width,\n height,\n transform,\n title,\n extra,\n watchable = false\n } = params;\n const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n const styles = _objectSpread2({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform,\n startCentered: true,\n width,\n height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n const styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n const {\n content,\n title,\n extra\n } = params;\n const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n const styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n}\n\nconst {\n styles: styles$1\n} = namespace;\nfunction asFoundIcon(icon) {\n const width = icon[0];\n const height = icon[1];\n const [vectorData] = icon.slice(4);\n let element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width,\n height,\n icon: element\n };\n}\nconst missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\nfunction findIcon(iconName, prefix) {\n let givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise((resolve, reject) => {\n if (givenPrefix === 'fa') {\n const shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n const icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nconst noop$1 = () => {};\nconst p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nconst preamble = \"FA \\\"6.7.1\\\"\";\nconst begin = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return () => end(name);\n};\nconst end = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\nvar perf = {\n begin,\n end\n};\n\nconst noop$2 = () => {};\nfunction isWatched(node) {\n const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\nfunction hasPrefixAndIcon(node) {\n const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n const mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\nfunction convertSVG(abstractObj) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement\n } = params;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n const tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n const children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn\n }));\n });\n return tag;\n}\nfunction nodeAsComment(node) {\n let comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n return comment;\n}\nconst mutators = {\n replace: function (mutation) {\n const node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(abstract => {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n let comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function (mutation) {\n const node = mutation[0];\n const abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n const forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n const newInnerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\nfunction performOperationSync(op) {\n op();\n}\nfunction perform(mutations, callback) {\n const callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n let frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(() => {\n const mutator = getMutator();\n const mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nlet disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nlet mo$1 = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n const {\n treeCallback = noop$2,\n nodeCallback = noop$2,\n pseudoElementsCallback = noop$2,\n observeMutationsRoot = DOCUMENT\n } = options;\n mo$1 = new MUTATION_OBSERVER(objects => {\n if (disabled) return;\n const defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(mutationRecord => {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n const {\n prefix,\n iconName\n } = getCanonicalIcon(classArray(mutationRecord.target));\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo$1.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo$1) return;\n mo$1.disconnect();\n}\n\nfunction styleParser (node) {\n const style = node.getAttribute('style');\n let val = [];\n if (style) {\n val = style.split(';').reduce((acc, style) => {\n const styles = style.split(':');\n const prop = styles[0];\n const value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n}\n\nfunction classParser (node) {\n const existingPrefix = node.getAttribute('data-prefix');\n const existingIconName = node.getAttribute('data-icon');\n const innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n let val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n}\n\nfunction attributesParser (node) {\n const extraAttributes = toArray(node.attributes).reduce((acc, attr) => {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n const title = node.getAttribute('title');\n const titleId = node.getAttribute('data-fa-title-id');\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n const {\n iconName,\n prefix,\n rest: extraClasses\n } = classParser(node);\n const extraAttributes = attributesParser(node);\n const pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n let extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nconst {\n styles: styles$2\n} = namespace;\nfunction generateMutation(node) {\n const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\nfunction getKnownPrefixes() {\n return [...Ft, ...xo];\n}\nfunction onTree(root) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n const htmlClassList = DOCUMENT.documentElement.classList;\n const hclAdd = suffix => htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n const hclRemove = suffix => htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n const prefixes = config.autoFetchSvg ? getKnownPrefixes() : P.concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n const prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(p$$1 => \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\"))).join(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n let candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {\n // noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n const mark = perf.begin('onTree');\n const mutations = candidates.reduce((acc, node) => {\n try {\n const mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise((resolve, reject) => {\n Promise.all(mutations).then(resolvedMutations => {\n perform(resolvedMutations, () => {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(e$$1 => {\n mark();\n reject(e$$1);\n });\n });\n}\nfunction onNode(node) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(mutation => {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n let {\n mask\n } = params;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask\n }));\n };\n}\nconst render = function (iconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n symbol = false,\n mask = null,\n maskId = null,\n title = null,\n titleId = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n if (!iconDefinition) return;\n const {\n prefix,\n iconName,\n icon\n } = iconDefinition;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), () => {\n callHooks('beforeDOMElementCreation', {\n iconDefinition,\n params\n });\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix,\n iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol,\n title,\n maskId,\n titleId,\n extra: {\n attributes,\n styles,\n classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n const {\n node = DOCUMENT,\n callback = () => {}\n } = params;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n const {\n iconName,\n title,\n titleId,\n prefix,\n transform,\n symbol,\n mask,\n maskId,\n extra\n } = nodeMeta;\n return new Promise((resolve, reject) => {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(_ref => {\n let [main, mask] = _ref;\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n maskId,\n title,\n titleId,\n extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref2) {\n let {\n children,\n attributes,\n main,\n transform,\n styles\n } = _ref2;\n const styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n let nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main,\n transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children,\n attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout() {\n return {\n layer(assembler) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n classes = []\n } = params;\n return domVariants({\n type: 'layer'\n }, () => {\n callHooks('beforeDOMElementCreation', {\n assembler,\n params\n });\n let children = [];\n assembler(args => {\n Array.isArray(args) ? args.map(a => {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\"), ...classes].join(' ')\n },\n children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout() {\n return {\n counter(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'counter',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\"), ...classes]\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout() {\n return {\n text(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'text',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersTextAbstract({\n content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\"), ...classes]\n }\n });\n });\n }\n };\n },\n provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n const {\n title,\n transform,\n extra\n } = nodeMeta;\n let width = null;\n let height = null;\n if (IS_IE) {\n const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n const boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width,\n height,\n transform,\n title,\n extra,\n watchable: true\n })]);\n };\n }\n};\n\nconst CLEAN_CONTENT_PATTERN = new RegExp('\\u{22}', 'ug');\nconst SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nconst _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n}), lt), ko), Yt);\nconst FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nconst FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => {\n const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1];\n return acc;\n}, {});\nfunction hexValueFromContent(content) {\n const cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n const codePoint = codePointAt(cleaned, 0);\n const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\nfunction getPrefix(fontFamily, fontWeight) {\n const fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n const fontWeightInteger = parseInt(fontWeight);\n const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\nfunction replaceForPosition(node, position) {\n const pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise((resolve, reject) => {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n const children = toArray(node.children);\n const alreadyProcessedPseudoElement = children.filter(c$$1 => c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0];\n const styles = WINDOW.getComputedStyle(node, position);\n const fontFamily = styles.getPropertyValue('font-family');\n const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n const fontWeight = styles.getPropertyValue('font-weight');\n const content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n const content = styles.getPropertyValue('content');\n let prefix = getPrefix(fontFamily, fontWeight);\n const {\n value: hexValue,\n isSecondary\n } = hexValueFromContent(content);\n const isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n let iconName = byUnicode(prefix, hexValue);\n let iconIdentifier = iconName;\n if (isV4) {\n const iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n }\n\n // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n const meta = blankMeta();\n const {\n extra\n } = meta;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(main => {\n const abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main,\n mask: emptyCanonicalIcon()\n },\n prefix,\n iconName: iconIdentifier,\n extra,\n watchable: true\n }));\n const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(a$$1 => toHtml(a$$1)).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise((resolve, reject) => {\n const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n const end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(() => {\n end();\n enableObservation();\n resolve();\n }).catch(() => {\n end();\n enableObservation();\n reject();\n });\n });\n}\nvar PseudoElements = {\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.pseudoElements2svg = function (params) {\n const {\n node = DOCUMENT\n } = params;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nlet _unwatched = false;\nvar MutationObserver$1 = {\n mixout() {\n return {\n dom: {\n unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks() {\n return {\n bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto() {\n disconnect();\n },\n watch(params) {\n const {\n observeMutationsRoot\n } = params;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nconst parseTransformString = transformString => {\n let transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce((acc, n) => {\n const parts = n.toLowerCase().split('-');\n const first = parts[0];\n let rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout() {\n return {\n parse: {\n transform: transformString => {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n let {\n main,\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n const operations = {\n outer,\n inner,\n path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nconst ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\nfunction fillBlack(abstract) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n}\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\nvar Masks = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const maskData = node.getAttribute('data-fa-mask');\n const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim()));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n let {\n children,\n attributes,\n main,\n mask,\n maskId: explicitMaskId,\n transform\n } = _ref;\n const {\n width: mainWidth,\n icon: mainPath\n } = main;\n const {\n width: maskWidth,\n icon: maskPath\n } = mask;\n const trans = transformForSvg({\n transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n const maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n const maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n const maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n const maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n const maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n const clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n const maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n const defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children,\n attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides(providers) {\n let reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n const gChildren = [];\n const FILL = {\n fill: 'currentColor'\n };\n const ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n\n // Ring\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n const OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n const dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const symbolData = node.getAttribute('data-fa-symbol');\n const symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nconst noAuto$1 = api.noAuto;\nconst config$1 = api.config;\nconst library$1 = api.library;\nconst dom$1 = api.dom;\nconst parse$1 = api.parse;\nconst findIconDefinition$1 = api.findIconDefinition;\nconst toHtml$1 = api.toHtml;\nconst icon = api.icon;\nconst layer = api.layer;\nconst text = api.text;\nconst counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon, config, text } from '@fortawesome/fontawesome-svg-core';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar humps$1 = {exports: {}};\n\n(function (module) {\n(function(global) {\n\n\t var _processKeys = function(convert, obj, options) {\n\t if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n\t return obj;\n\t }\n\n\t var output,\n\t i = 0,\n\t l = 0;\n\n\t if(_isArray(obj)) {\n\t output = [];\n\t for(l=obj.length; i<l; i++) {\n\t output.push(_processKeys(convert, obj[i], options));\n\t }\n\t }\n\t else {\n\t output = {};\n\t for(var key in obj) {\n\t if(Object.prototype.hasOwnProperty.call(obj, key)) {\n\t output[convert(key, options)] = _processKeys(convert, obj[key], options);\n\t }\n\t }\n\t }\n\t return output;\n\t };\n\n\t // String conversion methods\n\n\t var separateWords = function(string, options) {\n\t options = options || {};\n\t var separator = options.separator || '_';\n\t var split = options.split || /(?=[A-Z])/;\n\n\t return string.split(split).join(separator);\n\t };\n\n\t var camelize = function(string) {\n\t if (_isNumerical(string)) {\n\t return string;\n\t }\n\t string = string.replace(/[\\-_\\s]+(.)?/g, function(match, chr) {\n\t return chr ? chr.toUpperCase() : '';\n\t });\n\t // Ensure 1st char is always lowercase\n\t return string.substr(0, 1).toLowerCase() + string.substr(1);\n\t };\n\n\t var pascalize = function(string) {\n\t var camelized = camelize(string);\n\t // Ensure 1st char is always uppercase\n\t return camelized.substr(0, 1).toUpperCase() + camelized.substr(1);\n\t };\n\n\t var decamelize = function(string, options) {\n\t return separateWords(string, options).toLowerCase();\n\t };\n\n\t // Utilities\n\t // Taken from Underscore.js\n\n\t var toString = Object.prototype.toString;\n\n\t var _isFunction = function(obj) {\n\t return typeof(obj) === 'function';\n\t };\n\t var _isObject = function(obj) {\n\t return obj === Object(obj);\n\t };\n\t var _isArray = function(obj) {\n\t return toString.call(obj) == '[object Array]';\n\t };\n\t var _isDate = function(obj) {\n\t return toString.call(obj) == '[object Date]';\n\t };\n\t var _isRegExp = function(obj) {\n\t return toString.call(obj) == '[object RegExp]';\n\t };\n\t var _isBoolean = function(obj) {\n\t return toString.call(obj) == '[object Boolean]';\n\t };\n\n\t // Performant way to determine if obj coerces to a number\n\t var _isNumerical = function(obj) {\n\t obj = obj - 0;\n\t return obj === obj;\n\t };\n\n\t // Sets up function which handles processing keys\n\t // allowing the convert function to be modified by a callback\n\t var _processor = function(convert, options) {\n\t var callback = options && 'process' in options ? options.process : options;\n\n\t if(typeof(callback) !== 'function') {\n\t return convert;\n\t }\n\n\t return function(string, options) {\n\t return callback(string, convert, options);\n\t }\n\t };\n\n\t var humps = {\n\t camelize: camelize,\n\t decamelize: decamelize,\n\t pascalize: pascalize,\n\t depascalize: decamelize,\n\t camelizeKeys: function(object, options) {\n\t return _processKeys(_processor(camelize, options), object);\n\t },\n\t decamelizeKeys: function(object, options) {\n\t return _processKeys(_processor(decamelize, options), object, options);\n\t },\n\t pascalizeKeys: function(object, options) {\n\t return _processKeys(_processor(pascalize, options), object);\n\t },\n\t depascalizeKeys: function () {\n\t return this.decamelizeKeys.apply(this, arguments);\n\t }\n\t };\n\n\t if (module.exports) {\n\t module.exports = humps;\n\t } else {\n\t global.humps = humps;\n\t }\n\n\t})(commonjsGlobal);\n} (humps$1));\n\nvar humps = humps$1.exports;\n\nvar _excluded = [\"class\", \"style\", \"attrs\"];\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = humps.camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction classToObject(cls) {\n return cls.split(/\\s+/).reduce(function (acc, c) {\n acc[c] = true;\n return acc;\n }, {});\n}\n\nfunction combineClassObjects() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n\n return objs.reduce(function (acc, obj) {\n if (Array.isArray(obj)) {\n acc = acc.concat(obj);\n } else {\n acc.push(obj);\n }\n\n return acc;\n }, []);\n}\n\nfunction convert(h, element) {\n var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var children = (element.children || []).map(convert.bind(null, h));\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc['class'] = classToObject(val);\n break;\n\n case 'style':\n acc['style'] = styleToObject(val);\n break;\n\n default:\n acc.attrs[key] = val;\n }\n\n return acc;\n }, {\n 'class': {},\n style: {},\n attrs: {}\n });\n\n var _data$class = data.class,\n dClass = _data$class === void 0 ? {} : _data$class,\n _data$style = data.style,\n dStyle = _data$style === void 0 ? {} : _data$style,\n _data$attrs = data.attrs,\n dAttrs = _data$attrs === void 0 ? {} : _data$attrs,\n remainingData = _objectWithoutProperties(data, _excluded);\n\n if (typeof element === 'string') {\n return element;\n } else {\n return h(element.tag, _objectSpread2(_objectSpread2({\n class: combineClassObjects(mixins.class, dClass),\n style: _objectSpread2(_objectSpread2({}, mixins.style), dStyle),\n attrs: _objectSpread2(_objectSpread2({}, mixins.attrs), dAttrs)\n }, remainingData), {}, {\n props: props\n }), children);\n }\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction objectWithKey(key, value) {\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\nfunction classList(props) {\n var _classes;\n\n var classes = (_classes = {\n 'fa-spin': props.spin,\n 'fa-spin-pulse': props.spinPulse,\n 'fa-spin-reverse': props.spinReverse,\n 'fa-pulse': props.pulse,\n 'fa-beat': props.beat,\n 'fa-fade': props.fade,\n 'fa-flash': props.flash,\n 'fa-fw': props.fixedWidth,\n 'fa-border': props.border,\n 'fa-li': props.listItem,\n 'fa-inverse': props.inverse,\n 'fa-flip': props.flip === true,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(props.size), props.size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(props.rotation), props.rotation !== null), _defineProperty(_classes, \"fa-pull-\".concat(props.pull), props.pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _defineProperty(_classes, 'fa-bounce', props.bounce), _defineProperty(_classes, 'fa-shake', props.shake), _defineProperty(_classes, 'fa-beat-fade', props.beatFade), _classes);\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\nfunction addStaticClass(to, what) {\n var val = (to || '').length === 0 ? [] : [to];\n return val.concat(what).join(' ');\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n }\n\n if (icon === null) {\n return null;\n }\n\n if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n }\n\n if (Array.isArray(icon) && icon.length === 2) {\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n }\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\nvar FontAwesomeIcon = {\n name: 'FontAwesomeIcon',\n functional: true,\n props: {\n beat: {\n type: Boolean,\n default: false\n },\n border: {\n type: Boolean,\n default: false\n },\n fade: {\n type: Boolean,\n default: false\n },\n fixedWidth: {\n type: Boolean,\n default: false\n },\n flash: {\n type: Boolean,\n default: false\n },\n flip: {\n type: [Boolean, String],\n default: false,\n validator: function validator(value) {\n return [true, false, 'horizontal', 'vertical', 'both'].indexOf(value) > -1;\n }\n },\n icon: {\n type: [Object, Array, String],\n required: true\n },\n mask: {\n type: [Object, Array, String],\n default: null\n },\n listItem: {\n type: Boolean,\n default: false\n },\n pull: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['right', 'left'].indexOf(value) > -1;\n }\n },\n pulse: {\n type: Boolean,\n default: false\n },\n rotation: {\n type: [String, Number],\n default: null,\n validator: function validator(value) {\n return [90, 180, 270].indexOf(parseInt(value, 10)) > -1;\n }\n },\n swapOpacity: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x'].indexOf(value) > -1;\n }\n },\n spin: {\n type: Boolean,\n default: false\n },\n spinPulse: {\n type: Boolean,\n default: false\n },\n spinReverse: {\n type: Boolean,\n default: false\n },\n transform: {\n type: [String, Object],\n default: null\n },\n symbol: {\n type: [Boolean, String],\n default: false\n },\n title: {\n type: String,\n default: null\n },\n inverse: {\n type: Boolean,\n default: false\n },\n bounce: {\n type: Boolean,\n default: false\n },\n shake: {\n type: Boolean,\n default: false\n },\n beatFade: {\n type: Boolean,\n default: false\n }\n },\n render: function render(createElement, context) {\n var props = context.props;\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n title = props.title;\n var icon$1 = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', classList(props));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(icon$1, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title\n }));\n\n if (!renderedIcon) {\n return log('Could not find one or more icon(s)', icon$1, mask);\n }\n\n var abstract = renderedIcon.abstract;\n var convertCurry = convert.bind(null, createElement);\n return convertCurry(abstract[0], {}, context.data);\n }\n};\n\nvar FontAwesomeLayers = {\n name: 'FontAwesomeLayers',\n functional: true,\n props: {\n fixedWidth: {\n type: Boolean,\n default: false\n }\n },\n render: function render(createElement, context) {\n var familyPrefix = config.familyPrefix;\n var staticClass = context.data.staticClass;\n var classes = [\"\".concat(familyPrefix, \"-layers\")].concat(_toConsumableArray(context.props.fixedWidth ? [\"\".concat(familyPrefix, \"-fw\")] : []));\n return createElement('div', _objectSpread2(_objectSpread2({}, context.data), {}, {\n staticClass: addStaticClass(staticClass, classes)\n }), context.children);\n }\n};\n\nvar FontAwesomeLayersText = {\n name: 'FontAwesomeLayersText',\n functional: true,\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n transform: {\n type: [String, Object],\n default: null\n },\n counter: {\n type: Boolean,\n default: false\n },\n position: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['bottom-left', 'bottom-right', 'top-left', 'top-right'].indexOf(value) > -1;\n }\n }\n },\n render: function render(createElement, context) {\n var familyPrefix = config.familyPrefix;\n var props = context.props;\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(props.counter ? [\"\".concat(familyPrefix, \"-layers-counter\")] : []), _toConsumableArray(props.position ? [\"\".concat(familyPrefix, \"-layers-\").concat(props.position)] : [])));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var renderedText = text(props.value.toString(), _objectSpread2(_objectSpread2({}, transform), classes));\n var abstract = renderedText.abstract;\n\n if (props.counter) {\n abstract[0].attributes.class = abstract[0].attributes.class.replace('fa-layers-text', '');\n }\n\n var convertCurry = convert.bind(null, createElement);\n return convertCurry(abstract[0], {}, context.data);\n }\n};\n\nexport { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText };\n","/*!\n * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\nconst prefix = \"far\";\nconst faTrashCan = {\n prefix: 'far',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nconst faTrashAlt = faTrashCan;\nconst faMessage = {\n prefix: 'far',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M160 368c26.5 0 48 21.5 48 48l0 16 72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6L448 368c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 48c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l96 0zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3l0-21.3 0-6.4 0-.3 0-4 0-48-48 0-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-138.7 0L208 492z\"]\n};\nconst faCommentAlt = faMessage;\nconst faFileLines = {\n prefix: 'far',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nconst faFileAlt = faFileLines;\nconst faFileText = faFileLines;\nconst faCalendarDays = {\n prefix: 'far',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l80 0 0 56-80 0 0-56zm0 104l80 0 0 64-80 0 0-64zm128 0l96 0 0 64-96 0 0-64zm144 0l80 0 0 64-80 0 0-64zm80-48l-80 0 0-56 80 0 0 56zm0 160l0 40c0 8.8-7.2 16-16 16l-64 0 0-56 80 0zm-128 0l0 56-96 0 0-56 96 0zm-144 0l0 56-64 0c-8.8 0-16-7.2-16-16l0-40 80 0zM272 248l-96 0 0-56 96 0 0 56z\"]\n};\nconst faCalendarAlt = faCalendarDays;\nconst faHandPointRight = {\n prefix: 'far',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"]\n};\nconst faFaceSmileBeam = {\n prefix: 'far',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faSmileBeam = faFaceSmileBeam;\nconst faFaceGrinStars = {\n prefix: 'far',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z\"]\n};\nconst faGrinStars = faFaceGrinStars;\nconst faAddressBook = {\n prefix: 'far',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"]\n};\nconst faContactBook = faAddressBook;\nconst faComments = {\n prefix: 'far',\n iconName: 'comments',\n icon: [640, 512, [128490, 61670], \"f086\", \"M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z\"]\n};\nconst faPaste = {\n prefix: 'far',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M104.6 48L64 48C28.7 48 0 76.7 0 112L0 384c0 35.3 28.7 64 64 64l96 0 0-48-96 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l16 0c0 17.7 14.3 32 32 32l72.4 0C202 108.4 227.6 96 256 96l62 0c-7.1-27.6-32.2-48-62-48l-40.6 0C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L464 243.9 464 448c0 8.8-7.2 16-16 16zM256 512l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L256 128c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64z\"]\n};\nconst faFileClipboard = faPaste;\nconst faFaceGrinTongueSquint = {\n prefix: 'far',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-23.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 22.9c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGrinTongueSquint = faFaceGrinTongueSquint;\nconst faFaceFlushed = {\n prefix: 'far',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"]\n};\nconst faFlushed = faFaceFlushed;\nconst faSquareCaretRight = {\n prefix: 'far',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nconst faCaretSquareRight = faSquareCaretRight;\nconst faSquareMinus = {\n prefix: 'far',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM152 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faMinusSquare = faSquareMinus;\nconst faCompass = {\n prefix: 'far',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faSquareCaretDown = {\n prefix: 'far',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nconst faCaretSquareDown = faSquareCaretDown;\nconst faFaceKissBeam = {\n prefix: 'far',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faKissBeam = faFaceKissBeam;\nconst faLightbulb = {\n prefix: 'far',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z\"]\n};\nconst faFlag = {\n prefix: 'far',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 64 0 350.5 0 400l0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52l0-28zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5l0-237z\"]\n};\nconst faSquareCheck = {\n prefix: 'far',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faCheckSquare = faSquareCheck;\nconst faCircleDot = {\n prefix: 'far',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nconst faDotCircle = faCircleDot;\nconst faFaceDizzy = {\n prefix: 'far',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faDizzy = faFaceDizzy;\nconst faFutbol = {\n prefix: 'far',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M435.4 361.4l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.2zM256 48l.9 0-1.8 0 .9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.6 2-4 2.9l4-2.9zm75.2-226.7l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nconst faFutbolBall = faFutbol;\nconst faSoccerBall = faFutbol;\nconst faPenToSquare = {\n prefix: 'far',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"]\n};\nconst faEdit = faPenToSquare;\nconst faHourglassHalf = {\n prefix: 'far',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z\"]\n};\nconst faHourglass2 = faHourglassHalf;\nconst faEyeSlash = {\n prefix: 'far',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z\"]\n};\nconst faHand = {\n prefix: 'far',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75l8.5 0 8 0c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.9 0 .1 0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 55.9c0 0 0 .1 0 .1l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-71.9c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2l-4.9 0-8.5 0c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2L160 96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9L192 232c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"]\n};\nconst faHandPaper = faHand;\nconst faHandSpock = {\n prefix: 'far',\n iconName: 'hand-spock',\n icon: [576, 512, [128406], \"f259\", \"M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z\"]\n};\nconst faFaceKiss = {\n prefix: 'far',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faKiss = faFaceKiss;\nconst faFaceGrinTongue = {\n prefix: 'far',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-52.4c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27l0 52.5c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nconst faGrinTongue = faFaceGrinTongue;\nconst faChessBishop = {\n prefix: 'far',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8L48 352l48 0 0-27c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3l0 27 48 0 0-13.3c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24L160 0 104 0zM52.7 464l16.6-32 181.6 0 16.6 32L52.7 464zm207.9-80l-201 0c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512l238.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z\"]\n};\nconst faFaceGrinWink = {\n prefix: 'far',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faGrinWink = faFaceGrinWink;\nconst faFaceGrinWide = {\n prefix: 'far',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"]\n};\nconst faGrinAlt = faFaceGrinWide;\nconst faFaceFrownOpen = {\n prefix: 'far',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faFrownOpen = faFaceFrownOpen;\nconst faHandPointUp = {\n prefix: 'far',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-32L96 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-40 0zM0 320s0 0 0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64l0 64 0 24c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48 0 16c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-2 0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 0-16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"]\n};\nconst faBookmark = {\n prefix: 'far',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 48C0 21.5 21.5 0 48 0l0 48 0 393.4 130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4 336 48 48 48 48 0 336 0c26.5 0 48 21.5 48 48l0 440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488L0 48z\"]\n};\nconst faHandPointDown = {\n prefix: 'far',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"]\n};\nconst faFolder = {\n prefix: 'far',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M0 96C0 60.7 28.7 32 64 32l132.1 0c19.1 0 37.4 7.6 50.9 21.1L289.9 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16l-161.4 0c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7L64 80z\"]\n};\nconst faFolderBlank = faFolder;\nconst faUser = {\n prefix: 'far',\n iconName: 'user',\n icon: [448, 512, [128100, 62144], \"f007\", \"M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z\"]\n};\nconst faSquareCaretLeft = {\n prefix: 'far',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nconst faCaretSquareLeft = faSquareCaretLeft;\nconst faStar = {\n prefix: 'far',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z\"]\n};\nconst faChessKnight = {\n prefix: 'far',\n iconName: 'chess-knight',\n icon: [448, 512, [9822], \"f441\", \"M226.6 48L117.3 48l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1l-50.7 0c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0L226.6 0C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352l-48.8 0 24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464l310.7 0-16.6-32L85.2 432zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L56.8 512C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384l297 0c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z\"]\n};\nconst faFaceLaughSquint = {\n prefix: 'far',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faLaughSquint = faFaceLaughSquint;\nconst faFaceLaugh = {\n prefix: 'far',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faLaugh = faFaceLaugh;\nconst faFolderOpen = {\n prefix: 'far',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M384 480l48 0c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224l-400 0c-11.4 0-21.9 6-27.6 15.9L48 357.1 48 96c0-8.8 7.2-16 16-16l117.5 0c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8L416 144c8.8 0 16 7.2 16 16l0 32 48 0 0-32c0-35.3-28.7-64-64-64L298.5 96c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l23.7 0L384 480z\"]\n};\nconst faClipboard = {\n prefix: 'far',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M280 64l40 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l40 0 9.6 0C121 27.5 153.3 0 192 0s71 27.5 78.4 64l9.6 0zM64 112c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16l-16 0 0 24c0 13.3-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24l0-24-16 0zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nconst faChessQueen = {\n prefix: 'far',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352l55.4 0-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352l55.4 0 93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432l245.6 0 16.6 32-278.7 0 16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"]\n};\nconst faHandBackFist = {\n prefix: 'far',\n iconName: 'hand-back-fist',\n icon: [448, 512, [\"hand-rock\"], \"f255\", \"M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16l0 104c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6L304 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-117.8c38-20.1 64-60.1 64-106.2l0-104c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64l0 64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6l0 12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3L128 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-128.1c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4l0-12.8c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6l0 32.3c0 8.8 7.2 16 16 16s16-7.2 16-16l0-65.7 0-14.3 0-64z\"]\n};\nconst faHandRock = faHandBackFist;\nconst faSquareCaretUp = {\n prefix: 'far',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nconst faCaretSquareUp = faSquareCaretUp;\nconst faChartBar = {\n prefix: 'far',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M24 32c13.3 0 24 10.7 24 24l0 352c0 13.3 10.7 24 24 24l416 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L72 480c-39.8 0-72-32.2-72-72L0 56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faBarChart = faChartBar;\nconst faWindowRestore = {\n prefix: 'far',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M432 48L208 48c-17.7 0-32 14.3-32 32l0 16-48 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-48 16 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-192L48 256l0 192zM64 128l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64z\"]\n};\nconst faSquarePlus = {\n prefix: 'far',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nconst faPlusSquare = faSquarePlus;\nconst faImage = {\n prefix: 'far',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M448 80c8.8 0 16 7.2 16 16l0 319.8-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3L48 96c0-8.8 7.2-16 16-16l384 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nconst faFolderClosed = {\n prefix: 'far',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M251.7 127.6s0 0 0 0c10.5 10.5 24.7 16.4 39.6 16.4L448 144c8.8 0 16 7.2 16 16l0 32L48 192l0-96c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240l416 0 0 176c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-176zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L291.3 96c-2.1 0-4.2-.8-5.7-2.3z\"]\n};\nconst faLemon = {\n prefix: 'far',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nconst faHandshake = {\n prefix: 'far',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176L96 176l0 128c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7c0 0 0 0 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128l38.9 0 40 0 40 0c8.8 0 16 7.2 16 16l0 208c0 17.7-14.3 32-32 32l-32 0c-11.8 0-22.2-6.4-27.7-16l-84.9 0c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384l-32 0c-17.7 0-32-14.3-32-32L0 144c0-8.8 7.2-16 16-16l40 0 40 0 19.8 0c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64L259 64c4.4 0 8.9 .2 13.2 .6zM544 320l0-144-48 0c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1l74.8 0zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nconst faGem = {\n prefix: 'far',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M168.5 72L256 165l87.5-93-175 0zM383.9 99.1L311.5 176l129 0L383.9 99.1zm50 124.9L256 224 78.1 224 256 420.3 433.9 224zM71.5 176l129 0L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"]\n};\nconst faCirclePlay = {\n prefix: 'far',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z\"]\n};\nconst faPlayCircle = faCirclePlay;\nconst faCircleCheck = {\n prefix: 'far',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"]\n};\nconst faCheckCircle = faCircleCheck;\nconst faCircleStop = {\n prefix: 'far',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"]\n};\nconst faStopCircle = faCircleStop;\nconst faIdBadge = {\n prefix: 'far',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faFaceLaughBeam = {\n prefix: 'far',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faLaughBeam = faFaceLaughBeam;\nconst faRegistered = {\n prefix: 'far',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152l0 112 0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 60.9 0 37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80l-88 0c-13.3 0-24 10.7-24 24zm48 88l0-64 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0z\"]\n};\nconst faAddressCard = {\n prefix: 'far',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nconst faContactCard = faAddressCard;\nconst faVcard = faAddressCard;\nconst faFaceTired = {\n prefix: 'far',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faTired = faFaceTired;\nconst faFontAwesome = {\n prefix: 'far',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 48 0 256 0 48 0 64 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0L388.1 252.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"]\n};\nconst faFontAwesomeFlag = faFontAwesome;\nconst faFontAwesomeLogoFull = faFontAwesome;\nconst faFaceSmileWink = {\n prefix: 'far',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faSmileWink = faFaceSmileWink;\nconst faFileWord = {\n prefix: 'far',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z\"]\n};\nconst faFilePowerpoint = {\n prefix: 'far',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm72 208c-13.3 0-24 10.7-24 24l0 104 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 44 0c42 0 76-34 76-76s-34-76-76-76l-68 0zm68 104l-44 0 0-56 44 0c15.5 0 28 12.5 28 28s-12.5 28-28 28z\"]\n};\nconst faEnvelopeOpen = {\n prefix: 'far',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5l0 13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1l0-13.6c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2 464 456c0 4.4-3.6 8-8 8L56 464c-4.4 0-8-3.6-8-8l0-179.8zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5L0 456c0 30.9 25.1 56 56 56l400 0c30.9 0 56-25.1 56-56l0-255.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z\"]\n};\nconst faFileZipper = {\n prefix: 'far',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l48 0c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l48 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm48 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8l-14.8 0c-14.5 0-27.2 9.7-30.9 23.8zM128 336l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nconst faFileArchive = faFileZipper;\nconst faSquare = {\n prefix: 'far',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nconst faSnowflake = {\n prefix: 'far',\n iconName: 'snowflake',\n icon: [448, 512, [10052, 10054], \"f2dc\", \"M224 0c13.3 0 24 10.7 24 24l0 46.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57 0 76.5 66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6l0 76.5 57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23 0 46.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-46.1-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-76.5-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4l0-76.5L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L200 24c0-13.3 10.7-24 24-24z\"]\n};\nconst faNewspaper = {\n prefix: 'far',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nconst faFaceKissWinkHeart = {\n prefix: 'far',\n iconName: 'face-kiss-wink-heart',\n icon: [512, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"]\n};\nconst faKissWinkHeart = faFaceKissWinkHeart;\nconst faStarHalfStroke = {\n prefix: 'far',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M309.5 13.5C305.5 5.2 297.1 0 287.9 0s-17.6 5.2-21.6 13.5L197.7 154.8 44.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L142.2 328.4 116 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L433.6 328.4 544.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L378.1 154.8 309.5 13.5zM288 384.7l0-305.6 52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L391 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L299.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z\"]\n};\nconst faStarHalfAlt = faStarHalfStroke;\nconst faFileExcel = {\n prefix: 'far',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z\"]\n};\nconst faFaceGrinBeam = {\n prefix: 'far',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"]\n};\nconst faGrinBeam = faFaceGrinBeam;\nconst faObjectUngroup = {\n prefix: 'far',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40l45.4 0c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-36.7-48 0 0 36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L448 200l0 16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm307-18.5a16 16 0 1 1 -5.5 31.5 16 16 0 1 1 5.5-31.5z\"]\n};\nconst faCircleRight = {\n prefix: 'far',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z\"]\n};\nconst faArrowAltCircleRight = faCircleRight;\nconst faFaceRollingEyes = {\n prefix: 'far',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nconst faMehRollingEyes = faFaceRollingEyes;\nconst faObjectGroup = {\n prefix: 'far',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16l344.4 0c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8l0 280.4c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16l-344.4 0c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8l0-280.4zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3l0 261.5c13.6 4.8 24.4 15.6 29.3 29.3l325.5 0c4.8-13.6 15.6-24.4 29.3-29.3l0-261.5c-13.6-4.8-24.4-15.6-29.3-29.3L125.3 96zm2.7 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z\"]\n};\nconst faHeart = {\n prefix: 'far',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z\"]\n};\nconst faFaceSurprise = {\n prefix: 'far',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nconst faSurprise = faFaceSurprise;\nconst faCirclePause = {\n prefix: 'far',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nconst faPauseCircle = faCirclePause;\nconst faCircle = {\n prefix: 'far',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"]\n};\nconst faCircleUp = {\n prefix: 'far',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z\"]\n};\nconst faArrowAltCircleUp = faCircleUp;\nconst faFileAudio = {\n prefix: 'far',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 464l256 0c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM192 272l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376 112 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l17.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z\"]\n};\nconst faFileImage = {\n prefix: 'far',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2l48 0 32 0 40 0 72 0c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z\"]\n};\nconst faCircleQuestion = {\n prefix: 'far',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faQuestionCircle = faCircleQuestion;\nconst faFaceMehBlank = {\n prefix: 'far',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faMehBlank = faFaceMehBlank;\nconst faEye = {\n prefix: 'far',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"]\n};\nconst faFaceSadCry = {\n prefix: 'far',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nconst faSadCry = faFaceSadCry;\nconst faFileCode = {\n prefix: 'far',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z\"]\n};\nconst faWindowMaximize = {\n prefix: 'far',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M.3 89.5C.1 91.6 0 93.8 0 96L0 224 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192 0-128c0-35.3-28.7-64-64-64L64 32c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224l416 0 0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z\"]\n};\nconst faFaceFrown = {\n prefix: 'far',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faFrown = faFaceFrown;\nconst faFloppyDisk = {\n prefix: 'far',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M48 96l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-245.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l245.5 0c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8L320 184c0 13.3-10.7 24-24 24l-192 0c-13.3 0-24-10.7-24-24L80 80 64 80c-8.8 0-16 7.2-16 16zm80-16l0 80 144 0 0-80L128 80zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faSave = faFloppyDisk;\nconst faCommentDots = {\n prefix: 'far',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faCommenting = faCommentDots;\nconst faFaceGrinSquint = {\n prefix: 'far',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"]\n};\nconst faGrinSquint = faFaceGrinSquint;\nconst faHandPointer = {\n prefix: 'far',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16 0 104c0 39.8-32.2 72-72 72l-56 0-59.8 0-.9 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23l0-19.9 0-256zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2l.9 0 59.8 0 56 0c66.3 0 120-53.7 120-120l0-104 0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nconst faHandScissors = {\n prefix: 'far',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"]\n};\nconst faFaceGrinTears = {\n prefix: 'far',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0zm160 0s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0z\"]\n};\nconst faGrinTears = faFaceGrinTears;\nconst faCalendarXmark = {\n prefix: 'far',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faCalendarTimes = faCalendarXmark;\nconst faFileVideo = {\n prefix: 'far',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 16 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96z\"]\n};\nconst faFilePdf = {\n prefix: 'far',\n iconName: 'file-pdf',\n icon: [512, 512, [], \"f1c1\", \"M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"]\n};\nconst faComment = {\n prefix: 'far',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z\"]\n};\nconst faEnvelope = {\n prefix: 'far',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"]\n};\nconst faHourglass = {\n prefix: 'far',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"]\n};\nconst faHourglassEmpty = faHourglass;\nconst faCalendarCheck = {\n prefix: 'far',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nconst faHardDrive = {\n prefix: 'far',\n iconName: 'hard-drive',\n icon: [512, 512, [128436, \"hdd\"], \"f0a0\", \"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l384 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 224 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nconst faHdd = faHardDrive;\nconst faFaceGrinSquintTears = {\n prefix: 'far',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z\"]\n};\nconst faGrinSquintTears = faFaceGrinSquintTears;\nconst faRectangleList = {\n prefix: 'far',\n iconName: 'rectangle-list',\n icon: [576, 512, [\"list-alt\"], \"f022\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nconst faListAlt = faRectangleList;\nconst faCalendarPlus = {\n prefix: 'far',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256zm176 40c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nconst faCircleLeft = {\n prefix: 'far',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3l0-57.7 96 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-96 0 0-57.7c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z\"]\n};\nconst faArrowAltCircleLeft = faCircleLeft;\nconst faMoneyBill1 = {\n prefix: 'far',\n iconName: 'money-bill-1',\n icon: [576, 512, [\"money-bill-alt\"], \"f3d1\", \"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l352 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-352 0zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16l0 64-8 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l24 0 24 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-8 0 0-80c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faMoneyBillAlt = faMoneyBill1;\nconst faClock = {\n prefix: 'far',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nconst faClockFour = faClock;\nconst faKeyboard = {\n prefix: 'far',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"]\n};\nconst faClosedCaptioning = {\n prefix: 'far',\n iconName: 'closed-captioning',\n icon: [576, 512, [], \"f20a\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"]\n};\nconst faImages = {\n prefix: 'far',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M160 80l352 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-21.2 0L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336 160 336c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16zM96 96l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nconst faFaceGrin = {\n prefix: 'far',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrin = faFaceGrin;\nconst faFaceMeh = {\n prefix: 'far',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nconst faMeh = faFaceMeh;\nconst faIdCard = {\n prefix: 'far',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M528 160l0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16l0-256 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nconst faDriversLicense = faIdCard;\nconst faSun = {\n prefix: 'far',\n iconName: 'sun',\n icon: [512, 512, [9728], \"f185\", \"M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nconst faFaceLaughWink = {\n prefix: 'far',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"]\n};\nconst faLaughWink = faFaceLaughWink;\nconst faCircleDown = {\n prefix: 'far',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3L304 256l0-96c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 96-57.7 0C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z\"]\n};\nconst faArrowAltCircleDown = faCircleDown;\nconst faThumbsDown = {\n prefix: 'far',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16l-97.5 0c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8L384 32c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0z\"]\n};\nconst faChessPawn = {\n prefix: 'far',\n iconName: 'chess-pawn',\n icon: [320, 512, [9823], \"f443\", \"M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120l-12.6 0 10.7 80-48.4 0L195 272l-35 0-35 0-10.7 80-48.4 0 10.7-80L64 272c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464l214.7 0-16.6-32L69.2 432 52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L40.8 512C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384l201 0z\"]\n};\nconst faCreditCard = {\n prefix: 'far',\n iconName: 'credit-card',\n icon: [576, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M512 80c8.8 0 16 7.2 16 16l0 32L48 128l0-32c0-8.8 7.2-16 16-16l448 0zm16 144l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"]\n};\nconst faCreditCardAlt = faCreditCard;\nconst faBell = {\n prefix: 'far',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416l400 0c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4l0-25.4c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112l0 25.4c0 47.9 13.9 94.6 39.7 134.6L72.3 368C98.1 328 112 281.3 112 233.4l0-25.4c0-61.9 50.1-112 112-112zm64 352l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nconst faFile = {\n prefix: 'far',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nconst faHospital = {\n prefix: 'far',\n iconName: 'hospital',\n icon: [640, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M232 0c-39.8 0-72 32.2-72 72l0 8L72 80C32.2 80 0 112.2 0 152L0 440c0 39.8 32.2 72 72 72l.2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0s0 0 0 0l272 0 8 0s0 0 0 0l104 0c39.8 0 72-32.2 72-72l0-288c0-39.8-32.2-72-72-72l-88 0 0-8c0-39.8-32.2-72-72-72L232 0zM480 128l88 0c13.3 0 24 10.7 24 24l0 40-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 104c0 13.3-10.7 24-24 24l-88 0 0-128 0-208zM72 128l88 0 0 336c0 0 0 0-.1 0l-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0c-13.2 0-24-10.7-24-24l0-104 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-48 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-40c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24l176 0c13.3 0 24 10.7 24 24l0 264 0 128-64 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 64-64 0 0-392zm88 24l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nconst faHospitalAlt = faHospital;\nconst faHospitalWide = faHospital;\nconst faChessRook = {\n prefix: 'far',\n iconName: 'chess-rook',\n icon: [448, 512, [9820], \"f447\", \"M80 80l0 112c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352l-48.3 0 9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192L32 72c0-22.1 17.9-40 40-40l304 0c22.1 0 40 17.9 40 40l0 120c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85-48.3 0-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4l0-112-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24L80 80zm4.7 384l278.7 0-16.6-32-245.6 0L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L72.8 512C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384l265 0zM208 288c-8.8 0-16-7.2-16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 8.8-7.2 16-16 16l-32 0z\"]\n};\nconst faStarHalf = {\n prefix: 'far',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4l0 384.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.3c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4 0-265.9z\"]\n};\nconst faChessKing = {\n prefix: 'far',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 40L59.6 144C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352l52.3 0L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6L224 192l164.4 0c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352l52.3 0 54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6L248 144l0-40 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM101.2 432l245.6 0 16.6 32L84.7 464l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"]\n};\nconst faCircleUser = {\n prefix: 'far',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"]\n};\nconst faUserCircle = faCircleUser;\nconst faCopy = {\n prefix: 'far',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z\"]\n};\nconst faShareFromSquare = {\n prefix: 'far',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M400 255.4l0-15.4 0-32c0-8.8-7.2-16-16-16l-32 0-16 0-46.5 0c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112l48 0 16 0 32 0c8.8 0 16-7.2 16-16l0-32 0-15.4L506 160 400 255.4zM336 240l16 0 0 48c0 17.7 14.3 32 32 32l3.7 0c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7L352 80l-16 0-32 0-16 0c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5c0 0 0 0 0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5l14.5 0 32 0zM72 32C32.2 32 0 64.2 0 104L0 440c0 39.8 32.2 72 72 72l336 0c39.8 0 72-32.2 72-72l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3-10.7 24-24 24L72 464c-13.3 0-24-10.7-24-24l0-336c0-13.3 10.7-24 24-24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32z\"]\n};\nconst faShareSquare = faShareFromSquare;\nconst faCopyright = {\n prefix: 'far',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z\"]\n};\nconst faMap = {\n prefix: 'far',\n iconName: 'map',\n icon: [576, 512, [128506, 62072], \"f279\", \"M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z\"]\n};\nconst faBellSlash = {\n prefix: 'far',\n iconName: 'bell-slash',\n icon: [640, 512, [128277, 61943], \"f1f6\", \"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4l0-33.4c0-75.8-55.5-138.6-128-150.1L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 17.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96l8 0 8 0c57.4 0 104 46.6 104 104l0 33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48-176.9 0c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1l0 11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l286.2 0zM384 448l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"]\n};\nconst faHandLizard = {\n prefix: 'far',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7L281.1 384 136 384c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"]\n};\nconst faFaceSmile = {\n prefix: 'far',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faSmile = faFaceSmile;\nconst faHandPeace = {\n prefix: 'far',\n iconName: 'hand-peace',\n icon: [512, 512, [9996], \"f25b\", \"M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320c0 0 0 0 0 0l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-72 0-16 0-32c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192l0 48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240 144 240c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24s0 0 0 0c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16z\"]\n};\nconst faFaceGrinHearts = {\n prefix: 'far',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"]\n};\nconst faGrinHearts = faFaceGrinHearts;\nconst faBuilding = {\n prefix: 'far',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-64c0-26.5 21.5-48 48-48s48 21.5 48 48l0 64 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm88 40c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zM232 88l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zm144-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16z\"]\n};\nconst faFaceGrinBeamSweat = {\n prefix: 'far',\n iconName: 'face-grin-beam-sweat',\n icon: [512, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z\"]\n};\nconst faGrinBeamSweat = faFaceGrinBeamSweat;\nconst faMoon = {\n prefix: 'far',\n iconName: 'moon',\n icon: [384, 512, [127769, 9214], \"f186\", \"M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0l-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z\"]\n};\nconst faCalendar = {\n prefix: 'far',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256z\"]\n};\nconst faFaceGrinTongueWink = {\n prefix: 'far',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4l0-52.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1l0 52.4c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6l0 37.4z\"]\n};\nconst faGrinTongueWink = faFaceGrinTongueWink;\nconst faClone = {\n prefix: 'far',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M64 464l224 0c8.8 0 16-7.2 16-16l0-64 48 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 0 48-64 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zM224 304l224 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16L224 48c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zm-64-16l0-224c0-35.3 28.7-64 64-64L448 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-224 0c-35.3 0-64-28.7-64-64z\"]\n};\nconst faFaceAngry = {\n prefix: 'far',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nconst faAngry = faFaceAngry;\nconst faRectangleXmark = {\n prefix: 'far',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nconst faRectangleTimes = faRectangleXmark;\nconst faTimesRectangle = faRectangleXmark;\nconst faWindowClose = faRectangleXmark;\nconst faPaperPlane = {\n prefix: 'far',\n iconName: 'paper-plane',\n icon: [512, 512, [61913], \"f1d8\", \"M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\"]\n};\nconst faLifeRing = {\n prefix: 'far',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nconst faFaceGrimace = {\n prefix: 'far',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0-48-8 0zm40 48l32 0 0-48-32 0 0 48zm96 0l0-48-32 0 0 48 32 0zm32 0l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 48zM168 288l176 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-176 0c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nconst faGrimace = faFaceGrimace;\nconst faCalendarMinus = {\n prefix: 'far',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM296 352l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nconst faCircleXmark = {\n prefix: 'far',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nconst faTimesCircle = faCircleXmark;\nconst faXmarkCircle = faCircleXmark;\nconst faThumbsUp = {\n prefix: 'far',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16l-97.5 0c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8l97.5 0c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32l-64 0z\"]\n};\nconst faWindowMinimize = {\n prefix: 'far',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 432z\"]\n};\nconst faSquareFull = {\n prefix: 'far',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M464 48l0 416L48 464 48 48l416 0zM48 0L0 0 0 48 0 464l0 48 48 0 416 0 48 0 0-48 0-416 0-48L464 0 48 0z\"]\n};\nconst faNoteSticky = {\n prefix: 'far',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l224 0 0-80c0-17.7 14.3-32 32-32l80 0 0-224c0-8.8-7.2-16-16-16L64 80zM288 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 224 0 5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7l-5.5 0z\"]\n};\nconst faStickyNote = faNoteSticky;\nconst faFaceSadTear = {\n prefix: 'far',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nconst faSadTear = faFaceSadTear;\nconst faHandPointLeft = {\n prefix: 'far',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"]\n};\nvar icons = {\n faTrashCan,\n faTrashAlt,\n faMessage,\n faCommentAlt,\n faFileLines,\n faFileAlt,\n faFileText,\n faCalendarDays,\n faCalendarAlt,\n faHandPointRight,\n faFaceSmileBeam,\n faSmileBeam,\n faFaceGrinStars,\n faGrinStars,\n faAddressBook,\n faContactBook,\n faComments,\n faPaste,\n faFileClipboard,\n faFaceGrinTongueSquint,\n faGrinTongueSquint,\n faFaceFlushed,\n faFlushed,\n faSquareCaretRight,\n faCaretSquareRight,\n faSquareMinus,\n faMinusSquare,\n faCompass,\n faSquareCaretDown,\n faCaretSquareDown,\n faFaceKissBeam,\n faKissBeam,\n faLightbulb,\n faFlag,\n faSquareCheck,\n faCheckSquare,\n faCircleDot,\n faDotCircle,\n faFaceDizzy,\n faDizzy,\n faFutbol,\n faFutbolBall,\n faSoccerBall,\n faPenToSquare,\n faEdit,\n faHourglassHalf,\n faHourglass2,\n faEyeSlash,\n faHand,\n faHandPaper,\n faHandSpock,\n faFaceKiss,\n faKiss,\n faFaceGrinTongue,\n faGrinTongue,\n faChessBishop,\n faFaceGrinWink,\n faGrinWink,\n faFaceGrinWide,\n faGrinAlt,\n faFaceFrownOpen,\n faFrownOpen,\n faHandPointUp,\n faBookmark,\n faHandPointDown,\n faFolder,\n faFolderBlank,\n faUser,\n faSquareCaretLeft,\n faCaretSquareLeft,\n faStar,\n faChessKnight,\n faFaceLaughSquint,\n faLaughSquint,\n faFaceLaugh,\n faLaugh,\n faFolderOpen,\n faClipboard,\n faChessQueen,\n faHandBackFist,\n faHandRock,\n faSquareCaretUp,\n faCaretSquareUp,\n faChartBar,\n faBarChart,\n faWindowRestore,\n faSquarePlus,\n faPlusSquare,\n faImage,\n faFolderClosed,\n faLemon,\n faHandshake,\n faGem,\n faCirclePlay,\n faPlayCircle,\n faCircleCheck,\n faCheckCircle,\n faCircleStop,\n faStopCircle,\n faIdBadge,\n faFaceLaughBeam,\n faLaughBeam,\n faRegistered,\n faAddressCard,\n faContactCard,\n faVcard,\n faFaceTired,\n faTired,\n faFontAwesome,\n faFontAwesomeFlag,\n faFontAwesomeLogoFull,\n faFaceSmileWink,\n faSmileWink,\n faFileWord,\n faFilePowerpoint,\n faEnvelopeOpen,\n faFileZipper,\n faFileArchive,\n faSquare,\n faSnowflake,\n faNewspaper,\n faFaceKissWinkHeart,\n faKissWinkHeart,\n faStarHalfStroke,\n faStarHalfAlt,\n faFileExcel,\n faFaceGrinBeam,\n faGrinBeam,\n faObjectUngroup,\n faCircleRight,\n faArrowAltCircleRight,\n faFaceRollingEyes,\n faMehRollingEyes,\n faObjectGroup,\n faHeart,\n faFaceSurprise,\n faSurprise,\n faCirclePause,\n faPauseCircle,\n faCircle,\n faCircleUp,\n faArrowAltCircleUp,\n faFileAudio,\n faFileImage,\n faCircleQuestion,\n faQuestionCircle,\n faFaceMehBlank,\n faMehBlank,\n faEye,\n faFaceSadCry,\n faSadCry,\n faFileCode,\n faWindowMaximize,\n faFaceFrown,\n faFrown,\n faFloppyDisk,\n faSave,\n faCommentDots,\n faCommenting,\n faFaceGrinSquint,\n faGrinSquint,\n faHandPointer,\n faHandScissors,\n faFaceGrinTears,\n faGrinTears,\n faCalendarXmark,\n faCalendarTimes,\n faFileVideo,\n faFilePdf,\n faComment,\n faEnvelope,\n faHourglass,\n faHourglassEmpty,\n faCalendarCheck,\n faHardDrive,\n faHdd,\n faFaceGrinSquintTears,\n faGrinSquintTears,\n faRectangleList,\n faListAlt,\n faCalendarPlus,\n faCircleLeft,\n faArrowAltCircleLeft,\n faMoneyBill1,\n faMoneyBillAlt,\n faClock,\n faClockFour,\n faKeyboard,\n faClosedCaptioning,\n faImages,\n faFaceGrin,\n faGrin,\n faFaceMeh,\n faMeh,\n faIdCard,\n faDriversLicense,\n faSun,\n faFaceLaughWink,\n faLaughWink,\n faCircleDown,\n faArrowAltCircleDown,\n faThumbsDown,\n faChessPawn,\n faCreditCard,\n faCreditCardAlt,\n faBell,\n faFile,\n faHospital,\n faHospitalAlt,\n faHospitalWide,\n faChessRook,\n faStarHalf,\n faChessKing,\n faCircleUser,\n faUserCircle,\n faCopy,\n faShareFromSquare,\n faShareSquare,\n faCopyright,\n faMap,\n faBellSlash,\n faHandLizard,\n faFaceSmile,\n faSmile,\n faHandPeace,\n faFaceGrinHearts,\n faGrinHearts,\n faBuilding,\n faFaceGrinBeamSweat,\n faGrinBeamSweat,\n faMoon,\n faCalendar,\n faFaceGrinTongueWink,\n faGrinTongueWink,\n faClone,\n faFaceAngry,\n faAngry,\n faRectangleXmark,\n faRectangleTimes,\n faTimesRectangle,\n faWindowClose,\n faPaperPlane,\n faLifeRing,\n faFaceGrimace,\n faGrimace,\n faCalendarMinus,\n faCircleXmark,\n faTimesCircle,\n faXmarkCircle,\n faThumbsUp,\n faWindowMinimize,\n faSquareFull,\n faNoteSticky,\n faStickyNote,\n faFaceSadTear,\n faSadTear,\n faHandPointLeft\n};\n\nexport { icons as far, prefix, faTrashCan, faTrashAlt, faMessage, faCommentAlt, faFileLines, faFileAlt, faFileText, faCalendarDays, faCalendarAlt, faHandPointRight, faFaceSmileBeam, faSmileBeam, faFaceGrinStars, faGrinStars, faAddressBook, faContactBook, faComments, faPaste, faFileClipboard, faFaceGrinTongueSquint, faGrinTongueSquint, faFaceFlushed, faFlushed, faSquareCaretRight, faCaretSquareRight, faSquareMinus, faMinusSquare, faCompass, faSquareCaretDown, faCaretSquareDown, faFaceKissBeam, faKissBeam, faLightbulb, faFlag, faSquareCheck, faCheckSquare, faCircleDot, faDotCircle, faFaceDizzy, faDizzy, faFutbol, faFutbolBall, faSoccerBall, faPenToSquare, faEdit, faHourglassHalf, faHourglass2, faEyeSlash, faHand, faHandPaper, faHandSpock, faFaceKiss, faKiss, faFaceGrinTongue, faGrinTongue, faChessBishop, faFaceGrinWink, faGrinWink, faFaceGrinWide, faGrinAlt, faFaceFrownOpen, faFrownOpen, faHandPointUp, faBookmark, faHandPointDown, faFolder, faFolderBlank, faUser, faSquareCaretLeft, faCaretSquareLeft, faStar, faChessKnight, faFaceLaughSquint, faLaughSquint, faFaceLaugh, faLaugh, faFolderOpen, faClipboard, faChessQueen, faHandBackFist, faHandRock, faSquareCaretUp, faCaretSquareUp, faChartBar, faBarChart, faWindowRestore, faSquarePlus, faPlusSquare, faImage, faFolderClosed, faLemon, faHandshake, faGem, faCirclePlay, faPlayCircle, faCircleCheck, faCheckCircle, faCircleStop, faStopCircle, faIdBadge, faFaceLaughBeam, faLaughBeam, faRegistered, faAddressCard, faContactCard, faVcard, faFaceTired, faTired, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faFaceSmileWink, faSmileWink, faFileWord, faFilePowerpoint, faEnvelopeOpen, faFileZipper, faFileArchive, faSquare, faSnowflake, faNewspaper, faFaceKissWinkHeart, faKissWinkHeart, faStarHalfStroke, faStarHalfAlt, faFileExcel, faFaceGrinBeam, faGrinBeam, faObjectUngroup, faCircleRight, faArrowAltCircleRight, faFaceRollingEyes, faMehRollingEyes, faObjectGroup, faHeart, faFaceSurprise, faSurprise, faCirclePause, faPauseCircle, faCircle, faCircleUp, faArrowAltCircleUp, faFileAudio, faFileImage, faCircleQuestion, faQuestionCircle, faFaceMehBlank, faMehBlank, faEye, faFaceSadCry, faSadCry, faFileCode, faWindowMaximize, faFaceFrown, faFrown, faFloppyDisk, faSave, faCommentDots, faCommenting, faFaceGrinSquint, faGrinSquint, faHandPointer, faHandScissors, faFaceGrinTears, faGrinTears, faCalendarXmark, faCalendarTimes, faFileVideo, faFilePdf, faComment, faEnvelope, faHourglass, faHourglassEmpty, faCalendarCheck, faHardDrive, faHdd, faFaceGrinSquintTears, faGrinSquintTears, faRectangleList, faListAlt, faCalendarPlus, faCircleLeft, faArrowAltCircleLeft, faMoneyBill1, faMoneyBillAlt, faClock, faClockFour, faKeyboard, faClosedCaptioning, faImages, faFaceGrin, faGrin, faFaceMeh, faMeh, faIdCard, faDriversLicense, faSun, faFaceLaughWink, faLaughWink, faCircleDown, faArrowAltCircleDown, faThumbsDown, faChessPawn, faCreditCard, faCreditCardAlt, faBell, faFile, faHospital, faHospitalAlt, faHospitalWide, faChessRook, faStarHalf, faChessKing, faCircleUser, faUserCircle, faCopy, faShareFromSquare, faShareSquare, faCopyright, faMap, faBellSlash, faHandLizard, faFaceSmile, faSmile, faHandPeace, faFaceGrinHearts, faGrinHearts, faBuilding, faFaceGrinBeamSweat, faGrinBeamSweat, faMoon, faCalendar, faFaceGrinTongueWink, faGrinTongueWink, faClone, faFaceAngry, faAngry, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faPaperPlane, faLifeRing, faFaceGrimace, faGrimace, faCalendarMinus, faCircleXmark, faTimesCircle, faXmarkCircle, faThumbsUp, faWindowMinimize, faSquareFull, faNoteSticky, faStickyNote, faFaceSadTear, faSadTear, faHandPointLeft };\n","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify/lib\";\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\nimport { far } from \"@fortawesome/free-regular-svg-icons\";\r\nimport WpFontAwesome from \"@/components/atoms/WpFontAwesome.vue\";\r\nimport ChevronDown from \"@/assets/icons/chevron-down.svg\";\r\n\r\nVue.component(\"font-awesome-icon\", FontAwesomeIcon); // Register component globally\r\nlibrary.add(far);\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n icons: {\r\n iconfont: \"faSvg\",\r\n values: {\r\n next: {\r\n component: WpFontAwesome,\r\n props: {\r\n icon: \"fa-circle-right\",\r\n iconOnly: false,\r\n color: \"secondary\",\r\n },\r\n },\r\n prev: {\r\n component: WpFontAwesome,\r\n props: {\r\n icon: \"fa-circle-left\",\r\n iconOnly: false,\r\n color: \"secondary\",\r\n },\r\n },\r\n error: {\r\n component: WpFontAwesome,\r\n props: {\r\n icon: \"fa-circle-xmark\",\r\n iconOnly: false,\r\n color: \"secondary\",\r\n },\r\n },\r\n customIconSvg: ChevronDown,\r\n customIconSvgPath: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\",\r\n },\r\n },\r\n theme: {\r\n options: {\r\n variations: false,\r\n customProperties: true,\r\n },\r\n dark: false,\r\n themes: {\r\n light: {\r\n primary: \"#0061FF\",\r\n secondary: \"#585F66\",\r\n accent: \"#f2f8fd\",\r\n error: \"#FF5252\",\r\n warning: \"#f89820\",\r\n success: \"#4CAF50\",\r\n info: \"#2196F3\",\r\n },\r\n },\r\n },\r\n});\r\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an <a> element. Use the custom prop to remove this warning:\\n<router-link v-slot=\"{ navigate, href }\" custom></router-link>\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"<router-link> with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"<router-link>'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"<router-link>'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first <a> child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have <a> child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect <base> tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","import Vue from \"vue\";\r\nimport VueRouter from \"vue-router\";\r\n\r\nVue.use(VueRouter);\r\n\r\nconst isCdn = !process.env.BASE_URL.includes(\"/npe\") && window.location.href.includes(process.env.BASE_URL);\r\nconst routePrefix = isCdn ? \"\" : \"/npe\";\r\n\r\nconst routes = [\r\n {\r\n path: routePrefix + \"/\",\r\n name: \"GuestPayment\",\r\n meta: {\r\n title: \"WisePay\",\r\n },\r\n component: () => import(/* webpackChunkName: \"invoice-payment\" */ \"@/pages/guest-payment-flow.vue\"),\r\n },\r\n {\r\n path: routePrefix + \"/payment-success\",\r\n name: \"paymentSuccess\",\r\n meta: {\r\n title: \"WisePay | Payment Successful\",\r\n },\r\n component: () => import(/* webpackChunkName: \"result-success\" */ \"@/pages/result-success.vue\"),\r\n },\r\n {\r\n path: routePrefix + \"/payment-fail\",\r\n name: \"paymentFail\",\r\n meta: {\r\n title: \"WisePay | Payment Unsuccessful\",\r\n },\r\n component: () => import(/* webpackChunkName: \"result-fail\" */ \"@/pages/result-fail.vue\"),\r\n },\r\n {\r\n path: routePrefix + \"/search\",\r\n name: \"TransactionSearch\",\r\n meta: {\r\n title: \"WisePay | Virtual Terminal\",\r\n },\r\n component: () => import(/* webpackChunkName: \"virtual-terminal\" */ \"@/pages/virtual-terminal.vue\"),\r\n },\r\n {\r\n path: routePrefix + \"/sign-up\",\r\n name: \"SignUp\",\r\n meta: {\r\n title: \"WisePay | Sign Up\",\r\n },\r\n component: () => import(/* webpackChunkName: \"sign-up\" */ \"@/pages/npe-signup.vue\"),\r\n },\r\n {\r\n path: routePrefix + \"/pos\",\r\n name: \"Pos\",\r\n meta: {\r\n title: \"WisePay | POS\",\r\n },\r\n component: () => import(/* webpackChunkName: \"sign-up\" */ \"@/pages/pos-terminal.vue\"),\r\n },\r\n];\r\nconst router = new VueRouter({\r\n mode: \"history\",\r\n routes,\r\n});\r\n\r\n// This callback runs before every route change, including on page load.\r\nrouter.beforeEach((to, from, next) => {\r\n // This goes through the matched routes from last to first, finding the closest route with a title.\r\n // eg. if we have /some/deep/nested/route and /some, /deep, and /nested have titles, nested's will be chosen.\r\n const nearestWithTitle = to.matched\r\n .slice()\r\n .reverse()\r\n .find((r) => r.meta && r.meta.title);\r\n\r\n // If a route with a title was found, set the document (page) title to that value.\r\n if (nearestWithTitle) document.title = nearestWithTitle.meta.title;\r\n\r\n next();\r\n});\r\n\r\nexport default router;\r\n","import { SecuredWsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n getPaymentMethods(payerUserId, transactionId) {\r\n return SecuredWsApi.get(`/api/paymentflow/v1/payer/${payerUserId}/payment-methods`, { transactionId });\r\n },\r\n getPayerDetails(transactionId) {\r\n return SecuredWsApi.get(\"/api/paymentflow/v1/payer-details\", { transactionId });\r\n },\r\n verifyEmailAddress(transactionId, payload) {\r\n const apiUrl = SecuredWsApi.getUrl(\"/api/paymentflow/v1/guestsavepayerverify\", { transactionId });\r\n return SecuredWsApi.post(apiUrl, payload);\r\n },\r\n addOrUpdateCreditCard(payerUserId, payload) {\r\n if (payload.UniquePayerReferenceId) {\r\n return SecuredWsApi.put(`/api/paymentflow/v1/payer/${payerUserId}/credit-card`, payload);\r\n } else {\r\n return SecuredWsApi.post(`/api/paymentflow/v1/payer/${payerUserId}/credit-card`, payload);\r\n }\r\n },\r\n addOrUpdateBankDebit(payerUserId, payload) {\r\n if (payload.UniquePayerReferenceId) {\r\n return SecuredWsApi.put(`/api/paymentflow/v1/payer/${payerUserId}/bank-account`, payload);\r\n } else {\r\n return SecuredWsApi.post(`/api/paymentflow/v1/payer/${payerUserId}/bank-account`, payload);\r\n }\r\n },\r\n createNewPayer(transactionId, payload) {\r\n const apiUrl = SecuredWsApi.getUrl(\"/api/paymentflow/v1/guestsavepayer\", { transactionId });\r\n return SecuredWsApi.post(apiUrl, payload);\r\n },\r\n updatePayerTermsOnLogin(transactionId, payload) {\r\n const apiUrl = SecuredWsApi.getUrl(`/api/paymentflow/v1/payer/terms-and-conditions`, { transactionId });\r\n return SecuredWsApi.post(apiUrl, payload);\r\n },\r\n updateCreditCardAVSDetails(payerUserId, payload) {\r\n return SecuredWsApi.put(`/api/paymentflow/v1/payer/${payerUserId}/credit-card-avs`, payload);\r\n },\r\n};\r\n","import { SecuredWsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n payAsGuest(payload) {\r\n return SecuredWsApi.post(\"/api/paymentflow/v1/guestpayment\", payload);\r\n },\r\n payAsLoggedInUser(payerUserId, payload) {\r\n return SecuredWsApi.post(`/api/paymentflow/v1/payer/${payerUserId}/payment`, payload);\r\n },\r\n};\r\n","import { SecuredWsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n getMerchantTerms(transactionId, consultingServiceIds = []) {\r\n // Check if consultingServiceIds param is an array. If yes, form the data object accordingly.\r\n let consultingIdsQueryData = \"?\";\r\n if (Array.isArray(consultingServiceIds) && consultingServiceIds.length > 0) {\r\n consultingServiceIds.forEach((item) => {\r\n consultingIdsQueryData = consultingIdsQueryData + \"consultingServiceIds=\" + item.Id + \"&\";\r\n });\r\n }\r\n\r\n // Remove the last '&' from the formatted query param string\r\n consultingIdsQueryData = consultingIdsQueryData.slice(0, -1);\r\n\r\n return SecuredWsApi.get(\"/api/paymentflow/v1/merchant/terms-and-conditions\" + consultingIdsQueryData, {\r\n transactionId,\r\n });\r\n },\r\n};\r\n","import { WsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n getInvoice(transactionId) {\r\n return WsApi.get(\"/api/paymentflow/v1/guestpayment\", { transactionId });\r\n },\r\n validateInvoice(invoiceNumber, transactionId) {\r\n return WsApi.get(`/api/paymentflow/v1/invoices/validate`, { transactionId, invoiceNumber });\r\n },\r\n generateTransactionId(payload) {\r\n return WsApi.post(\"/api/paymentflow/v1/transaction/generate\", payload);\r\n },\r\n};\r\n","import { WsApi, SecuredWsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n generatePasswordCreationUrl(payload) {\r\n return SecuredWsApi.post(\"/api/paymentflow/v1/guestgenerateregistrationtoken\", payload);\r\n },\r\n login(payload) {\r\n return WsApi.post(\"/account/jwtlogin\", payload);\r\n },\r\n getTwoFactorSetupCode() {\r\n return WsApi.post(\"/account/getgoogle2fasubscribercode\");\r\n },\r\n getSession(transactionId) {\r\n return WsApi.post(\"/account/requestauth\", { transactionId: encodeURIComponent(transactionId) });\r\n },\r\n};\r\n","import { WsApi, SecuredWsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n getOnboardingDetails(onboardingToken) {\r\n return WsApi.get(`/api/payer-onboarding/v1/${onboardingToken}`);\r\n },\r\n getPayerDetails(onboardingToken) {\r\n return SecuredWsApi.get(`/api/payer-onboarding/v1/${onboardingToken}/payer-details`);\r\n },\r\n updatePayerDetails(payerUserId, payload) {\r\n return SecuredWsApi.put(`/api/payer-onboarding/v1/${payerUserId}/payer-details`, payload);\r\n },\r\n acceptTerms(onboardingToken, termsId) {\r\n return WsApi.post(`/api/payer-onboarding/v1/${onboardingToken}/terms-accepted`, {\r\n payerOnboardingTermsId: termsId,\r\n });\r\n },\r\n createPayerPassword(onboardingToken, password) {\r\n return WsApi.post(\"/authentication/create-password\", {\r\n payerOnboardingToken: onboardingToken,\r\n password,\r\n });\r\n },\r\n onboardPayer(onboardingToken, payload) {\r\n return SecuredWsApi.post(`/api/payer-onboarding/v1/${onboardingToken}/onboard-payer`, payload);\r\n },\r\n};\r\n","import { WsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n generateForm(transactionId) {\r\n return WsApi.post(\"/api/paymentflow/v1/secure-form/generate\", { transactionId });\r\n },\r\n getCardDetails(transactionId, customerId) {\r\n return WsApi.get(\"/api/paymentflow/v1/masked-payment-details/generate\", { transactionId, customerId });\r\n },\r\n};\r\n","import { SecuredWsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n getMerchantPayerCompanies(transactionId) {\r\n return SecuredWsApi.get(\"/api/paymentflow/v1/merchant/payer-companies\", { transactionId });\r\n },\r\n};\r\n","import axios from \"axios\";\r\nimport store from \"@/store/store\";\r\n\r\n/** HttpClient **/\r\nexport class HttpClient {\r\n static getUrl(url, data) {\r\n return this.baseUrl + this._serializeUrl(url, data);\r\n }\r\n static get(url, data) {\r\n return this._send(\"GET\", this._serializeUrl(url, data));\r\n }\r\n static post(url, data) {\r\n return this._send(\"POST\", url, data);\r\n }\r\n static put(url, data) {\r\n return this._send(\"PUT\", url, data);\r\n }\r\n static delete(url, data) {\r\n return this._send(\"DELETE\", this._serializeUrl(url, data));\r\n }\r\n static get baseUrl() {\r\n return \"\";\r\n }\r\n static async _send(method, url, data, headers, axiosConfig) {\r\n const response = await axios.request({\r\n ...axiosConfig,\r\n method,\r\n url,\r\n data,\r\n headers,\r\n withCredentials: true,\r\n credentials: \"include\",\r\n });\r\n // Only require data attribute for success response\r\n return response.data;\r\n }\r\n static _serializeUrl(url, data) {\r\n let serializedUrl = url;\r\n if (data) {\r\n serializedUrl += `${url.includes(\"?\") ? \"&\" : \"?\"}${new URLSearchParams(data).toString()}`;\r\n }\r\n return serializedUrl;\r\n }\r\n}\r\n\r\n/** WsApi: Public Wise Sync API Client **/\r\nexport class FrontendWsApi extends HttpClient {\r\n static _send(method, url, data, headers, config = { baseURL: this.baseUrl }) {\r\n return super._send(method, url, data, headers, config);\r\n }\r\n static get baseUrl() {\r\n return process.env.VUE_APP_ROOT_API;\r\n }\r\n}\r\n\r\n/** Secured Wise Sync API Client **/\r\nexport class SecuredWsFrontendApi extends FrontendWsApi {\r\n static _send(method, url, data, headers) {\r\n const securedHeaders = headers || {};\r\n if (store.state.jwt) {\r\n securedHeaders.Authorization = \"Bearer \" + store.state.jwt;\r\n }\r\n\r\n let baseURL = this.baseUrl;\r\n let baseURLPort = process.env.VUE_APP_ROOT_API_PORT;\r\n if (baseURLPort) {\r\n baseURL = `${baseURL}:${baseURLPort}`;\r\n }\r\n\r\n return super._send(method, url, data, securedHeaders, {\r\n baseURL,\r\n });\r\n }\r\n}\r\n","import { SecuredWsFrontendApi } from \"@/utils/http-client-wp-frontend\";\r\nimport { WsApi } from \"@/utils/http-client\";\r\n\r\nexport default {\r\n getListOfTerminals(accountMerchantId) {\r\n return SecuredWsFrontendApi.get(`/api/portal/Merchant/${accountMerchantId}/card-present-terminals`);\r\n },\r\n getTransactionReceipt(payload) {\r\n return WsApi.post(`/api/paymentflow/v1/transaction/transaction-receipt`, payload);\r\n },\r\n cancelCardPresentPayment(payload) {\r\n return WsApi.post(\"/api/paymentflow/v1/transaction/cancel-card-present-payment\", payload);\r\n },\r\n};\r\n","import { getField } from \"vuex-map-fields\";\r\n\r\nexport default {\r\n getField,\r\n\r\n merchantName(state) {\r\n let merchantName = state.invoice && state.invoice.paymentCompany;\r\n if (merchantName !== \"-\" && merchantName !== \"\") {\r\n return merchantName;\r\n } else return \"this Merchant\";\r\n },\r\n\r\n getCardConfig(state) {\r\n return (cardType) => {\r\n const cardConfigs = state.merchant.paymentTypes.creditCards.types || [];\r\n\r\n // If cardType is americanexpress, convert it to amex\r\n if (cardType ?? \"\") {\r\n if (cardType.includes(\"american\") && cardType.includes(\"express\")) {\r\n cardType = \"amex\";\r\n }\r\n }\r\n return cardConfigs.find((item) => item.cardType === cardType);\r\n };\r\n },\r\n\r\n currentCardChargeConfig(state, getters) {\r\n const selectedPaymentMethod = getters.selectedPaymentMethod;\r\n\r\n if (selectedPaymentMethod && selectedPaymentMethod.isCreditCard) {\r\n return getters.getCardConfig(selectedPaymentMethod.cardType);\r\n }\r\n return null;\r\n },\r\n\r\n currentSurchargePercentage(state, getters) {\r\n if (getters.currentCardChargeConfig && !state.merchant.overrideSurcharge) {\r\n return getters.currentCardChargeConfig.surcharge * 100;\r\n }\r\n return 0;\r\n },\r\n\r\n currentTransactionFee(state, getters) {\r\n if (getters.currentCardChargeConfig && !state.merchant.overrideSurcharge) {\r\n return getters.currentCardChargeConfig.transactionCharge;\r\n }\r\n return 0;\r\n },\r\n\r\n totalSurcharge(state, getters) {\r\n if (state.payingToday > 0 && !state.merchant.overrideSurcharge) {\r\n return state.payingToday * (getters.currentSurchargePercentage / 100) + getters.currentTransactionFee;\r\n }\r\n return 0;\r\n },\r\n\r\n invoiceAmountDue: (state) => {\r\n let total = state.invoice.amountDue;\r\n let locale = state.merchant.locale;\r\n let currencySymbol = state.merchant.currency;\r\n let formatter = new Intl.NumberFormat(locale, {\r\n style: \"currency\",\r\n currency: currencySymbol,\r\n });\r\n\r\n return formatter.format(total);\r\n },\r\n\r\n scheduledPaymentDate: (state) => {\r\n if (state.scheduledPaymentDate.length > 0) {\r\n const d = Date.parse(state.scheduledPaymentDate);\r\n const _date = new Date(d);\r\n return _date.toDateString();\r\n } else return \"-\";\r\n },\r\n\r\n creditCards: (state) => {\r\n return state.payer.paymentMethods.filter((paymentMethod) => paymentMethod.isCreditCard) || [];\r\n },\r\n\r\n bankDebits: (state) => {\r\n return state.payer.paymentMethods.filter((paymentMethod) => paymentMethod.isBankDebit) || [];\r\n },\r\n\r\n selectedPaymentMethod: (state) => {\r\n return state.payer.paymentMethods[state.selectedPaymentMethodIndex];\r\n },\r\n\r\n isAVSValidationIncluded: (state) => {\r\n let isUserAPayer = state.user.isLoggedIn;\r\n return state.merchant.isAvsEnabled && isUserAPayer;\r\n },\r\n\r\n isAVSFromSelectedPaymentMethodCompleted: (state, getters) => {\r\n let isCompleted = false;\r\n let creditCard = getters.selectedPaymentMethod;\r\n\r\n if (state.merchant.isAvsEnabled && creditCard) {\r\n isCompleted = !!(\r\n creditCard.billingDetails.country &&\r\n creditCard.billingDetails.state &&\r\n creditCard.billingDetails.suburb &&\r\n creditCard.billingDetails.postcode &&\r\n creditCard.billingDetails.streetAddress\r\n );\r\n }\r\n\r\n return isCompleted;\r\n },\r\n\r\n getTermsByNames: (state) => (termNames) => {\r\n return state.termsAndConditions.terms.filter((term) => termNames.includes(term.name));\r\n },\r\n\r\n isMerchantFlow: (state) => {\r\n return state.user.isAdminRole || state.isVirtualTerminal;\r\n },\r\n\r\n isCreditCardAccepted: (state) => state.merchant.paymentTypes.creditCards.maxLimit > 0,\r\n isBankDebitAccepted: (state) => state.merchant.paymentTypes.bankDebit.maxLimit > 0,\r\n\r\n isPaymentMethodAccepted: (state, getters) => (paymentMethod) => {\r\n const isCardTypeAccepted = !!getters.getCardConfig(paymentMethod.cardType);\r\n return (\r\n (paymentMethod.isCreditCard && getters.isCreditCardAccepted && isCardTypeAccepted) ||\r\n (paymentMethod.isBankDebit && getters.isBankDebitAccepted)\r\n );\r\n },\r\n\r\n isThirdPartyIntegrationPresent: (state) => {\r\n let isPresent = false;\r\n\r\n // Checks if the `thirdPartyIntegration` property is present in the `state` and is a valid object\r\n if (\r\n state.thirdPartyIntegration !== undefined &&\r\n state.thirdPartyIntegration !== null &&\r\n typeof state.thirdPartyIntegration === \"object\"\r\n ) {\r\n isPresent = true;\r\n }\r\n\r\n return isPresent;\r\n },\r\n\r\n isThirdPartyIntegrationReturnUrlPresent: (state, getters) => {\r\n let isPresent = false;\r\n\r\n if (getters.isThirdPartyIntegrationPresent) {\r\n if (\"returnUrl\" in state.thirdPartyIntegration && state.thirdPartyIntegration.returnUrl) {\r\n isPresent = true;\r\n }\r\n }\r\n\r\n return isPresent;\r\n },\r\n\r\n isPSAMerchant: (state) => {\r\n return state.merchant.merchantAccountingPackage.toLowerCase() == \"connectwise\";\r\n },\r\n};\r\n","const ADMIN_ROLES = [\"super-admin\", \"merchant-admin\", \"merchant-user\"];\r\n\r\nexport default class User {\r\n constructor(data = {}) {\r\n this.id = data.id;\r\n this.username = data.username;\r\n this.email = data.email;\r\n this.role = data.role;\r\n this.name = data.name;\r\n this.payersList = data.payersList || [];\r\n }\r\n\r\n get isLoggedIn() {\r\n return !!(this.id || this.username);\r\n }\r\n\r\n get isGuest() {\r\n return !this.isLoggedIn;\r\n }\r\n\r\n get isAdminRole() {\r\n return ADMIN_ROLES.includes(this.role);\r\n }\r\n}\r\n","export default class Invoice {\r\n constructor(data = {}) {\r\n this.invoiceNumber = data.invoiceNumber;\r\n this.paymentCompany = data.paymentCompany;\r\n this.payerCompany = data.payerCompany;\r\n this.total = data.total;\r\n this.amountDue = data.amountDue;\r\n this.scheduledAmount = data.scheduledAmount;\r\n this.scheduledPayments = data.scheduledPayments;\r\n this.invoiceDate = data.invoiceDate;\r\n this.dueDate = data.dueDate;\r\n this.timezone = data.timezone;\r\n this.hasOutstandingInvoices = !!data.hasOutstandingInvoices;\r\n this.isInvoiceLocked = data.isInvoiceLocked;\r\n this.isSynced = typeof data.isSynced == \"boolean\" ? data.isSynced : true;\r\n }\r\n\r\n get isPrepayment() {\r\n return !this.isSynced;\r\n }\r\n\r\n get hasScheduledPayments() {\r\n return this.scheduledAmount;\r\n }\r\n}\r\n","export default {\r\n getSafe: (dataFunction, defaultValue = null) => {\r\n try {\r\n return dataFunction() || defaultValue;\r\n } catch (e) {\r\n return defaultValue;\r\n }\r\n },\r\n};\r\n","import ObjectHelper from \"@/utils/object-helper\";\r\n\r\nexport default class Merchant {\r\n constructor(data = {}) {\r\n this.id = data.merchantId || data.id;\r\n this.name = data.paymentCompanyName || data.name;\r\n this.logoUrl = data.paymentCompanyLogoUrl || data.logoUrl;\r\n this.canSchedulePayment = data.isScheduledGuestCreditCardPaymentAllowed;\r\n this.canScheduleOverduePayments =\r\n data.isScheduledGuestCreditCardPaymentForPastDueInvoicesAllowed || data.canScheduleOverduePayments;\r\n this.existingPaymentMethodSaved = data.existingPaymentMethodSaved;\r\n this.isAvsEnabled = data.isAvsEnabled;\r\n this.enquiriesNumber = data.enquiriesNumber;\r\n this.enquiriesContactName = data.enquiriesContactName;\r\n this.merchantEmailAddress = data.merchantEmailAddress || \"payersupport@wise-sync.com\";\r\n this.localeName = data.localeName || \"en-AU\";\r\n this.currency = (data.invoiceCurrencyCode && data.invoiceCurrencyCode.toUpperCase()) || \"AUD\";\r\n this.paymentTypes = {};\r\n this.paymentTypes.creditCards = ObjectHelper.getSafe(() => data.paymentTypes.creditCards, {});\r\n this.paymentTypes.creditCards.surchargeLabel = this.paymentTypes.creditCards.surchargeLabel || \"surcharge\";\r\n this.paymentTypes.creditCards.maxLimit = this.paymentTypes.creditCards.maxLimit || 0;\r\n this.paymentTypes.creditCards.types = this.paymentTypes.creditCards.types || [];\r\n this.paymentTypes.bankDebit = ObjectHelper.getSafe(() => data.paymentTypes.bankDebit, {});\r\n this.paymentTypes.bankDebit.maxLimit = this.paymentTypes.bankDebit.maxLimit || 0;\r\n this.paymentTypes.bankDebit.prefixAccountLabel = this.paymentTypes.bankDebit.prefixAccountLabel || \"BSB\";\r\n this.paymentTypes.bankDebit.prefixAccountLabelTwo = this.paymentTypes.bankDebit.prefixAccountLabelTwo || null;\r\n this.paymentTypes.bankDebit.accountNumberLabel = this.paymentTypes.bankDebit.accountNumberLabel || \"Account Number\";\r\n this.overrideSurcharge = false;\r\n this.merchantAccountingPackage = data.merchantAccountingPackage || null;\r\n }\r\n\r\n get isCreditCardAccepted() {\r\n return this.paymentTypes.creditCards.maxLimit > 0 || this.paymentTypes.creditCards.types.length;\r\n }\r\n\r\n get isBankDebitAccepted() {\r\n return this.paymentTypes.bankDebit.maxLimit > 0;\r\n }\r\n\r\n get currencySymbol() {\r\n let currencySymbols = {\r\n $: [\"USD\", \"CAD\", \"AUD\", \"NZD\", \"SGD\"],\r\n \"€\": [\"EUR\"],\r\n \"£\": [\"GBP\"],\r\n };\r\n return Object.keys(currencySymbols).find((symbol) => currencySymbols[symbol].includes(this.currency));\r\n }\r\n\r\n get locale() {\r\n const locales = {\r\n Australia: \"en-AU\",\r\n \"New Zealand\": \"en-NZ\",\r\n \"United Kingdom\": \"en-GB\",\r\n \"United States\": \"en-US\",\r\n Canada: \"en-CA\",\r\n Ireland: \"en-IE\",\r\n Singapore: \"en-SG\",\r\n };\r\n return locales[this.localeName] || \"en-AU\";\r\n }\r\n}\r\n","import { updateField } from \"vuex-map-fields\";\r\nimport router from \"../router\";\r\nimport Term from \"@/models/term\";\r\nimport PaymentMethod from \"@/models/payment-method\";\r\nimport Payer from \"@/models/payer\";\r\nimport User from \"@/models/user\";\r\nimport Invoice from \"@/models/invoice\";\r\nimport Merchant from \"@/models/merchant\";\r\nimport PendoUtil from \"@/utils/pendo\";\r\n\r\nexport default {\r\n setUserPassword: (state, payload) => {\r\n state.createPasswordUrl = payload.createPasswordUrl;\r\n },\r\n\r\n transactionError: (state, payload) => {\r\n state.invoice.errorMessage = payload;\r\n },\r\n\r\n setExtraDataLoadingError: (state, hasError) => {\r\n state.extraDataLoadingError = hasError;\r\n },\r\n\r\n clearUserPaymentMethods: (state) => {\r\n state.payer.paymentMethods = [];\r\n },\r\n\r\n savePaymentMethod: (state, paymentMethodData) => {\r\n const paymentMethod = new PaymentMethod(paymentMethodData);\r\n const existingIndex = state.payer.paymentMethods.findIndex(\r\n (existingPaymentMethod) => existingPaymentMethod.id === paymentMethod.id\r\n );\r\n if (existingIndex === -1) {\r\n state.payer.paymentMethods.push(paymentMethod);\r\n } else {\r\n state.payer.paymentMethods.splice(existingIndex, 1, paymentMethod);\r\n }\r\n },\r\n\r\n removePaymentMethod: (state, paymentMethodId) => {\r\n const paymentMethodIndex = state.payer.paymentMethods.findIndex(\r\n (paymentMethod) => paymentMethod.id === paymentMethodId\r\n );\r\n if (paymentMethodIndex !== -1) {\r\n state.payer.paymentMethods.splice(paymentMethodIndex, 1);\r\n if (state.payer.paymentMethods[paymentMethodIndex].isBankDebit) {\r\n state.scheduledPaymentDate = \"\";\r\n }\r\n }\r\n },\r\n\r\n selectPaymentMethod: (state, id) => {\r\n state.selectedPaymentMethodIndex = state.payer.paymentMethods.findIndex((paymentMethod) => paymentMethod.id === id);\r\n if (state.selectedPaymentMethodIndex !== -1) {\r\n const selectedPaymentMethod = state.payer.paymentMethods[state.selectedPaymentMethodIndex];\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n if (\r\n !selectedPaymentMethod.savedInWP ||\r\n (selectedPaymentMethod.isCreditCard &&\r\n state.scheduledPaymentDate &&\r\n state.scheduledPaymentDate.valueOf() === today.valueOf())\r\n ) {\r\n state.scheduledPaymentDate = \"\";\r\n } else if (selectedPaymentMethod.isBankDebit && !state.scheduledPaymentDate) {\r\n state.scheduledPaymentDate = today;\r\n }\r\n } else {\r\n state.selectedPaymentMethodIndex = null;\r\n state.scheduledPaymentDate = \"\";\r\n }\r\n },\r\n\r\n transactionDataInit: (state, payload) => {\r\n state.tokenization = payload.tokenization;\r\n state.merchant = new Merchant(payload);\r\n state.isVirtualTerminal = payload.isVirtualTerminal;\r\n state.thirdPartyIntegration = payload.thirdPartyIntegration;\r\n state.allowPartPayment = payload.allowPartPayment;\r\n state.isNewPrepaymentFlowEnabled = payload.isNewPrepaymentFlowEnabled;\r\n state.isGuestBankPaymentAccepted = payload.isGuestBankPaymentAccepted;\r\n state.isGuestCreditCardPaymentAccepted = payload.isGuestCreditCardPaymentAccepted;\r\n state.isBaseCurrency = payload.isBaseCurrency;\r\n state.isCardPresentPaymentsEnabled = payload.isCardPresentPaymentsEnabled;\r\n state.accountId = payload?.accountId ?? \"\";\r\n state.accountName = payload?.accountName ?? \"\";\r\n\r\n const invoiceData = {\r\n paymentCompany: payload.paymentCompanyName,\r\n payerCompany: payload.payerCompanyName,\r\n scheduledAmount: payload.pendingAmount,\r\n isInvoiceLocked: payload.isInvoiceLocked,\r\n timezone: payload.timeZone,\r\n hasOutstandingInvoices: payload.hasOutstandingInvoices,\r\n };\r\n\r\n if (payload.invoiceDetails) {\r\n Object.assign(invoiceData, payload.invoiceDetails);\r\n } else {\r\n Object.assign(invoiceData, {\r\n invoiceNumber: payload.invoiceId,\r\n total: payload.amountToPay,\r\n amountDue: payload.totalDue,\r\n isSynced: false,\r\n });\r\n }\r\n\r\n state.invoice = new Invoice(invoiceData);\r\n\r\n if (!state.payer.company && state.invoice.payerCompany) {\r\n state.payer.company = state.invoice.payerCompany;\r\n }\r\n },\r\n\r\n paymentInProgress: (state, payload) => {\r\n state.paymentInProgress = payload;\r\n },\r\n\r\n logoutUser: (state) => {\r\n state.payingToday = 0;\r\n state.surcharge = 0;\r\n state.scheduledPaymentDate = \"\";\r\n state.selectedPaymentMethod = {};\r\n state.user = new User();\r\n state.payer = new Payer();\r\n state.isRegisteringNewPayer = false;\r\n state.payment.paymentStatus = false;\r\n },\r\n\r\n paymentSuccessful: (state) => {\r\n state.payment.paymentStatus = true;\r\n\r\n router.push({\r\n name: \"paymentSuccess\",\r\n query: {\r\n transactionId: state.transactionId,\r\n },\r\n });\r\n },\r\n\r\n paymentError: (state, payload) => {\r\n state.payment.paymentStatus = \"error\";\r\n state.payment.paymentErrorMessage = payload;\r\n\r\n router.push({\r\n name: \"paymentFail\",\r\n query: {\r\n transactionId: state.transactionId,\r\n },\r\n });\r\n },\r\n\r\n // Redirects via the `returnUrl` along with `ExternalId` and `Success` as params\r\n paymentThirdPartyReturnUrl: (state) => {\r\n state.payment.paymentStatus = true;\r\n state.redirectInProgress = true;\r\n let route = [\r\n // Main URL\r\n `${state.thirdPartyIntegration?.returnUrl}`,\r\n // Params\r\n `PaymentToken=${state.payment?.transactionResult?.ExternalId ?? \"\"}`,\r\n `IsSuccess=${state.payment?.transactionResult?.IsSuccess ?? false}`,\r\n ];\r\n\r\n window.location.href = route.join(\"&\");\r\n },\r\n\r\n updateField,\r\n\r\n userLogin: (state, userData) => {\r\n //this is the function called from the login modal\r\n // setting the visiility of the panels\r\n\r\n state.isRegisteringNewPayer = false;\r\n state.user = new User(userData);\r\n state.termsAndConditions.acceptedBy = userData.name;\r\n },\r\n continueAsGuest: (state) => {\r\n state.isRegisteringNewPayer = false;\r\n },\r\n userRegister: (state) => {\r\n state.isRegisteringNewPayer = true;\r\n },\r\n setCheckoutStep: (state, payload) => {\r\n state.checkoutStep = payload;\r\n },\r\n setPayTodayAmount: (state) => {\r\n state.payingToday = state.invoice.amountDue;\r\n },\r\n\r\n setTermsAndConditions: (state, terms) => {\r\n if (terms && terms.length) {\r\n terms.forEach(function (term) {\r\n const newTerm = new Term(term);\r\n const existingIndex = state.termsAndConditions.terms.findIndex(\r\n (existingTerm) => existingTerm.id === newTerm.id\r\n );\r\n if (existingIndex !== -1) {\r\n state.termsAndConditions.terms[existingIndex] = newTerm;\r\n } else {\r\n state.termsAndConditions.terms.push(newTerm);\r\n }\r\n });\r\n }\r\n },\r\n\r\n updateTermDetails: (state, termDetail) => {\r\n const term = state.termsAndConditions.terms.find((term) => term.id === termDetail.TermsAndConditionsId);\r\n term.update(termDetail);\r\n },\r\n\r\n acceptTerm: (state, termId) => {\r\n const term = state.termsAndConditions.terms.find((term) => term.id === termId);\r\n if (term) {\r\n term.accepted = true;\r\n }\r\n },\r\n\r\n saveJWT: (state, payload) => {\r\n state.jwt = payload;\r\n state.jwtTimestamp = new Date();\r\n },\r\n\r\n resetJWTWithTimestamp: (state) => {\r\n state.jwt = \"\";\r\n state.jwtTimestamp = null;\r\n },\r\n\r\n setTransactionId: (state, payload) => {\r\n state.transactionId = payload;\r\n },\r\n\r\n setPayerPaymentMethods: (state, paymentMethods) => {\r\n if (paymentMethods && paymentMethods.length) {\r\n state.payer.paymentMethods = paymentMethods.map((paymentMethodData) => {\r\n const paymentMethod = new PaymentMethod(paymentMethodData);\r\n paymentMethod.savedInWP = true;\r\n return paymentMethod;\r\n });\r\n } else {\r\n state.payer.paymentMethods = [];\r\n }\r\n },\r\n\r\n setPayersList: (state, payload) => {\r\n payload.forEach(function (e) {\r\n e.fullname = e.firstName + \" \" + e.lastName;\r\n });\r\n state.user.payersList = payload;\r\n },\r\n\r\n setPayerDetails: (state, payload) => {\r\n state.payer.userId = payload.userId ?? state.payer.userId;\r\n state.payer.firstName = payload.firstName ?? state.payer.firstName;\r\n state.payer.lastName = payload.lastName ?? state.payer.lastName;\r\n state.payer.phoneNumber = payload.contactNumber ?? state.payer.phoneNumber;\r\n state.payer.email = payload.email ?? state.payer.email;\r\n state.payer.company = payload.company || state.invoice.payerCompany;\r\n state.payer.payerProfiles = payload.payerProfiles ?? state.payer.payerProfiles;\r\n\r\n // Initialize Pendo for guest users\r\n const visitorId = state.payer?.userId ?? state.user.id ?? \"\";\r\n const payerCompany = state.payer?.company ?? state.merchant?.name ?? \"\";\r\n const accountId = state.accountId ?? \"\";\r\n const accountName = state.accountName ?? \"\";\r\n const merchantId = state.merchant?.id ?? \"\";\r\n const merchantName = state.merchant?.name ?? \"\";\r\n\r\n const userEmail = state.user?.email ?? \"\";\r\n const userName = state.user?.username ?? \"\";\r\n const role = userEmail === \"\" && userName == \"\" ? \"guest\" : state.user.role;\r\n const email = userEmail !== \"\" ? userEmail : state.payer?.email ?? \"\";\r\n const name = role === \"guest\" ? `${state.payer?.firstName} ${state.payer?.lastName}` : userName;\r\n\r\n PendoUtil.initializePendo(\r\n email,\r\n name,\r\n role,\r\n visitorId,\r\n payerCompany,\r\n accountId,\r\n merchantId,\r\n merchantName,\r\n accountName\r\n );\r\n },\r\n\r\n clearPayerDetails: (state) => {\r\n state.payer = new Payer();\r\n\r\n state.payer.company = state.invoice.payerCompany;\r\n },\r\n\r\n setIsRegistering: (state, flag) => {\r\n state.isRegisteringNewPayer = flag;\r\n },\r\n\r\n setPayerId: (state, id) => {\r\n state.payer.userId = id;\r\n },\r\n\r\n overrideSurcharge: (state, payload) => {\r\n state.merchant.overrideSurcharge = payload;\r\n },\r\n\r\n setLoadingInvoiceDetails: (state, isLoading) => {\r\n state.loadingInvoiceDetails = isLoading;\r\n },\r\n setLoadingTerms: (state, isLoading) => {\r\n state.loadingTerms = isLoading;\r\n },\r\n setLoadingUserDetails: (state, isLoading) => {\r\n state.loadingUserDetails = isLoading;\r\n },\r\n setLoadingPaymentMethods: (state, isLoading) => {\r\n state.loadingPaymentMethods = isLoading;\r\n },\r\n setIsBillingDetailsUpdated: (state, isUpdated) => {\r\n state.isBillingDetailsUpdated = isUpdated;\r\n },\r\n setOnboardingToken: (state, token) => {\r\n state.onboardingToken = token;\r\n state.transactionId = token;\r\n },\r\n setOnboardingAsExpired: (state) => {\r\n state.isOnboardingExpired = true;\r\n },\r\n initializeOnboardingData: (state, payload) => {\r\n state.merchant = new Merchant(payload);\r\n state.tokenization = payload.tokenization;\r\n state.onboardingTermsId = payload.payerOnboardingTermsId;\r\n state.isUserActivated = payload.isUserActivated;\r\n state.partnerPortalUrl = payload.partnerPortalUrl;\r\n if (!state.payer.company && payload.payerCompanyName) {\r\n state.payer.company = payload.payerCompanyName;\r\n }\r\n },\r\n setLoadingOnboardingData: (state, isLoading) => {\r\n state.isLoadingOnboardingData = isLoading;\r\n },\r\n setLoadingOnboardingDataError: (state, isError) => {\r\n state.isLoadingOnboardingDataError = isError;\r\n },\r\n setAutoPaymentTermsToOtherPayerStatus: (state, isAssignedToOtherPayer) => {\r\n state.isAutoPaymentTermsAssignedToOtherPayer = isAssignedToOtherPayer;\r\n },\r\n\r\n // Push alert to its assigned key\r\n setAlertDetailsByKey: (state, payload) => {\r\n state.alertGroups[payload.alertReferenceKey] = payload.details ? [payload.details] : [];\r\n },\r\n // Remove all alerts under a specific key\r\n clearAlertDetailsByKey: (state, key) => {\r\n state.alertGroups[key] = [];\r\n },\r\n\r\n // Set userDetailsStep data\r\n setUserDetailsStepData: (state, payload) => {\r\n state.userDetailsStep = payload;\r\n },\r\n\r\n setAvsBillingDetailsForZeroQuoteFlow: (state, payload) => {\r\n state.avsBillingDetailsForZeroQuoteFlow = payload;\r\n },\r\n\r\n setMerchantPayerCompanies: (state, payload) => {\r\n state.merchantPayerCompanies = payload;\r\n },\r\n setIsPaymentDetailsInEdit: (state, payload) => {\r\n state.isPaymentDetailsInEdit = payload;\r\n },\r\n};\r\n","import router from \"@/router\";\r\nimport logger from \"@/utils/logger\";\r\nimport { HttpClient } from \"@/utils/http-client\";\r\nimport {\r\n InvoiceService,\r\n OnboardingService,\r\n PayerService,\r\n PaymentService,\r\n TermService,\r\n UserService,\r\n MerchantService,\r\n} from \"@/services\";\r\nimport { format } from \"date-fns\";\r\n\r\nexport default {\r\n scrollToMyDetails() {\r\n let myDetails = document.getElementById(\"myDetails\");\r\n let el = document.getElementById(\"main-wrapper\");\r\n\r\n el.scrollTo({\r\n top: myDetails.offsetTop - 30,\r\n left: 0,\r\n behavior: \"smooth\",\r\n });\r\n },\r\n\r\n async getUserPassword({ state, commit }) {\r\n const data = {\r\n TransactionId: state.transactionId,\r\n BillingDetails: {\r\n Email: state.payer.email,\r\n },\r\n };\r\n\r\n try {\r\n const response = await UserService.generatePasswordCreationUrl(data);\r\n commit(\"setUserPassword\", response);\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n },\r\n\r\n async login({ dispatch }, payload) {\r\n await dispatch(\"updateUserDetails\", payload);\r\n await dispatch(\"getPayerDetails\");\r\n },\r\n\r\n async saveJWTToken({ commit }, token) {\r\n commit(\"saveJWT\", token);\r\n },\r\n\r\n async updateUserDetails({ commit, dispatch }, payload) {\r\n await dispatch(\"saveJWTToken\", payload.token);\r\n commit(\"userLogin\", {\r\n username: payload.username,\r\n name: payload.name,\r\n email: payload.email,\r\n role: payload.role,\r\n });\r\n },\r\n\r\n async getUserDetails({ state, dispatch }, transactionId) {\r\n try {\r\n const requestAuthResponse = await UserService.getSession(transactionId);\r\n if (\r\n \"termsThatRequireAcceptance\" in requestAuthResponse &&\r\n requestAuthResponse.termsThatRequireAcceptance.length > 0\r\n ) {\r\n state.requestAuthResponseBodyForTermsAcceptance = requestAuthResponse;\r\n } else {\r\n state.requestAuthResponseBodyForTermsAcceptance = {};\r\n if (requestAuthResponse.token && requestAuthResponse.token !== \"null\") {\r\n await dispatch(\"updateUserDetails\", requestAuthResponse);\r\n }\r\n }\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n },\r\n\r\n async getMerchantPayerCompaniesForVirtualTerminal({ commit, state }) {\r\n try {\r\n state.isMerchantPayerCompaniesApiLoading = true;\r\n const merchantPayerResponse = await MerchantService.getMerchantPayerCompanies(state.transactionId);\r\n commit(\"setMerchantPayerCompanies\", merchantPayerResponse);\r\n state.isMerchantPayerCompaniesApiLoading = false;\r\n } catch (error) {\r\n state.isMerchantPayerCompaniesApiLoading = false;\r\n logger.error(error);\r\n }\r\n },\r\n\r\n async extendUserSession({ state, dispatch }) {\r\n try {\r\n const response = await UserService.getSession(state.transactionId);\r\n if (response && response.token && response.token !== \"null\") {\r\n await dispatch(\"saveJWTToken\", response.token);\r\n }\r\n } catch (error) {\r\n logger.error(error);\r\n }\r\n },\r\n\r\n updateDefaultPaymentMethod({ getters, commit, state }) {\r\n const defaultPaymentMethods = state.payer.paymentMethods.filter(\r\n (paymentMethod) =>\r\n getters.isPaymentMethodAccepted(paymentMethod) && paymentMethod.companyName === state.invoice.payerCompany\r\n );\r\n if (defaultPaymentMethods.length) {\r\n // Default payment method or the first one\r\n const defaultPaymentMethod =\r\n defaultPaymentMethods.find((paymentMethod) => paymentMethod.isDefault) || defaultPaymentMethods[0];\r\n commit(\"selectPaymentMethod\", defaultPaymentMethod.id);\r\n } else {\r\n commit(\"selectPaymentMethod\", null);\r\n }\r\n },\r\n\r\n async getPayerPaymentMethods({ dispatch, commit, state }) {\r\n try {\r\n commit(\"setLoadingPaymentMethods\", true);\r\n const response = await PayerService.getPaymentMethods(state.payer.userId, state.transactionId);\r\n //add the cards to store\r\n commit(\"setPayerPaymentMethods\", response);\r\n\r\n dispatch(\"updateDefaultPaymentMethod\");\r\n } catch (error) {\r\n logger.error(error);\r\n commit(\"setExtraDataLoadingError\", true);\r\n } finally {\r\n commit(\"setLoadingPaymentMethods\", false);\r\n }\r\n },\r\n\r\n async getPayerDetails({ state, commit, dispatch }) {\r\n try {\r\n commit(\"setLoadingUserDetails\", true);\r\n commit(\"clearPayerDetails\");\r\n const response = await PayerService.getPayerDetails(state.transactionId);\r\n if (response && response.length) {\r\n if (state.user.isAdminRole) {\r\n commit(\"setPayersList\", response);\r\n } else {\r\n commit(\"setPayerDetails\", response[0]);\r\n if (state.payer.userId) dispatch(\"getPayerPaymentMethods\");\r\n }\r\n }\r\n } catch (error) {\r\n logger.error(error, error.response);\r\n commit(\"setExtraDataLoadingError\", true);\r\n } finally {\r\n commit(\"setLoadingUserDetails\", false);\r\n }\r\n },\r\n\r\n async getMerchantTandC({ state, commit }, consultingServiceIds) {\r\n try {\r\n const response = await TermService.getMerchantTerms(state.transactionId, consultingServiceIds);\r\n commit(\"setTermsAndConditions\", response);\r\n } catch (error) {\r\n logger.error(error, error.response);\r\n commit(\"setExtraDataLoadingError\", true);\r\n }\r\n },\r\n\r\n async getTermsDetails({ commit }, terms) {\r\n try {\r\n commit(\"setLoadingTerms\", true);\r\n await Promise.all(\r\n terms.map(async (term) => {\r\n const termData = await HttpClient.get(term.endpoint);\r\n commit(\"updateTermDetails\", termData);\r\n })\r\n );\r\n } catch (error) {\r\n logger.error(error);\r\n commit(\"setExtraDataLoadingError\", true);\r\n } finally {\r\n commit(\"setLoadingTerms\", false);\r\n }\r\n },\r\n\r\n async getInvoiceDetails({ commit, dispatch, state }, transactionId) {\r\n commit(\"setTransactionId\", transactionId);\r\n try {\r\n commit(\"setLoadingInvoiceDetails\", true);\r\n const response = await InvoiceService.getInvoice(state.transactionId);\r\n\r\n //check if npe is enabled in config\r\n dispatch(\"checkIfNpeEnabled\", response);\r\n commit(\"transactionDataInit\", response);\r\n commit(\"setTermsAndConditions\", response.termsAndConditions);\r\n\r\n // Set the page title for every page except Virtual Terminal\r\n if (router.currentRoute.name !== \"TransactionSearch\") {\r\n dispatch(\"setPageTitle\");\r\n }\r\n } catch (error) {\r\n if (error.response.data) {\r\n commit(\"transactionError\", error.response.data.Message);\r\n } else {\r\n commit(\"transactionError\", \"Error fetching invoice details.\");\r\n }\r\n } finally {\r\n commit(\"setLoadingInvoiceDetails\", false);\r\n }\r\n },\r\n\r\n async generateNewTransactionId({ state }, payload) {\r\n const response = await InvoiceService.generateTransactionId({\r\n ...payload.requestBody,\r\n TransactionId: state.transactionId,\r\n });\r\n if (response.transactionId) {\r\n await router.push({\r\n path: payload.redirectPath,\r\n query: { transactionId: response.transactionId },\r\n });\r\n } else {\r\n this.errorMessage = \"Error generating transaction ID.\";\r\n }\r\n },\r\n\r\n checkIfInvoiceIsSynced({ commit }, payload) {\r\n if (payload.invoiceDetails == undefined) {\r\n //checks if invoice is synced - if not will log user out and go into prepayment // guest flow\r\n commit(\"logoutUser\");\r\n commit(\"continueAsGuest\");\r\n }\r\n },\r\n\r\n setPageTitle({ state, getters }) {\r\n document.title = `Wise-Pay | Invoice: ${state.invoice.invoiceNumber} - Amount Due: ${getters.invoiceAmountDue}`;\r\n },\r\n\r\n checkIfNpeEnabled({ state }, payload) {\r\n state.isNpeEnabled = payload.isNewPaymentExperienceEnabled;\r\n\r\n //TODO turn on redirects\r\n //redirect user if NPE is disbled\r\n if (!payload.isNewPaymentExperienceEnabled && payload.isNewPaymentExperienceEnabled !== undefined) {\r\n window.location.href = payload.oldPaymentExperienceUrl;\r\n }\r\n },\r\n\r\n // all guest payments are processed in the function below\r\n async guestPayment({ state, getters, commit }, acceptedTerms) {\r\n const data = {\r\n TransactionId: state.transactionId,\r\n TokenFromCardProvider: getters.selectedPaymentMethod.token,\r\n MaskedCreditCard: {\r\n cardName: getters.selectedPaymentMethod.cardName,\r\n cardNumber: getters.selectedPaymentMethod.maskedCardNumber,\r\n cardExpiry: getters.selectedPaymentMethod.cardExpiry,\r\n cardType: getters.selectedPaymentMethod.cardType,\r\n },\r\n PaymentAmount: {\r\n TransactionAmount: state.payingToday,\r\n CardType: getters.selectedPaymentMethod.cardType,\r\n SurchargeAmount: getters.totalSurcharge,\r\n IsOverrideSurcharge: state.merchant.overrideSurcharge,\r\n },\r\n AcceptedTermsAndConditions: acceptedTerms.map((term) => term.getPayload()),\r\n BillingDetails: {},\r\n PayerUserId: state.payer.userId,\r\n };\r\n\r\n //if avs is enabled push billing information for the card to config;\r\n if (state.merchant.isAvsEnabled && getters.selectedPaymentMethod.isCreditCard) {\r\n data.BillingDetails.Country = getters.selectedPaymentMethod.billingDetails.country;\r\n data.BillingDetails.State = getters.selectedPaymentMethod.billingDetails.state;\r\n data.BillingDetails.Suburb = getters.selectedPaymentMethod.billingDetails.suburb;\r\n data.BillingDetails.PostCode = getters.selectedPaymentMethod.billingDetails.postcode;\r\n data.BillingDetails.StreetAddress = getters.selectedPaymentMethod.billingDetails.streetAddress;\r\n data.BillingDetails.StreetAddressLineTwo = getters.selectedPaymentMethod.billingDetails.streetAddressLineTwo;\r\n }\r\n\r\n if (state.isBillingDetailsUpdated) {\r\n data.BillingDetails.FirstName = state.payer.firstName;\r\n data.BillingDetails.LastName = state.payer.lastName;\r\n data.BillingDetails.Company = state.payer.company;\r\n data.BillingDetails.PhoneNumber = state.payer.phoneNumber;\r\n data.BillingDetails.Email = state.payer.email;\r\n data.IsBillingDetailsUpdated = state.isBillingDetailsUpdated;\r\n }\r\n try {\r\n // Handles edge case where this method was still called even after the first attempt failed\r\n if (state.isPaymentEndpointFailed) {\r\n state.payment = {};\r\n commit(\"paymentError\", \"\");\r\n return;\r\n }\r\n\r\n const response = await PaymentService.payAsGuest(data);\r\n state.payment = response;\r\n\r\n // Check and proceed if the payment is for the Third-Party Integration & `returnUrl` is present\r\n // Redirect to the ReturnUrl whether the payment is successful or not\r\n if (getters.isThirdPartyIntegrationReturnUrlPresent) {\r\n commit(\"paymentThirdPartyReturnUrl\");\r\n return;\r\n }\r\n\r\n // This is for the normal invoices\r\n if (response.transactionResult?.IsSuccess) {\r\n commit(\"paymentSuccessful\");\r\n } else {\r\n commit(\"paymentError\", response.transactionResult.ErrorDetails[0].CustomErrorMessage);\r\n }\r\n } catch (error) {\r\n state.isPaymentEndpointFailed = true;\r\n state.payment = error.response.data;\r\n\r\n // Check and proceed if the payment is for the Third-Party Integration & `returnUrl` is present\r\n // Redirect to the ReturnUrl whether the payment is successful or not\r\n if (getters.isThirdPartyIntegrationReturnUrlPresent) {\r\n commit(\"paymentThirdPartyReturnUrl\");\r\n return;\r\n }\r\n\r\n // This is for the normal invoices\r\n commit(\"paymentError\", error.response.data.Message);\r\n } finally {\r\n commit(\"paymentInProgress\", false);\r\n }\r\n },\r\n\r\n async loggedInUserPayment({ state, getters, commit }, acceptedTerms) {\r\n const data = {\r\n TransactionId: state.transactionId,\r\n SavedPaymentMethod: {\r\n Id: getters.selectedPaymentMethod.id,\r\n Type: getters.selectedPaymentMethod.type,\r\n },\r\n PaymentAmount: {\r\n TransactionAmount: state.payingToday,\r\n CardType: getters.selectedPaymentMethod.cardType,\r\n SurchargeAmount: getters.totalSurcharge,\r\n IsOverrideSurcharge: state.merchant.overrideSurcharge,\r\n },\r\n AcceptedTermsAndConditions: acceptedTerms.map((term) => term.getPayload()),\r\n BillingDetails: {},\r\n };\r\n\r\n if (state.isBillingDetailsUpdated) {\r\n data.BillingDetails.FirstName = state.payer.firstName;\r\n data.BillingDetails.LastName = state.payer.lastName;\r\n data.BillingDetails.Company = state.payer.company;\r\n data.BillingDetails.PhoneNumber = state.payer.phoneNumber;\r\n data.BillingDetails.Email = state.payer.email;\r\n data.IsBillingDetailsUpdated = state.isBillingDetailsUpdated;\r\n }\r\n\r\n //if payment is scheduled\r\n if (state.scheduledPaymentDate) {\r\n data.ScheduledPaymentDate = format(new Date(state.scheduledPaymentDate), \"yyyy-MM-dd\");\r\n }\r\n\r\n try {\r\n // Handles edge case where this method was still called even after the first attempt failed\r\n if (state.isPaymentEndpointFailed) {\r\n state.payment = {};\r\n commit(\"paymentError\", \"\");\r\n return;\r\n }\r\n\r\n const response = await PaymentService.payAsLoggedInUser(state.payer.userId, data);\r\n state.payment = response;\r\n\r\n // Check and proceed if the payment is for the Third-Party Integration & `returnUrl` is present\r\n // Redirect to the ReturnUrl whether the payment is successful or not\r\n if (getters.isThirdPartyIntegrationReturnUrlPresent) {\r\n commit(\"paymentThirdPartyReturnUrl\");\r\n return;\r\n }\r\n\r\n // This is for the normal invoices\r\n if (response.transactionResult?.IsSuccess) {\r\n commit(\"paymentSuccessful\");\r\n } else {\r\n commit(\"paymentError\", response.transactionResult.ErrorDetails[0].CustomErrorMessage);\r\n }\r\n } catch (error) {\r\n state.isPaymentEndpointFailed = true;\r\n state.payment = error.response.data;\r\n\r\n // Check and proceed if the payment is for the Third-Party Integration & `returnUrl` is present\r\n // Redirect to the ReturnUrl whether the payment is successful or not\r\n if (getters.isThirdPartyIntegrationReturnUrlPresent) {\r\n commit(\"paymentThirdPartyReturnUrl\");\r\n return;\r\n }\r\n\r\n // This is for the normal invoices\r\n commit(\"paymentError\", error.response.data.Message);\r\n } finally {\r\n commit(\"paymentInProgress\", false);\r\n }\r\n },\r\n\r\n async getRequiredTermsDetails({ dispatch }, requiredTerms) {\r\n const unloadedTerms = requiredTerms.filter((term) => !term.isLoaded);\r\n await dispatch(\"getTermsDetails\", unloadedTerms);\r\n },\r\n\r\n async getOnboardingDetails({ commit }, token) {\r\n try {\r\n commit(\"setOnboardingToken\", token);\r\n commit(\"setLoadingOnboardingData\", true);\r\n const response = await OnboardingService.getOnboardingDetails(token);\r\n commit(\"initializeOnboardingData\", response);\r\n commit(\"setTermsAndConditions\", response.termsAndConditions);\r\n } catch (error) {\r\n if (error.statusCode === 410) {\r\n commit(\"setOnboardingAsExpired\");\r\n } else {\r\n commit(\"setLoadingOnboardingDataError\", true);\r\n }\r\n } finally {\r\n commit(\"setLoadingOnboardingData\", false);\r\n }\r\n },\r\n\r\n async getOnboardingPayerDetails({ commit, state }) {\r\n const response = await OnboardingService.getPayerDetails(state.onboardingToken);\r\n commit(\"setPayerDetails\", {\r\n ...response,\r\n company: state.payer.company,\r\n });\r\n commit(\"setAutoPaymentTermsToOtherPayerStatus\", response.isTermsAssignedToOtherPayer);\r\n },\r\n\r\n async acceptOnboardingTerms({ state }) {\r\n return OnboardingService.acceptTerms(state.onboardingToken, state.onboardingTermsId);\r\n },\r\n\r\n async logPayerOnboardingEvent({ state }, event) {\r\n logger.info({\r\n event,\r\n payerOnboardingToken: state.onboardingToken,\r\n });\r\n },\r\n\r\n async setupPayerOnboarding({ state, getters }, acceptedTerms) {\r\n return OnboardingService.onboardPayer(state.onboardingToken, {\r\n autoPaymentPaymentMethodId: getters.selectedPaymentMethod && getters.selectedPaymentMethod.id,\r\n acceptedTermsAndConditions: acceptedTerms.map((terms) => terms.getPayload()),\r\n });\r\n },\r\n\r\n async isPaymentDetailsInEdit({ commit }, payload) {\r\n commit(\"setIsPaymentDetailsInEdit\", payload);\r\n },\r\n};\r\n","import Payer from \"@/models/payer\";\r\nimport User from \"@/models/user\";\r\nimport Merchant from \"@/models/merchant\";\r\nimport Invoice from \"@/models/invoice\";\r\n\r\nexport default {\r\n tokenization: {},\r\n transactionId: \"\",\r\n jwt: \"\",\r\n jwtTimestamp: null,\r\n checkoutStep: 0,\r\n\r\n //show login after fetching terms\r\n showLoginPanel: false,\r\n\r\n payment: {\r\n transactionResult: {\r\n TransactionId: \"\",\r\n IsSuccess: null,\r\n ErrorDetails: [],\r\n AccountMerchantLogId: \"\",\r\n },\r\n downloadInvoiceUrl: \"\",\r\n downloadSurchargeInvoiceUrl: \"\",\r\n message: \"\",\r\n // invoice has been paid yet.\r\n paymentStatus: false,\r\n paymentErrorMessage: \"\",\r\n },\r\n\r\n user: new User(),\r\n payer: new Payer(),\r\n\r\n isBillingDetailsUpdated: false,\r\n isRegisteringNewPayer: false,\r\n //if user registered, this url will be used to setup a password\r\n createPasswordUrl: \"\",\r\n\r\n merchant: new Merchant(),\r\n invoice: new Invoice(),\r\n\r\n //user has to select (click) on one of the payment methods to select it.\r\n selectedPaymentMethodIndex: null,\r\n\r\n //user sets this on how much he wants to pay - default is the value of invoice.amountDue\r\n payingToday: 0,\r\n surcharge: 0,\r\n\r\n //date of scheduled payment\r\n scheduledPaymentDate: \"\",\r\n\r\n termsAndConditions: {\r\n isSignatureRequired: false,\r\n signature: \"\",\r\n acceptedBy: \"\",\r\n acceptedByPosition: \"\",\r\n terms: [],\r\n },\r\n isVirtualTerminal: false,\r\n paymentInProgress: false,\r\n\r\n extraDataLoadingError: false,\r\n loadingInvoiceDetails: false,\r\n loadingTerms: false,\r\n loadingUserDetails: false,\r\n loadingPaymentMethods: false,\r\n\r\n onboardingToken: null,\r\n onboardingTermsId: null,\r\n partnerPortalUrl: null,\r\n isAutoPaymentTermsAssignedToOtherPayer: false,\r\n isOnboardingExpired: false,\r\n isUserActivated: false,\r\n isLoadingOnboardingData: false,\r\n isLoadingOnboardingDataError: false,\r\n\r\n connectWiseSell: {},\r\n\r\n //handles the alert details on each card\r\n alertGroups: {\r\n userDetails: [],\r\n billingDetails: [],\r\n paymentDetails: [],\r\n paymentReview: [],\r\n invoiceSearch: [],\r\n },\r\n\r\n thirdPartyIntegration: {},\r\n redirectInProgress: false,\r\n allowPartPayment: false,\r\n isNewPrepaymentFlowEnabled: false,\r\n isGuestBankPaymentAccepted: false,\r\n isGuestCreditCardPaymentAccepted: false,\r\n isBaseCurrency: null,\r\n\r\n userDetailsStep: {},\r\n requestAuthResponseBodyForTermsAcceptance: {},\r\n\r\n // Zero quote flow for sign-up\r\n avsBillingDetailsForZeroQuoteFlow: {},\r\n\r\n merchantPayerCompanies: [],\r\n isMerchantPayerCompaniesApiLoading: false,\r\n isPaymentDetailsInEdit: false,\r\n isPaymentEndpointFailed: false,\r\n accountId: 0,\r\n accountName: \"\"\r\n};\r\n","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport getters from \"./getters\";\r\nimport mutations from \"./mutations\";\r\nimport actions from \"./actions\";\r\nimport state from \"./state\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n});\r\n","import axios from \"axios\";\r\nimport store from \"../store/store\";\r\n\r\n/** HttpClient **/\r\nexport class HttpClient {\r\n static getUrl(url, data) {\r\n return this.baseUrl + this._serializeUrl(url, data);\r\n }\r\n static get(url, data) {\r\n return this._send(\"GET\", this._serializeUrl(url, data));\r\n }\r\n static post(url, data) {\r\n return this._send(\"POST\", url, data);\r\n }\r\n static put(url, data) {\r\n return this._send(\"PUT\", url, data);\r\n }\r\n static delete(url, data) {\r\n return this._send(\"DELETE\", this._serializeUrl(url, data));\r\n }\r\n static get baseUrl() {\r\n return \"\";\r\n }\r\n static async _send(method, url, data, headers, axiosConfig) {\r\n const response = await axios.request({\r\n ...axiosConfig,\r\n method,\r\n url,\r\n data,\r\n headers,\r\n });\r\n // Only require data attribute for success response\r\n return response.data;\r\n }\r\n static _serializeUrl(url, data) {\r\n let serializedUrl = url;\r\n if (data) {\r\n serializedUrl += `${url.includes(\"?\") ? \"&\" : \"?\"}${new URLSearchParams(data).toString()}`;\r\n }\r\n return serializedUrl;\r\n }\r\n}\r\n\r\n/** WsApi: Public Wise Sync API Client **/\r\nexport class WsApi extends HttpClient {\r\n static _send(method, url, data, headers) {\r\n return super._send(method, url, data, headers, {\r\n baseURL: this.baseUrl,\r\n });\r\n }\r\n static get baseUrl() {\r\n return process.env.VUE_APP_ROOT_API;\r\n }\r\n}\r\n\r\n/** Secured Wise Sync API Client **/\r\nexport class SecuredWsApi extends WsApi {\r\n static _send(method, url, data, headers) {\r\n const securedHeaders = headers || {};\r\n if (store.state.jwt) {\r\n securedHeaders.Authorization = \"Bearer \" + store.state.jwt;\r\n }\r\n return super._send(method, url, data, securedHeaders);\r\n }\r\n}\r\n","/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport var ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport var globalConsole = console;\nexport var originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach(function (name) {\n originalConsoleMethods[name] = globalConsole[name];\n});\nvar PREFIX = 'Datadog Browser SDK:';\nexport var display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n};\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n return fn.apply(void 0, args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { display } from './display';\nvar onMonitorErrorCollected;\nvar debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (debugMode) {\n display.error.apply(display, __spreadArray(['[MONITOR]'], args, false));\n }\n}\n//# sourceMappingURL=monitor.js.map","export function includes(candidate, search) {\n return candidate.indexOf(search) !== -1;\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike);\n }\n var array = [];\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) { return array.push(item); });\n }\n else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i]);\n }\n }\n return array;\n}\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i];\n if (predicate(item, i)) {\n return item;\n }\n }\n return undefined;\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\nexport function forEach(list, callback) {\n Array.prototype.forEach.call(list, callback);\n}\nexport function objectValues(object) {\n return Object.keys(object).map(function (key) { return object[key]; });\n}\nexport function objectEntries(object) {\n return Object.keys(object).map(function (key) { return [key, object[key]]; });\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search;\n}\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search;\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector);\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector);\n }\n return false;\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str);\n }\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD';\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return \"\".concat(ch.slice(0, -1), \"\\\\\").concat(ch.charCodeAt(ch.length - 1).toString(16), \" \");\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\".concat(ch);\n });\n}\nexport function assign(target) {\n var toAssign = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n toAssign[_i - 1] = arguments[_i];\n }\n toAssign.forEach(function (source) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n//# sourceMappingURL=polyfills.js.map","import { catchUserErrors } from '../tools/catchUserErrors';\nimport { setDebugMode } from '../tools/monitor';\nimport { assign } from '../tools/utils/polyfills';\nexport function makePublicApi(stub) {\n var publicApi = assign({\n version: \"4.50.1\",\n // This API method is intentionally not monitored, since the only thing executed is the\n // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and\n // we don't want to interfere with the user uncaught exceptions.\n onReady: function (callback) {\n callback();\n },\n }, stub);\n // Add a \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get: function () {\n return setDebugMode;\n },\n enumerable: false,\n });\n return publicApi;\n}\nexport function defineGlobal(global, name, api) {\n var existingGlobalVariable = global[name];\n global[name] = api;\n if (existingGlobalVariable && existingGlobalVariable.q) {\n existingGlobalVariable.q.forEach(function (fn) { return catchUserErrors(fn, 'onReady callback threw an error:')(); });\n }\n}\n//# sourceMappingURL=init.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n var globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","export var ONE_KIBI_BYTE = 1024;\nexport var ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n var length = buffers.reduce(function (total, buffer) { return total + buffer.length; }, 0);\n var result = new Uint8Array(length);\n var offset = 0;\n for (var _i = 0, buffers_1 = buffers; _i < buffers_1.length; _i++) {\n var buffer = buffers_1[_i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n var browserWindow = getGlobalObject();\n var original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';\nimport { monitor } from './monitor';\nimport { getGlobalObject } from './getGlobalObject';\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);\n}\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);\n}\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);\n}\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);\n}\n//# sourceMappingURL=timer.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n var needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n var needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n var inWaitPeriod = false;\n var pendingExecutionWithParameters;\n var pendingTimeoutId;\n return {\n throttled: function () {\n var parameters = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parameters[_i] = arguments[_i];\n }\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn.apply(void 0, parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(void 0, pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return 'array';\n }\n return typeof value;\n}\n//# sourceMappingURL=typeUtils.js.map","import { getType } from './utils/typeUtils';\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker) {\n if (circularReferenceChecker === void 0) { circularReferenceChecker = createCircularReferenceChecker(); }\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination;\n }\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source;\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof RegExp) {\n var flags = source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('');\n return new RegExp(source.source, flags);\n }\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined;\n }\n else if (Array.isArray(source)) {\n var merged_1 = Array.isArray(destination) ? destination : [];\n for (var i = 0; i < source.length; ++i) {\n merged_1[i] = mergeInto(merged_1[i], source[i], circularReferenceChecker);\n }\n return merged_1;\n }\n var merged = getType(destination) === 'object' ? destination : {};\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);\n }\n }\n return merged;\n}\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value);\n}\nexport function combine() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var destination;\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue;\n }\n destination = mergeInto(destination, source);\n }\n return destination;\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n var set_1 = new WeakSet();\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set_1.has(value);\n if (!has) {\n set_1.add(value);\n }\n return has;\n },\n };\n }\n var array = [];\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = array.indexOf(value) >= 0;\n if (!has) {\n array.push(value);\n }\n return has;\n },\n };\n}\n//# sourceMappingURL=mergeInto.js.map","import { noop } from '../utils/functionUtils';\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value);\n }\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n var restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n var restoreValueToJson = detachToJsonMethod(value);\n try {\n return JSON.stringify(value, replacer, space);\n }\n catch (_a) {\n return '<error: unable to serialize object>';\n }\n finally {\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n restoreValuePrototypeToJson();\n restoreValueToJson();\n }\n}\nexport function detachToJsonMethod(value) {\n var object = value;\n var objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return function () {\n object.toJSON = objectToJson;\n };\n }\n return noop;\n}\n//# sourceMappingURL=jsonStringify.js.map","import { display } from '../display';\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { detachToJsonMethod } from './jsonStringify';\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nvar JSON_PATH_ROOT_ELEMENT = '$';\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nvar KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount) {\n var _a;\n if (maxCharacterCount === void 0) { maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT; }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = [];\n var visitedObjectsWithPath = new WeakMap();\n var sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n var accumulatedCharacterCount = ((_a = JSON.stringify(sanitizedData)) === null || _a === void 0 ? void 0 : _a.length) || 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n var containerToProcess = containerQueue.shift();\n var separatorLength = 0; // 0 for the first element, 1 for subsequent elements\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (var key = 0; key < containerToProcess.source.length; key++) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length;\n }\n else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4;\n }\n accumulatedCharacterCount += separatorLength;\n separatorLength = 1;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n else {\n for (var key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;\n separatorLength = 1;\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n }\n }\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n return sanitizedData;\n}\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {\n // Start by handling toJSON, as we want to sanitize its output\n var sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n var sanitizedSource = sanitizeObjects(sourceToSanitize);\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource;\n }\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n var sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return \"[Reference seen at \".concat(visitedObjectsWithPath.get(sourceAsObject), \"]\");\n }\n // Add processed source to queue\n var currentPath = key !== undefined ? \"\".concat(parentPath, \".\").concat(key) : parentPath;\n var target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target: target, path: currentPath });\n return target;\n}\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return \"[BigInt] \".concat(value.toString());\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return \"[Function] \".concat(value.name || 'unknown');\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return \"[Symbol] \".concat(value.description || value.toString());\n }\n return value;\n}\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return {\n isTrusted: value.isTrusted,\n };\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value);\n var match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return \"[\".concat(match[1], \"]\");\n }\n }\n catch (_a) {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]';\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var object = value;\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON();\n }\n catch (_a) {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n return value;\n}\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(\"The data provided has been \".concat(changeType, \" as it is over the limit of \").concat(maxCharacterCount, \" characters:\"), source);\n}\n//# sourceMappingURL=sanitize.js.map","var Observable = /** @class */ (function () {\n function Observable(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n Observable.prototype.subscribe = function (f) {\n var _this = this;\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined;\n }\n this.observers.push(f);\n return {\n unsubscribe: function () {\n _this.observers = _this.observers.filter(function (other) { return f !== other; });\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe();\n }\n },\n };\n };\n Observable.prototype.notify = function (data) {\n this.observers.forEach(function (observer) { return observer(data); });\n };\n return Observable;\n}());\nexport { Observable };\nexport function mergeObservables() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var globalObservable = new Observable(function () {\n var subscriptions = observables.map(function (observable) {\n return observable.subscribe(function (data) { return globalObservable.notify(data); });\n });\n return function () { return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); }); };\n });\n return globalObservable;\n}\n//# sourceMappingURL=observable.js.map","var _a;\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { display } from '../../tools/display';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\nvar CustomerDataLabel = (_a = {},\n _a[0 /* CustomerDataType.FeatureFlag */] = 'feature flag evaluation',\n _a[1 /* CustomerDataType.User */] = 'user',\n _a[2 /* CustomerDataType.GlobalContext */] = 'global context',\n _a[3 /* CustomerDataType.LoggerContext */] = 'logger context',\n _a);\nexport function warnIfCustomerDataLimitReached(bytesCount, customerDataType) {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\"The \".concat(CustomerDataLabel[customerDataType], \" data exceeds the recommended \").concat(CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE, \"KiB threshold. More details: https://docs.datadoghq.com/real_user_monitoring/browser/troubleshooting/#customer-data-exceeds-the-recommended-3kib-warning\"));\n return true;\n }\n return false;\n}\n//# sourceMappingURL=heavyCustomerDataWarning.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { deepClone } from '../../tools/mergeInto';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning';\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createContextManager(customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var context = {};\n var bytesCountCache;\n var alreadyWarned = false;\n var changeObservable = new Observable();\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var computeBytesCountThrottled = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, customerDataType);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY).throttled;\n var contextManager = {\n getBytesCount: function () { return bytesCountCache; },\n /** @deprecated use getContext instead */\n get: function () { return context; },\n /** @deprecated use setContextProperty instead */\n add: function (key, value) {\n context[key] = value;\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n /** @deprecated renamed to removeContextProperty */\n remove: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n /** @deprecated use setContext instead */\n set: function (newContext) {\n context = newContext;\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n getContext: function () { return deepClone(context); },\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n computeBytesCountThrottled(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: function (key, property) {\n context[key] = sanitize(property);\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n removeContextProperty: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n clearContext: function () {\n context = {};\n bytesCountCache = 0;\n changeObservable.notify();\n },\n changeObservable: changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","var BUFFER_LIMIT = 500;\nvar BoundedBuffer = /** @class */ (function () {\n function BoundedBuffer() {\n this.buffer = [];\n }\n BoundedBuffer.prototype.add = function (callback) {\n var length = this.buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n this.buffer.splice(0, 1);\n }\n };\n BoundedBuffer.prototype.drain = function () {\n this.buffer.forEach(function (callback) { return callback(); });\n this.buffer.length = 0;\n };\n return BoundedBuffer;\n}());\nexport { BoundedBuffer };\n//# sourceMappingURL=boundedBuffer.js.map","import { isNumber, round } from './numberUtils';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = 60 * ONE_SECOND;\nexport var ONE_HOUR = 60 * ONE_MINUTE;\nexport var ONE_DAY = 24 * ONE_HOUR;\nexport var ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var correctedOrigin = (dateNow() - performance.now());\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime));\n }\n return getTimeStamp(relativeTime);\n}\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now()));\n}\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration;\n }\n return round(duration * 1e6, 0);\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime();\n}\nexport function timeStampNow() {\n return dateNow();\n}\nexport function relativeNow() {\n return performance.now();\n}\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() };\n}\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() };\n}\nexport function elapsed(start, end) {\n return (end - start);\n}\nexport function addDuration(a, b) {\n return a + b;\n}\n/**\n * Get the time since the navigation was started.\n *\n * Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual\n * time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.\n * Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926\n */\nexport function getRelativeTime(timestamp) {\n return (timestamp - getNavigationStart());\n}\nexport function getTimeStamp(relativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime));\n}\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR;\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nvar navigationStart;\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\nexport function resetNavigationStart() {\n navigationStart = undefined;\n}\n//# sourceMappingURL=timeUtils.js.map","import { endsWith } from '../tools/utils/polyfills';\nimport { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n var eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getAllowedWebViewHosts: function () {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send: function (eventType, event) {\n eventBridgeGlobal.send(JSON.stringify({ eventType: eventType, event: event }));\n },\n };\n}\nexport function canUseEventBridge(currentHost) {\n var _a;\n if (currentHost === void 0) { currentHost = (_a = getGlobalObject().location) === null || _a === void 0 ? void 0 : _a.hostname; }\n var bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some(function (allowedHost) { return currentHost === allowedHost || endsWith(currentHost, \".\".concat(allowedHost)); }));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.js.map","import { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(_, eventTarget, eventNames, listener, _a) {\n var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;\n var listenerWithMonitor = monitor(once\n ? function (event) {\n stop();\n listener(event);\n }\n : listener);\n var options = passive ? { capture: capture, passive: passive } : capture;\n var add = getZoneJsOriginalValue(eventTarget, 'addEventListener');\n eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, listenerWithMonitor, options); });\n function stop() {\n var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener');\n eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, listenerWithMonitor, options); });\n }\n return {\n stop: stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { createContextManager } from './contextManager';\nvar CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nvar storageListeners = [];\nexport function createStoredContextManager(configuration, productKey, customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var storageKey = buildStorageKey(productKey, customerDataType);\n var contextManager = createContextManager(customerDataType, computeBytesCountImpl);\n synchronizeWithStorage();\n storageListeners.push(addEventListener(configuration, window, \"storage\" /* DOM_EVENT.STORAGE */, function (_a) {\n var key = _a.key;\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n return contextManager;\n function synchronizeWithStorage() {\n var rawContext = localStorage.getItem(storageKey);\n var context = rawContext !== null ? JSON.parse(rawContext) : {};\n contextManager.setContext(context);\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return \"\".concat(CONTEXT_STORE_KEY_PREFIX, \"_\").concat(productKey, \"_\").concat(customerDataType);\n}\nexport function removeStorageListeners() {\n storageListeners.map(function (listener) { return listener.stop(); });\n}\n//# sourceMappingURL=storedContextManager.js.map","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"PAGEHIDE\"] = \"pagehide\";\n ExperimentalFeature[\"FEATURE_FLAGS\"] = \"feature_flags\";\n ExperimentalFeature[\"RESOURCE_PAGE_STATES\"] = \"resource_page_states\";\n ExperimentalFeature[\"PAGE_STATES\"] = \"page_states\";\n ExperimentalFeature[\"COLLECT_FLUSH_REASON\"] = \"collect_flush_reason\";\n ExperimentalFeature[\"NO_RESOURCE_DURATION_FROZEN_STATE\"] = \"no_resource_duration_frozen_state\";\n ExperimentalFeature[\"SCROLLMAP\"] = \"scrollmap\";\n ExperimentalFeature[\"INTERACTION_TO_NEXT_PAINT\"] = \"interaction_to_next_paint\";\n ExperimentalFeature[\"WEB_VITALS_ATTRIBUTION\"] = \"web_vitals_attribution\";\n ExperimentalFeature[\"DISABLE_REPLAY_INLINE_CSS\"] = \"disable_replay_inline_css\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nvar enabledExperimentalFeatures = new Set();\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach(function (flag) {\n enabledExperimentalFeatures.add(flag);\n });\n}\nexport function isExperimentalFeatureEnabled(featureName) {\n return enabledExperimentalFeatures.has(featureName);\n}\nexport function resetExperimentalFeatures() {\n enabledExperimentalFeatures.clear();\n}\nexport function getExperimentalFeatures() {\n return enabledExperimentalFeatures;\n}\n//# sourceMappingURL=experimentalFeatures.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { assign } from '../../tools/utils/polyfills';\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser);\n var keys = ['id', 'name', 'email'];\n keys.forEach(function (key) {\n if (key in user) {\n user[key] = String(user[key]);\n }\n });\n return user;\n}\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object';\n if (!isValid) {\n display.error('Unsupported user:', newUser);\n }\n return isValid;\n}\n//# sourceMappingURL=user.js.map","/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold;\n}\nexport function round(num, decimals) {\n return +num.toFixed(decimals);\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100;\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\n//# sourceMappingURL=numberUtils.js.map","import { assign } from './polyfills';\nexport function shallowClone(object) {\n return assign({}, object);\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some(function (key) { return object[key] === value; });\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n var newObject = {};\n for (var _i = 0, _a = Object.keys(object); _i < _a.length; _i++) {\n var key = _a[_i];\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : \"\".concat(1e7, \"-\").concat(1e3, \"-\").concat(4e3, \"-\").concat(8e3, \"-\").concat(1e11).replace(/[018]/g, generateUUID);\n}\nexport function findCommaSeparatedValue(rawString, name) {\n var regex = new RegExp(\"(?:^|;)\\\\s*\".concat(name, \"\\\\s*=\\\\s*([^;]+)\"));\n var matches = regex.exec(rawString);\n return matches ? matches[1] : undefined;\n}\nexport function safeTruncate(candidate, length, suffix) {\n if (suffix === void 0) { suffix = ''; }\n var lastChar = candidate.charCodeAt(length - 1);\n var isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n var correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return \"\".concat(candidate.slice(0, correctedLength)).concat(suffix);\n}\n//# sourceMappingURL=stringUtils.js.map","import { ONE_HOUR, ONE_MINUTE } from '../../tools/utils/timeUtils';\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\n//# sourceMappingURL=sessionConstants.js.map","var browserIsIE;\nexport function isIE() {\n return browserIsIE !== null && browserIsIE !== void 0 ? browserIsIE : (browserIsIE = Boolean(document.documentMode));\n}\nvar browserIsChromium;\nexport function isChromium() {\n return (browserIsChromium !== null && browserIsChromium !== void 0 ? browserIsChromium : (browserIsChromium = !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent)));\n}\nvar browserIsSafari;\nexport function isSafari() {\n return browserIsSafari !== null && browserIsSafari !== void 0 ? browserIsSafari : (browserIsSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent));\n}\n//# sourceMappingURL=browserDetection.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date();\n date.setTime(date.getTime() + expireDelay);\n var expires = \"expires=\".concat(date.toUTCString());\n var sameSite = options && options.crossSite ? 'none' : 'strict';\n var domain = options && options.domain ? \";domain=\".concat(options.domain) : '';\n var secure = options && options.secure ? ';secure' : '';\n document.cookie = \"\".concat(name, \"=\").concat(value, \";\").concat(expires, \";path=/;samesite=\").concat(sameSite).concat(domain).concat(secure);\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_cookie_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n var isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;\n deleteCookie(testCookieName, options);\n return isCookieCorrectlySet;\n }\n catch (error) {\n display.error(error);\n return false;\n }\n}\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache;\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_site_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n var domainLevels = window.location.hostname.split('.');\n var candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = \"\".concat(domainLevels.pop(), \".\").concat(candidateDomain);\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain });\n }\n deleteCookie(testCookieName, { domain: candidateDomain });\n getCurrentSiteCache = candidateDomain;\n }\n return getCurrentSiteCache;\n}\n//# sourceMappingURL=cookie.js.map","export var SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants';\nvar SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/;\nvar SESSION_ENTRY_SEPARATOR = '&';\nexport function isSessionInExpiredState(session) {\n return isEmptyObject(session);\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return objectEntries(session)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value);\n })\n .join(SESSION_ENTRY_SEPARATOR);\n}\nexport function toSessionState(sessionString) {\n var session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n var key = matches[1], value = matches[2];\n session[key] = value;\n }\n });\n }\n return session;\n}\nfunction isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionState.js.map","import { getCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var OLD_SESSION_COOKIE_NAME = '_dd';\nexport var OLD_RUM_COOKIE_NAME = '_dd_r';\nexport var OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport var RUM_SESSION_KEY = 'rum';\nexport var LOGS_SESSION_KEY = 'logs';\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy) {\n var sessionString = getCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n var oldSessionId = getCookie(OLD_SESSION_COOKIE_NAME);\n var oldRumType = getCookie(OLD_RUM_COOKIE_NAME);\n var oldLogsType = getCookie(OLD_LOGS_COOKIE_NAME);\n var session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (!isSessionInExpiredState(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, deleteCookie, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_EXPIRATION_DELAY } from '../sessionConstants';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n var cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions: cookieOptions } : undefined;\n}\nexport function initCookieStrategy(cookieOptions) {\n var cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n clearSession: deleteSessionCookie(cookieOptions),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction retrieveSessionCookie() {\n var sessionString = getCookie(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction deleteSessionCookie(options) {\n return function () {\n deleteCookie(SESSION_STORE_KEY, options);\n };\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {};\n cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nvar LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n var id = generateUUID();\n var testKey = \"\".concat(LOCAL_STORAGE_TEST_KEY).concat(id);\n localStorage.setItem(testKey, id);\n var retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: 'LocalStorage' } : undefined;\n }\n catch (e) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy() {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n clearSession: clearSessionFromLocalStorage,\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n var sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction clearSessionFromLocalStorage() {\n localStorage.removeItem(SESSION_STORE_KEY);\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var LOCK_RETRY_DELAY = 10;\nexport var LOCK_MAX_TRIES = 100;\nvar bufferedOperations = [];\nvar ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries) {\n var _a;\n if (numberOfRetries === void 0) { numberOfRetries = 0; }\n var isLockEnabled = sessionStoreStrategy.isLockEnabled, retrieveSession = sessionStoreStrategy.retrieveSession, persistSession = sessionStoreStrategy.persistSession, clearSession = sessionStoreStrategy.clearSession;\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n var currentLock;\n var currentSession = retrieveSession();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n currentSession.lock = currentLock;\n persistSession(currentSession);\n // if lock is not acquired, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n var processedSession = operations.process(currentSession);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n clearSession();\n }\n else {\n expandSessionState(processedSession);\n persistSession(processedSession);\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n delete currentSession.lock;\n persistSession(currentSession);\n processedSession = currentSession;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentSession);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(function () {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n var nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport var STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n var sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, productKey, computeSessionState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\n var sessionStoreStrategy = sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy();\n var clearSession = sessionStoreStrategy.clearSession, retrieveSession = sessionStoreStrategy.retrieveSession;\n var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n var sessionCache = retrieveActiveSession();\n function expandOrRenewSession() {\n var isTracked;\n processSessionStoreOperations({\n process: function (sessionState) {\n var synchronizedSession = synchronizeSession(sessionState);\n isTracked = expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: function (sessionState) {\n if (isTracked && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (hasSessionInCache() ? synchronizeSession(sessionState) : undefined); },\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (!isActiveSession(sessionState) ? {} : undefined); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (!isActiveSession(sessionState)) {\n sessionState = {};\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function expandOrRenewSessionState(sessionState) {\n var _a = computeSessionState(sessionState[productKey]), trackingType = _a.trackingType, isTracked = _a.isTracked;\n sessionState[productKey] = trackingType;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n return isTracked;\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = {};\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function retrieveActiveSession() {\n var session = retrieveSession();\n if (isActiveSession(session)) {\n return session;\n }\n return {};\n }\n function isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n }\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, STORAGE_POLL_DELAY).throttled,\n expandSession: expandSession,\n getSession: function () { return sessionCache; },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: function () {\n clearSession();\n synchronizeSession({});\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId);\n },\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, getLocationOrigin()).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getOrigin(url) {\n return getLinkElementOrigin(buildUrl(url));\n}\nexport function getPathName(url) {\n var pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : \"/\".concat(pathname);\n}\nexport function getSearch(url) {\n return buildUrl(url).search;\n}\nexport function getHash(url) {\n return buildUrl(url).hash;\n}\nexport function buildUrl(url, base) {\n var supportedURL = getSupportedUrl();\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url);\n }\n catch (error) {\n throw new Error(\"Failed to construct URL: \".concat(String(error), \" \").concat(jsonStringify({ url: url, base: base })));\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(\"Invalid URL: '\".concat(url, \"'\"));\n }\n var doc = document;\n var anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n var baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n doc.body.appendChild(anchorElement);\n }\n anchorElement.href = url;\n return anchorElement;\n}\nvar originalURL = URL;\nvar isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n var url = new originalURL('http://test/path');\n isURLSupported = url.href === 'http://test/path';\n }\n catch (_a) {\n isURLSupported = false;\n }\n }\n return isURLSupported ? originalURL : undefined;\n}\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location);\n}\n/**\n * Fallback\n * On IE HTMLAnchorElement origin is not supported: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n * On Firefox window.location.origin is \"null\" for file: URIs: https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n */\nexport function getLinkElementOrigin(element) {\n if (element.origin && element.origin !== 'null') {\n return element.origin;\n }\n var sanitizedHost = element.host.replace(/(:80|:443)$/, '');\n return \"\".concat(element.protocol, \"//\").concat(sanitizedHost);\n}\n//# sourceMappingURL=urlPolyfill.js.map","export var INTAKE_SITE_STAGING = 'datad0g.com';\nexport var INTAKE_SITE_US1 = 'datadoghq.com';\nexport var INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport var INTAKE_SITE_AP1 = 'ap1.datadoghq.com';\nexport var INTAKE_SITE_US1_FED = 'ddog-gov.com';\n//# sourceMappingURL=intakeSites.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { ExperimentalFeature, isExperimentalFeatureEnabled } from '../../tools/experimentalFeatures';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_AP1, INTAKE_SITE_US1 } from './intakeSites';\nexport var ENDPOINTS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'session-replay',\n};\nvar INTAKE_TRACKS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'replay',\n};\nexport function createEndpointBuilder(initConfiguration, endpointType, configurationTags) {\n var buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, endpointType);\n return {\n build: function (api, payload) {\n var parameters = buildEndpointParameters(initConfiguration, endpointType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n endpointType: endpointType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, endpointType) {\n var path = \"/api/v2/\".concat(INTAKE_TRACKS[endpointType]);\n var proxy = initConfiguration.proxy, proxyUrl = initConfiguration.proxyUrl;\n if (proxy) {\n var normalizedProxyUrl_1 = normalizeUrl(proxy);\n return function (parameters) { return \"\".concat(normalizedProxyUrl_1, \"?ddforward=\").concat(encodeURIComponent(\"\".concat(path, \"?\").concat(parameters))); };\n }\n var host = buildEndpointHost(initConfiguration, endpointType);\n if (proxy === undefined && proxyUrl) {\n // TODO: remove this in a future major.\n var normalizedProxyUrl_2 = normalizeUrl(proxyUrl);\n return function (parameters) {\n return \"\".concat(normalizedProxyUrl_2, \"?ddforward=\").concat(encodeURIComponent(\"https://\".concat(host).concat(path, \"?\").concat(parameters)));\n };\n }\n return function (parameters) { return \"https://\".concat(host).concat(path, \"?\").concat(parameters); };\n}\nfunction buildEndpointHost(initConfiguration, endpointType) {\n var _a = initConfiguration.site, site = _a === void 0 ? INTAKE_SITE_US1 : _a, internalAnalyticsSubdomain = initConfiguration.internalAnalyticsSubdomain;\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return \"\".concat(internalAnalyticsSubdomain, \".\").concat(INTAKE_SITE_US1);\n }\n var domainParts = site.split('.');\n var extension = domainParts.pop();\n var subdomain = site !== INTAKE_SITE_AP1 ? \"\".concat(ENDPOINTS[endpointType], \".\") : '';\n return \"\".concat(subdomain, \"browser-intake-\").concat(domainParts.join('-'), \".\").concat(extension);\n}\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters(_a, endpointType, configurationTags, api, _b) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var retry = _b.retry, flushReason = _b.flushReason, encoding = _b.encoding;\n var tags = [\"sdk_version:\".concat(\"4.50.1\"), \"api:\".concat(api)].concat(configurationTags);\n if (flushReason && isExperimentalFeatureEnabled(ExperimentalFeature.COLLECT_FLUSH_REASON)) {\n tags.push(\"flush_reason:\".concat(flushReason));\n }\n if (retry) {\n tags.push(\"retry_count:\".concat(retry.count), \"retry_after:\".concat(retry.lastFailureStatus));\n }\n var parameters = [\n 'ddsource=browser',\n \"ddtags=\".concat(encodeURIComponent(tags.join(','))),\n \"dd-api-key=\".concat(clientToken),\n \"dd-evp-origin-version=\".concat(encodeURIComponent(\"4.50.1\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\n ];\n if (encoding) {\n parameters.push(\"dd-evp-encoding=\".concat(encoding));\n }\n if (endpointType === 'rum') {\n parameters.push(\"batch_time=\".concat(timeStampNow()));\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","import { display } from '../../tools/display';\nexport var TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n var env = configuration.env, service = configuration.service, version = configuration.version, datacenter = configuration.datacenter;\n var tags = [];\n if (env) {\n tags.push(buildTag('env', env));\n }\n if (service) {\n tags.push(buildTag('service', service));\n }\n if (version) {\n tags.push(buildTag('version', version));\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter));\n }\n return tags;\n}\nvar FORBIDDEN_CHARACTERS = /[^a-z0-9_:./-]/;\nexport function buildTag(key, rawValue) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n var valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || FORBIDDEN_CHARACTERS.test(rawValue)) {\n display.warn(\"\".concat(key, \" value doesn't meet tag requirements and will be sanitized\"));\n }\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n var sanitizedValue = rawValue.replace(/,/g, '_');\n return \"\".concat(key, \":\").concat(sanitizedValue);\n}\n//# sourceMappingURL=tags.js.map","import { objectValues, assign } from '../../tools/utils/polyfills';\nimport { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1 } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n var tags = buildTags(initConfiguration);\n var endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n var intakeUrlPrefixes = objectValues(endpointBuilders).map(function (builder) { return builder.urlPrefix; });\n var replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags);\n return assign({\n isIntakeUrl: function (url) { return intakeUrlPrefixes.some(function (intakeEndpoint) { return url.indexOf(intakeEndpoint) === 0; }); },\n replica: replicaConfiguration,\n site: initConfiguration.site || INTAKE_SITE_US1,\n }, endpointBuilders);\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'sessionReplay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n var replicaConfiguration = assign({}, initConfiguration, {\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n });\n var replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n intakeUrlPrefixes.push.apply(intakeUrlPrefixes, objectValues(replicaEndpointBuilders).map(function (builder) { return builder.urlPrefix; }));\n return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders);\n}\n//# sourceMappingURL=transportConfiguration.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { display } from '../../tools/display';\nimport { ExperimentalFeature, addExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { ONE_SECOND } from '../../tools/utils/timeUtils';\nimport { isPercentage } from '../../tools/utils/numberUtils';\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { objectHasValue } from '../../tools/utils/objectUtils';\nimport { assign } from '../../tools/utils/polyfills';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n var sessionSampleRate = (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.sampleRate;\n if (sessionSampleRate !== undefined && !isPercentage(sessionSampleRate)) {\n display.error('Session Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetrySampleRate !== undefined && !isPercentage(initConfiguration.telemetrySampleRate)) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetryConfigurationSampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetryConfigurationSampleRate)) {\n display.error('Telemetry Configuration Sample Rate should be a number between 0 and 100');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n if (Array.isArray(initConfiguration.enableExperimentalFeatures)) {\n addExperimentalFeatures(initConfiguration.enableExperimentalFeatures.filter(function (flag) {\n return objectHasValue(ExperimentalFeature, flag);\n }));\n }\n return assign({\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: sessionSampleRate !== null && sessionSampleRate !== void 0 ? sessionSampleRate : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n service: initConfiguration.service,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND),\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n }, computeTransportConfiguration(initConfiguration));\n}\nexport function serializeConfiguration(initConfiguration) {\n var _a, _b;\n var proxy = (_a = initConfiguration.proxy) !== null && _a !== void 0 ? _a : initConfiguration.proxyUrl;\n return {\n session_sample_rate: (_b = initConfiguration.sessionSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.sampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: proxy !== undefined ? !!proxy : undefined,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n track_resources: initConfiguration.trackResources,\n track_long_task: initConfiguration.trackLongTasks,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { startsWith } from '../../tools/utils/polyfills';\nvar UNKNOWN_FUNCTION = '?';\n/**\n * Computes a stack trace for an exception.\n */\nexport function computeStackTrace(ex) {\n var stack = [];\n var stackProperty = tryToGetString(ex, 'stack');\n var exString = String(ex);\n if (stackProperty && startsWith(stackProperty, exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach(function (line) {\n var stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION;\n }\n stack.push(stackFrame);\n }\n });\n }\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack: stack,\n };\n}\nvar fileUrl = '((?:file|https?|blob|chrome-extension|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)';\nvar filePosition = '(?::(\\\\d+))';\nvar CHROME_LINE_RE = new RegExp(\"^\\\\s*at (.*?) ?\\\\(\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"?\\\\)?\\\\s*$\"), 'i');\nvar CHROME_EVAL_RE = new RegExp(\"\\\\((\\\\S*)\".concat(filePosition).concat(filePosition, \"\\\\)\"));\nfunction parseChromeLine(line) {\n var parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n var submatch = CHROME_EVAL_RE.exec(parts[2]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n };\n}\nvar CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(\"^\\\\s*at ?\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"??\\\\s*$\"), 'i');\nfunction parseChromeAnonymousLine(line) {\n var parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n };\n}\nvar WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n var parts = WINJS_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n };\n}\nvar GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n var parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = GECKO_EVAL_RE.exec(parts[3]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = undefined; // no column when eval\n }\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n };\n}\nfunction tryToGetString(candidate, property) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined;\n }\n var value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { computeStackTrace } from '../tracekit';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { noop } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nexport var NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError(_a) {\n var stackTrace = _a.stackTrace, originalError = _a.originalError, handlingStack = _a.handlingStack, startClocks = _a.startClocks, nonErrorPrefix = _a.nonErrorPrefix, source = _a.source, handling = _a.handling;\n var isErrorInstance = originalError instanceof Error;\n var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n var type = stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name;\n var fingerprint = tryToGetFingerprint(originalError);\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n handlingStack: handlingStack,\n originalError: originalError,\n type: type,\n message: message,\n stack: stack,\n causes: causes,\n fingerprint: fingerprint,\n };\n}\nfunction computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.message) && (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name)\n ? stackTrace.message\n : !isErrorInstance\n ? \"\".concat(nonErrorPrefix, \" \").concat(jsonStringify(sanitize(originalError)))\n : 'Empty message';\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false;\n }\n if (isErrorInstance) {\n return true;\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined);\n}\nexport function tryToGetFingerprint(originalError) {\n return originalError instanceof Error && 'dd_fingerprint' in originalError\n ? String(originalError.dd_fingerprint)\n : undefined;\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack);\n stack.stack.forEach(function (frame) {\n var func = frame.func === '?' ? '<anonymous>' : frame.func;\n var args = frame.args && frame.args.length > 0 ? \"(\".concat(frame.args.join(', '), \")\") : '';\n var line = frame.line ? \":\".concat(frame.line) : '';\n var column = frame.line && frame.column ? \":\".concat(frame.column) : '';\n result += \"\\n at \".concat(func).concat(args, \" @ \").concat(frame.url).concat(line).concat(column);\n });\n return result;\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function formatErrorMessage(stack) {\n return \"\".concat(stack.name || 'Error', \": \").concat(stack.message);\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2;\n var error = new Error();\n var formattedStack;\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error;\n }\n catch (e) {\n noop();\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error;\n var causes = [];\n while ((currentError === null || currentError === void 0 ? void 0 : currentError.cause) instanceof Error && causes.length < 10) {\n var stackTrace = computeStackTrace(currentError.cause);\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n });\n currentError = currentError.cause;\n }\n return causes.length ? causes : undefined;\n}\n//# sourceMappingURL=error.js.map","import { toStackTraceString } from '../error/error';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { includes } from '../../tools/utils/polyfills';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n var observables = [];\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n var reportTypes = apis.filter(function (api) { return api !== RawReportType.cspViolation; });\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables.apply(void 0, observables);\n}\nfunction createReportObservable(reportTypes) {\n var observable = new Observable(function () {\n if (!window.ReportingObserver) {\n return;\n }\n var handleReports = monitor(function (reports, _) {\n return reports.forEach(function (report) {\n observable.notify(buildRawReportFromReport(report));\n });\n });\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return function () {\n observer.disconnect();\n };\n });\n return observable;\n}\nfunction createCspViolationReportObservable(configuration) {\n var observable = new Observable(function () {\n var stop = addEventListener(configuration, document, \"securitypolicyviolation\" /* DOM_EVENT.SECURITY_POLICY_VIOLATION */, function (event) {\n observable.notify(buildRawReportFromCspViolation(event));\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction buildRawReportFromReport(_a) {\n var type = _a.type, body = _a.body;\n return {\n type: type,\n subtype: body.id,\n message: \"\".concat(type, \": \").concat(body.message),\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n };\n}\nfunction buildRawReportFromCspViolation(event) {\n var type = RawReportType.cspViolation;\n var message = \"'\".concat(event.blockedURI, \"' blocked by '\").concat(event.effectiveDirective, \"' directive\");\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: \"\".concat(type, \": \").concat(message),\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? \"\".concat(message, \" of the policy \\\"\").concat(safeTruncate(event.originalPolicy, 100, '...'), \"\\\"\")\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber !== null && lineNumber !== void 0 ? lineNumber : undefined,\n column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : undefined,\n },\n ],\n })\n : undefined;\n}\n//# sourceMappingURL=reportObservable.js.map","import { arrayFrom } from './polyfills';\nexport function removeDuplicates(array) {\n var set = new Set();\n array.forEach(function (item) { return set.add(item); });\n return arrayFrom(set);\n}\n//# sourceMappingURL=arrayUtils.js.map","import { serializeConfiguration, assign, ONE_KIBI_BYTE, validateAndBuildConfiguration, display, removeDuplicates, ConsoleApiName, RawReportType, includes, objectValues, } from '@datadog/browser-core';\n/**\n * arbitrary value, byte precision not needed\n */\nexport var DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT = 32 * ONE_KIBI_BYTE;\nexport function validateAndBuildLogsConfiguration(initConfiguration) {\n var baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n var forwardConsoleLogs = validateAndBuildForwardOption(initConfiguration.forwardConsoleLogs, objectValues(ConsoleApiName), 'Forward Console Logs');\n var forwardReports = validateAndBuildForwardOption(initConfiguration.forwardReports, objectValues(RawReportType), 'Forward Reports');\n if (!baseConfiguration || !forwardConsoleLogs || !forwardReports) {\n return;\n }\n if (initConfiguration.forwardErrorsToLogs && !includes(forwardConsoleLogs, ConsoleApiName.error)) {\n forwardConsoleLogs.push(ConsoleApiName.error);\n }\n return assign({\n forwardErrorsToLogs: initConfiguration.forwardErrorsToLogs !== false,\n forwardConsoleLogs: forwardConsoleLogs,\n forwardReports: forwardReports,\n requestErrorResponseLengthLimit: DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT,\n }, baseConfiguration);\n}\nexport function validateAndBuildForwardOption(option, allowedValues, label) {\n if (option === undefined) {\n return [];\n }\n if (!(option === 'all' || (Array.isArray(option) && option.every(function (api) { return includes(allowedValues, api); })))) {\n display.error(\"\".concat(label, \" should be \\\"all\\\" or an array with allowed values \\\"\").concat(allowedValues.join('\", \"'), \"\\\"\"));\n return;\n }\n return option === 'all' ? allowedValues : removeDuplicates(option);\n}\nexport function serializeLogsConfiguration(configuration) {\n var baseSerializedInitConfiguration = serializeConfiguration(configuration);\n return assign({\n forward_errors_to_logs: configuration.forwardErrorsToLogs,\n forward_console_logs: configuration.forwardConsoleLogs,\n forward_reports: configuration.forwardReports,\n }, baseSerializedInitConfiguration);\n}\n//# sourceMappingURL=configuration.js.map","export var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { clocksNow, computeRawError, computeStackTrace, assign, combine, createContextManager, ErrorSource, monitored, sanitize, } from '@datadog/browser-core';\nexport var StatusType = {\n debug: 'debug',\n error: 'error',\n info: 'info',\n warn: 'warn',\n};\nexport var HandlerType = {\n console: 'console',\n http: 'http',\n silent: 'silent',\n};\nexport var STATUSES = Object.keys(StatusType);\nvar Logger = /** @class */ (function () {\n function Logger(handleLogStrategy, name, handlerType, level, loggerContext) {\n if (handlerType === void 0) { handlerType = HandlerType.http; }\n if (level === void 0) { level = StatusType.debug; }\n if (loggerContext === void 0) { loggerContext = {}; }\n this.handleLogStrategy = handleLogStrategy;\n this.handlerType = handlerType;\n this.level = level;\n this.contextManager = createContextManager(3 /* CustomerDataType.LoggerContext */);\n this.contextManager.set(assign({}, loggerContext, name ? { logger: { name: name } } : undefined));\n }\n Logger.prototype.log = function (message, messageContext, status, error) {\n if (status === void 0) { status = StatusType.info; }\n var errorContext;\n if (status === StatusType.error) {\n // Always add origin if status is error (backward compatibility - Remove in next major)\n errorContext = { origin: ErrorSource.LOGGER };\n }\n if (error !== undefined && error !== null) {\n var stackTrace = error instanceof Error ? computeStackTrace(error) : undefined;\n var rawError = computeRawError({\n stackTrace: stackTrace,\n originalError: error,\n nonErrorPrefix: \"Provided\" /* NonErrorPrefix.PROVIDED */,\n source: ErrorSource.LOGGER,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n startClocks: clocksNow(),\n });\n errorContext = {\n origin: ErrorSource.LOGGER,\n stack: rawError.stack,\n kind: rawError.type,\n message: rawError.message,\n };\n }\n var sanitizedMessageContext = sanitize(messageContext);\n var context = errorContext\n ? combine({ error: errorContext }, sanitizedMessageContext)\n : sanitizedMessageContext;\n this.handleLogStrategy({\n message: sanitize(message),\n context: context,\n status: status,\n }, this);\n };\n Logger.prototype.debug = function (message, messageContext, error) {\n this.log(message, messageContext, StatusType.debug, error);\n };\n Logger.prototype.info = function (message, messageContext, error) {\n this.log(message, messageContext, StatusType.info, error);\n };\n Logger.prototype.warn = function (message, messageContext, error) {\n this.log(message, messageContext, StatusType.warn, error);\n };\n Logger.prototype.error = function (message, messageContext, error) {\n this.log(message, messageContext, StatusType.error, error);\n };\n Logger.prototype.setContext = function (context) {\n this.contextManager.set(context);\n };\n Logger.prototype.getContext = function () {\n return this.contextManager.get();\n };\n Logger.prototype.addContext = function (key, value) {\n this.contextManager.add(key, value);\n };\n Logger.prototype.removeContext = function (key) {\n this.contextManager.remove(key);\n };\n Logger.prototype.setHandler = function (handler) {\n this.handlerType = handler;\n };\n Logger.prototype.getHandler = function () {\n return this.handlerType;\n };\n Logger.prototype.setLevel = function (level) {\n this.level = level;\n };\n Logger.prototype.getLevel = function () {\n return this.level;\n };\n __decorate([\n monitored\n ], Logger.prototype, \"log\", null);\n return Logger;\n}());\nexport { Logger };\n//# sourceMappingURL=logger.js.map","import { assign, BoundedBuffer, createContextManager, makePublicApi, monitor, display, deepClone, canUseEventBridge, timeStampNow, checkUser, sanitizeUser, sanitize, createStoredContextManager, combine, } from '@datadog/browser-core';\nimport { validateAndBuildLogsConfiguration } from '../domain/configuration';\nimport { Logger } from '../domain/logger';\nvar LOGS_STORAGE_KEY = 'logs';\nexport function makeLogsPublicApi(startLogsImpl) {\n var isAlreadyInitialized = false;\n var globalContextManager = createContextManager(2 /* CustomerDataType.GlobalContext */);\n var userContextManager = createContextManager(1 /* CustomerDataType.User */);\n var customLoggers = {};\n var getInternalContextStrategy = function () { return undefined; };\n var beforeInitLoggerLog = new BoundedBuffer();\n var handleLogStrategy = function (logsMessage, logger, savedCommonContext, date) {\n if (savedCommonContext === void 0) { savedCommonContext = deepClone(buildCommonContext()); }\n if (date === void 0) { date = timeStampNow(); }\n beforeInitLoggerLog.add(function () { return handleLogStrategy(logsMessage, logger, savedCommonContext, date); });\n };\n var getInitConfigurationStrategy = function () { return undefined; };\n var mainLogger = new Logger(function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n return handleLogStrategy.apply(void 0, params);\n });\n function buildCommonContext() {\n return {\n view: {\n referrer: document.referrer,\n url: window.location.href,\n },\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n };\n }\n return makePublicApi({\n logger: mainLogger,\n init: monitor(function (initConfiguration) {\n var _a;\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // This function should be available, regardless of initialization success.\n getInitConfigurationStrategy = function () { return deepClone(initConfiguration); };\n if (canUseEventBridge()) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n if (!canInitLogs(initConfiguration)) {\n return;\n }\n var configuration = validateAndBuildLogsConfiguration(initConfiguration);\n if (!configuration) {\n return;\n }\n if (initConfiguration.storeContextsAcrossPages) {\n var beforeInitGlobalContext = globalContextManager.getContext();\n globalContextManager = createStoredContextManager(configuration, LOGS_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n globalContextManager.setContext(combine(globalContextManager.getContext(), beforeInitGlobalContext));\n var beforeInitUserContext = userContextManager.getContext();\n userContextManager = createStoredContextManager(configuration, LOGS_STORAGE_KEY, 1 /* CustomerDataType.User */);\n userContextManager.setContext(combine(userContextManager.getContext(), beforeInitUserContext));\n }\n ;\n (_a = startLogsImpl(initConfiguration, configuration, buildCommonContext, mainLogger), handleLogStrategy = _a.handleLog, getInternalContextStrategy = _a.getInternalContext);\n beforeInitLoggerLog.drain();\n isAlreadyInitialized = true;\n }),\n /** @deprecated: use getGlobalContext instead */\n getLoggerGlobalContext: monitor(function () { return globalContextManager.get(); }),\n getGlobalContext: monitor(function () { return globalContextManager.getContext(); }),\n /** @deprecated: use setGlobalContext instead */\n setLoggerGlobalContext: monitor(function (context) { return globalContextManager.set(context); }),\n setGlobalContext: monitor(function (context) { return globalContextManager.setContext(context); }),\n /** @deprecated: use setGlobalContextProperty instead */\n addLoggerGlobalContext: monitor(function (key, value) { return globalContextManager.add(key, value); }),\n setGlobalContextProperty: monitor(function (key, value) { return globalContextManager.setContextProperty(key, value); }),\n /** @deprecated: use removeGlobalContextProperty instead */\n removeLoggerGlobalContext: monitor(function (key) { return globalContextManager.remove(key); }),\n removeGlobalContextProperty: monitor(function (key) { return globalContextManager.removeContextProperty(key); }),\n clearGlobalContext: monitor(function () { return globalContextManager.clearContext(); }),\n createLogger: monitor(function (name, conf) {\n if (conf === void 0) { conf = {}; }\n customLoggers[name] = new Logger(function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n return handleLogStrategy.apply(void 0, params);\n }, sanitize(name), conf.handler, conf.level, sanitize(conf.context));\n return customLoggers[name];\n }),\n getLogger: monitor(function (name) { return customLoggers[name]; }),\n getInitConfiguration: monitor(function () { return getInitConfigurationStrategy(); }),\n getInternalContext: monitor(function (startTime) { return getInternalContextStrategy(startTime); }),\n setUser: monitor(function (newUser) {\n if (checkUser(newUser)) {\n userContextManager.setContext(sanitizeUser(newUser));\n }\n }),\n getUser: monitor(function () { return userContextManager.getContext(); }),\n setUserProperty: monitor(function (key, property) {\n var _a;\n var sanitizedProperty = sanitizeUser((_a = {}, _a[key] = property, _a))[key];\n userContextManager.setContextProperty(key, sanitizedProperty);\n }),\n removeUserProperty: monitor(function (key) { return userContextManager.removeContextProperty(key); }),\n clearUser: monitor(function () { return userContextManager.clearContext(); }),\n });\n function overrideInitConfigurationForBridge(initConfiguration) {\n return assign({}, initConfiguration, { clientToken: 'empty' });\n }\n function canInitLogs(initConfiguration) {\n if (isAlreadyInitialized) {\n if (!initConfiguration.silentMultipleInit) {\n display.error('DD_LOGS is already initialized.');\n }\n return false;\n }\n return true;\n }\n}\n//# sourceMappingURL=logsPublicApi.js.map","export function sendToExtension(type, payload) {\n var callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type: type, payload: payload });\n }\n}\n//# sourceMappingURL=sendToExtension.js.map","export var TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { toStackTraceString, NO_ERROR_STACK_PRESENT_MESSAGE } from '../error/error';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { computeStackTrace } from '../tracekit';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { startsWith, arrayFrom, includes, assign } from '../../tools/utils/polyfills';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nvar ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '<anonymous>',\n];\nvar TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\nvar telemetryConfiguration = { maxEventsPerPage: 0, sentEventCount: 0, telemetryEnabled: false, telemetryConfigurationEnabled: false };\nvar onRawTelemetryEventCollected;\nexport function startTelemetry(telemetryService, configuration) {\n var contextProvider;\n var observable = new Observable();\n telemetryConfiguration.telemetryEnabled =\n !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate);\n telemetryConfiguration.telemetryConfigurationEnabled =\n telemetryConfiguration.telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate);\n var runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event_1 = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event_1);\n sendToExtension('telemetry', event_1);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0,\n });\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"4.50.1\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n }),\n experimental_features: arrayFrom(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: function (provider) {\n contextProvider = provider;\n },\n observable: observable,\n enabled: telemetryConfiguration.telemetryEnabled,\n };\n}\nfunction getRuntimeEnvInfo() {\n return {\n is_local_file: window.location.protocol === 'file:',\n is_worker: 'WorkerGlobalScope' in self,\n };\n}\nexport function startFakeTelemetry() {\n var events = [];\n assign(telemetryConfiguration, {\n maxEventsPerPage: Infinity,\n sentEventCount: 0,\n });\n onRawTelemetryEventCollected = function (event) {\n events.push(event);\n };\n return events;\n}\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined;\n}\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration) {\n return configuration.site === INTAKE_SITE_STAGING;\n}\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context);\n addTelemetry(assign({\n type: TelemetryType.log,\n message: message,\n status: \"debug\" /* StatusType.debug */,\n }, context));\n}\nexport function addTelemetryError(e, context) {\n addTelemetry(assign({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n }, formatError(e), context));\n}\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryConfigurationEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration,\n });\n }\n}\nfunction addTelemetry(event) {\n if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {\n telemetryConfiguration.sentEventCount += 1;\n onRawTelemetryEventCollected(event);\n }\n}\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e);\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message,\n };\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: \"\".concat(\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */, \" \").concat(jsonStringify(e)),\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(function (frame) { return !frame.url || ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) { return startsWith(frame.url, allowedFrameUrl); }); });\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature } from '../tools/experimentalFeatures';\nimport { Observable } from '../tools/observable';\nimport { objectValues, includes } from '../tools/utils/polyfills';\nimport { noop } from '../tools/utils/functionUtils';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n var observable = new Observable(function () {\n var pagehideEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGEHIDE);\n var stopListeners = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */, \"pagehide\" /* DOM_EVENT.PAGE_HIDE */], function (event) {\n if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */ && pagehideEnabled) {\n /**\n * Only event that detect page unload events while being compatible with the back/forward cache (bfcache)\n */\n observable.notify({ reason: PageExitReason.PAGEHIDE });\n }\n else if (event.type === \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN });\n }\n else if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN });\n }\n }, { capture: true }).stop;\n var stopBeforeUnloadListener = noop;\n if (!pagehideEnabled) {\n stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, function () {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n }\n return function () {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n return observable;\n}\nexport function isPageExitReason(reason) {\n return includes(objectValues(PageExitReason), reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { getCookie } from '../../browser/cookie';\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n var value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n var value = window._DATADOG_SYNTHETICS_RESULT_ID || getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","import { display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nvar Batch = /** @class */ (function () {\n function Batch(request, flushController, messageBytesLimit) {\n var _this = this;\n this.request = request;\n this.flushController = flushController;\n this.messageBytesLimit = messageBytesLimit;\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n this.flushSubscription = this.flushController.flushObservable.subscribe(function (event) { return _this.flush(event); });\n }\n Batch.prototype.add = function (message) {\n this.addOrUpdate(message);\n };\n Batch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key);\n };\n Batch.prototype.stop = function () {\n this.flushSubscription.unsubscribe();\n };\n Batch.prototype.flush = function (event) {\n var messages = this.pushOnlyBuffer.concat(objectValues(this.upsertBuffer));\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n var payload = { data: messages.join('\\n'), bytesCount: event.bytesCount, flushReason: event.reason };\n if (isPageExitReason(event.reason)) {\n this.request.sendOnExit(payload);\n }\n else {\n this.request.send(payload);\n }\n };\n Batch.prototype.addOrUpdate = function (message, key) {\n var _a = this.process(message), processedMessage = _a.processedMessage, messageBytesCount = _a.messageBytesCount;\n if (messageBytesCount >= this.messageBytesLimit) {\n display.warn(\"Discarded a message whose size was bigger than the maximum allowed size \".concat(this.messageBytesLimit, \"KB.\"));\n return;\n }\n if (this.hasMessageFor(key)) {\n this.remove(key);\n }\n this.push(processedMessage, messageBytesCount, key);\n };\n Batch.prototype.process = function (message) {\n var processedMessage = jsonStringify(message);\n var messageBytesCount = computeBytesCount(processedMessage);\n return { processedMessage: processedMessage, messageBytesCount: messageBytesCount };\n };\n Batch.prototype.push = function (processedMessage, messageBytesCount, key) {\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 0 ? 1 : 0;\n this.flushController.notifyBeforeAddMessage(messageBytesCount + separatorBytesCount);\n if (key !== undefined) {\n this.upsertBuffer[key] = processedMessage;\n }\n else {\n this.pushOnlyBuffer.push(processedMessage);\n }\n this.flushController.notifyAfterAddMessage();\n };\n Batch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key];\n delete this.upsertBuffer[key];\n var messageBytesCount = computeBytesCount(removedMessage);\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 1 ? 1 : 0;\n this.flushController.notifyAfterRemoveMessage(messageBytesCount + separatorBytesCount);\n };\n Batch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined;\n };\n return Batch;\n}());\nexport { Batch };\n//# sourceMappingURL=batch.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","import { setTimeout } from '../tools/timer';\nimport { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils';\nimport { isServerError } from '../tools/utils/responseUtils';\nimport { ErrorSource } from '../domain/error/error.types';\nexport var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport var MAX_ONGOING_REQUESTS = 32;\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport var MAX_BACKOFF_TIME = ONE_MINUTE;\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus === 0 /* TransportStatus.UP */ &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)) {\n send(payload, state, sendStrategy, {\n onSuccess: function () { return retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, endpointType, reportError); },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, endpointType, reportError);\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, _a) {\n var onSuccess = _a.onSuccess, onFailure = _a.onFailure;\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, function (response) {\n state.bandwidthMonitor.remove(payload);\n if (!shouldRetryRequest(response)) {\n state.transportStatus = 0 /* TransportStatus.UP */;\n onSuccess();\n }\n else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0 ? 1 /* TransportStatus.FAILURE_DETECTED */ : 2 /* TransportStatus.DOWN */;\n payload.retry = {\n count: payload.retry ? payload.retry.count + 1 : 1,\n lastFailureStatus: response.status,\n };\n onFailure();\n }\n });\n}\nfunction retryQueuedPayloads(reason, state, sendStrategy, endpointType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: \"Reached max \".concat(endpointType, \" events size queued for upload: \").concat(MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE, \"MiB\"),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n var previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, endpointType, reportError);\n }\n}\nfunction shouldRetryRequest(response) {\n return (response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status)));\n}\nexport function newRetryState() {\n return {\n transportStatus: 0 /* TransportStatus.UP */,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n };\n}\nfunction newPayloadQueue() {\n var queue = [];\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first: function () {\n return queue[0];\n },\n dequeue: function () {\n var payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size: function () {\n return queue.length;\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add: function (payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove: function (payload) {\n this.ongoingRequestCount -= 1;\n this.ongoingByteCount -= payload.bytesCount;\n },\n };\n}\n//# sourceMappingURL=sendWithRetryStrategy.js.map","import { addTelemetryError } from '../domain/telemetry';\nimport { monitor } from '../tools/monitor';\nimport { addEventListener } from '../browser/addEventListener';\nimport { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy';\nexport function createHttpRequest(configuration, endpointBuilder, bytesLimit, reportError) {\n var retryState = newRetryState();\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse);\n };\n return {\n send: function (payload) {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.endpointType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload) {\n var canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n var beaconUrl = endpointBuilder.build('beacon', payload);\n var isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data);\n}\nvar hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse) {\n var canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n var fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor(function (response) { return onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type }); }), monitor(function () {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }\n}\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a');\n }\n catch (_a) {\n return false;\n }\n}\nexport function sendXHR(configuration, url, data, onResponse) {\n var request = new XMLHttpRequest();\n request.open('POST', url, true);\n addEventListener(configuration, request, 'loadend', function () {\n onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: request.status });\n }, {\n // prevent multiple onResponse callbacks\n // if the xhr instance is reused by a third party\n once: true,\n });\n request.send(data);\n}\n//# sourceMappingURL=httpRequest.js.map","import { Observable } from '../tools/observable';\nimport { clearTimeout, setTimeout } from '../tools/timer';\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController(_a) {\n var messagesLimit = _a.messagesLimit, bytesLimit = _a.bytesLimit, durationLimit = _a.durationLimit, pageExitObservable = _a.pageExitObservable, sessionExpireObservable = _a.sessionExpireObservable;\n var pageExitSubscription = pageExitObservable.subscribe(function (event) { return flush(event.reason); });\n var sessionExpireSubscription = sessionExpireObservable.subscribe(function () { return flush('session_expire'); });\n var flushObservable = new Observable(function () { return function () {\n pageExitSubscription.unsubscribe();\n sessionExpireSubscription.unsubscribe();\n }; });\n var currentBytesCount = 0;\n var currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n var messagesCount = currentMessagesCount;\n var bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount,\n });\n }\n var durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n flushObservable: flushObservable,\n get messagesCount() {\n return currentMessagesCount;\n },\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n */\n notifyBeforeAddMessage: function (messageBytesCount) {\n if (currentBytesCount + messageBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1;\n currentBytesCount += messageBytesCount;\n scheduleDurationLimitTimeout();\n },\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n */\n notifyAfterAddMessage: function () {\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit');\n }\n else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n },\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { Batch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable) {\n var primaryBatch = createBatch(configuration, primary.endpoint);\n var replicaBatch = replica && createBatch(configuration, replica.endpoint);\n function createBatch(configuration, endpointBuilder) {\n return new Batch(createHttpRequest(configuration, endpointBuilder, configuration.batchBytesLimit, reportError), createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable,\n }), configuration.messageBytesLimit);\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add: function (message, replicated) {\n if (replicated === void 0) { replicated = true; }\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: function (message, key) {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: function () {\n primaryBatch.stop();\n replicaBatch === null || replicaBatch === void 0 ? void 0 : replicaBatch.stop();\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","import { setInterval, clearInterval } from './timer';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nvar END_OF_TIMES = Infinity;\nexport var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\n/**\n * Store and keep track of values spans. This whole class assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nvar ValueHistory = /** @class */ (function () {\n function ValueHistory(expireDelay, maxEntries) {\n var _this = this;\n this.expireDelay = expireDelay;\n this.maxEntries = maxEntries;\n this.entries = [];\n this.clearOldValuesInterval = setInterval(function () { return _this.clearOldValues(); }, CLEAR_OLD_VALUES_INTERVAL);\n }\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n ValueHistory.prototype.add = function (value, startTime) {\n var _this = this;\n var entry = {\n value: value,\n startTime: startTime,\n endTime: END_OF_TIMES,\n remove: function () {\n var index = _this.entries.indexOf(entry);\n if (index >= 0) {\n _this.entries.splice(index, 1);\n }\n },\n close: function (endTime) {\n entry.endTime = endTime;\n },\n };\n if (this.maxEntries && this.entries.length >= this.maxEntries) {\n this.entries.pop();\n }\n this.entries.unshift(entry);\n return entry;\n };\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n */\n ValueHistory.prototype.find = function (startTime) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n for (var _i = 0, _a = this.entries; _i < _a.length; _i++) {\n var entry = _a[_i];\n if (entry.startTime <= startTime) {\n if (startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n };\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n ValueHistory.prototype.closeActive = function (endTime) {\n var latestEntry = this.entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n };\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n ValueHistory.prototype.findAll = function (startTime, duration) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (duration === void 0) { duration = 0; }\n var endTime = addDuration(startTime, duration);\n return this.entries\n .filter(function (entry) { return entry.startTime <= endTime && startTime <= entry.endTime; })\n .map(function (entry) { return entry.value; });\n };\n /**\n * Remove all entries from this collection.\n */\n ValueHistory.prototype.reset = function () {\n this.entries = [];\n };\n /**\n * Stop internal garbage collection of past entries.\n */\n ValueHistory.prototype.stop = function () {\n clearInterval(this.clearOldValuesInterval);\n };\n ValueHistory.prototype.clearOldValues = function () {\n var oldTimeThreshold = relativeNow() - this.expireDelay;\n while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {\n this.entries.pop();\n }\n };\n return ValueHistory;\n}());\nexport { ValueHistory };\n//# sourceMappingURL=valueHistory.js.map","import { ValueHistory } from '../../tools/valueHistory';\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { addEventListener, addEventListeners } from '../../browser/addEventListener';\nimport { clearInterval, setInterval } from '../../tools/timer';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { startSessionStore } from './sessionStore';\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nvar stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState) {\n // TODO - Improve configuration type and remove assertion\n var sessionStore = startSessionStore(configuration.sessionStoreStrategyType, productKey, computeSessionState);\n stopCallbacks.push(function () { return sessionStore.stop(); });\n var sessionContextHistory = new ValueHistory(SESSION_CONTEXT_TIMEOUT_DELAY);\n stopCallbacks.push(function () { return sessionContextHistory.stop(); });\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n });\n sessionStore.expireObservable.subscribe(function () {\n sessionContextHistory.closeActive(relativeNow());\n });\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackActivity(configuration, function () { return sessionStore.expandOrRenewSession(); });\n trackVisibility(configuration, function () { return sessionStore.expandSession(); });\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n };\n }\n return {\n findActiveSession: function (startTime) { return sessionContextHistory.find(startTime); },\n renewObservable: sessionStore.renewObservable,\n expireObservable: sessionStore.expireObservable,\n expire: sessionStore.expire,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach(function (e) { return e(); });\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n var stop = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"scroll\" /* DOM_EVENT.SCROLL */], expandOrRenewSession, { capture: true, passive: true }).stop;\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n var stop = addEventListener(configuration, document, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, expandSessionWhenVisible).stop;\n stopCallbacks.push(stop);\n var visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval);\n });\n}\n//# sourceMappingURL=sessionManager.js.map","import { Observable, performDraw, startSessionManager } from '@datadog/browser-core';\nexport var LOGS_SESSION_KEY = 'logs';\nexport function startLogsSessionManager(configuration) {\n var sessionManager = startSessionManager(configuration, LOGS_SESSION_KEY, function (rawTrackingType) {\n return computeSessionState(configuration, rawTrackingType);\n });\n return {\n findTrackedSession: function (startTime) {\n var session = sessionManager.findActiveSession(startTime);\n return session && session.trackingType === \"1\" /* LoggerTrackingType.TRACKED */\n ? {\n id: session.id,\n }\n : undefined;\n },\n expireObservable: sessionManager.expireObservable,\n };\n}\nexport function startLogsSessionManagerStub(configuration) {\n var isTracked = computeTrackingType(configuration) === \"1\" /* LoggerTrackingType.TRACKED */;\n var session = isTracked ? {} : undefined;\n return {\n findTrackedSession: function () { return session; },\n expireObservable: new Observable(),\n };\n}\nfunction computeTrackingType(configuration) {\n if (!performDraw(configuration.sessionSampleRate)) {\n return \"0\" /* LoggerTrackingType.NOT_TRACKED */;\n }\n return \"1\" /* LoggerTrackingType.TRACKED */;\n}\nfunction computeSessionState(configuration, rawSessionType) {\n var trackingType = hasValidLoggerSession(rawSessionType) ? rawSessionType : computeTrackingType(configuration);\n return {\n trackingType: trackingType,\n isTracked: trackingType === \"1\" /* LoggerTrackingType.TRACKED */,\n };\n}\nfunction hasValidLoggerSession(trackingType) {\n return trackingType === \"0\" /* LoggerTrackingType.NOT_TRACKED */ || trackingType === \"1\" /* LoggerTrackingType.TRACKED */;\n}\n//# sourceMappingURL=logsSessionManager.js.map","var _a;\nimport { includes, combine, ErrorSource, timeStampNow, originalConsoleMethods, globalConsole, } from '@datadog/browser-core';\nimport { StatusType, HandlerType } from '../logger';\nexport var STATUS_PRIORITIES = (_a = {},\n _a[StatusType.debug] = 0,\n _a[StatusType.info] = 1,\n _a[StatusType.warn] = 2,\n _a[StatusType.error] = 3,\n _a);\nexport function startLoggerCollection(lifeCycle) {\n function handleLog(logsMessage, logger, savedCommonContext, savedDate) {\n var messageContext = logsMessage.context;\n if (isAuthorized(logsMessage.status, HandlerType.console, logger)) {\n displayInConsole(logsMessage, combine(logger.getContext(), messageContext));\n }\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n date: savedDate || timeStampNow(),\n message: logsMessage.message,\n status: logsMessage.status,\n origin: ErrorSource.LOGGER,\n },\n messageContext: messageContext,\n savedCommonContext: savedCommonContext,\n logger: logger,\n });\n }\n return {\n handleLog: handleLog,\n };\n}\nexport function isAuthorized(status, handlerType, logger) {\n var loggerHandler = logger.getHandler();\n var sanitizedHandlerType = Array.isArray(loggerHandler) ? loggerHandler : [loggerHandler];\n return (STATUS_PRIORITIES[status] >= STATUS_PRIORITIES[logger.getLevel()] && includes(sanitizedHandlerType, handlerType));\n}\nfunction displayInConsole(logsMessage, messageContext) {\n originalConsoleMethods[logsMessage.status].call(globalConsole, logsMessage.message, messageContext);\n}\n//# sourceMappingURL=loggerCollection.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n var eventCount = 0;\n var allowNextEvent = false;\n return {\n isLimitReached: function () {\n if (eventCount === 0) {\n setTimeout(function () {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: \"Reached max number of \".concat(eventType, \"s by minute: \").concat(limit),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { getSyntheticsResultId, getSyntheticsTestId, addTelemetryDebug, willSyntheticsInjectRum, ErrorSource, combine, createEventRateLimiter, getRelativeTime, isEmptyObject, } from '@datadog/browser-core';\nimport { STATUSES, HandlerType } from './logger';\nimport { isAuthorized } from './logger/loggerCollection';\nexport function startLogsAssembly(sessionManager, configuration, lifeCycle, buildCommonContext, mainLogger, // Todo: [RUMF-1230] Remove this parameter in the next major release\nreportError) {\n var statusWithCustom = STATUSES.concat(['custom']);\n var logRateLimiters = {};\n statusWithCustom.forEach(function (status) {\n logRateLimiters[status] = createEventRateLimiter(status, configuration.eventRateLimiterThreshold, reportError);\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, function (_a) {\n var _b, _c, _d;\n var rawLogsEvent = _a.rawLogsEvent, _e = _a.messageContext, messageContext = _e === void 0 ? undefined : _e, _f = _a.savedCommonContext, savedCommonContext = _f === void 0 ? undefined : _f, _g = _a.logger, logger = _g === void 0 ? mainLogger : _g;\n var startTime = getRelativeTime(rawLogsEvent.date);\n var session = sessionManager.findTrackedSession(startTime);\n if (!session) {\n return;\n }\n var commonContext = savedCommonContext || buildCommonContext();\n var log = combine({\n service: configuration.service,\n session_id: session.id,\n // Insert user first to allow overrides from global context\n usr: !isEmptyObject(commonContext.user) ? commonContext.user : undefined,\n view: commonContext.view,\n }, commonContext.context, getRUMInternalContext(startTime), rawLogsEvent, logger.getContext(), messageContext);\n if (\n // Todo: [RUMF-1230] Move this check to the logger collection in the next major release\n !isAuthorized(rawLogsEvent.status, HandlerType.http, logger) ||\n ((_b = configuration.beforeSend) === null || _b === void 0 ? void 0 : _b.call(configuration, log)) === false ||\n (((_c = log.error) === null || _c === void 0 ? void 0 : _c.origin) !== ErrorSource.AGENT &&\n ((_d = logRateLimiters[log.status]) !== null && _d !== void 0 ? _d : logRateLimiters['custom']).isLimitReached())) {\n return;\n }\n lifeCycle.notify(1 /* LifeCycleEventType.LOG_COLLECTED */, log);\n });\n}\nvar logsSentBeforeRumInjectionTelemetryAdded = false;\nexport function getRUMInternalContext(startTime) {\n var browserWindow = window;\n if (willSyntheticsInjectRum()) {\n var context = getInternalContextFromRumGlobal(browserWindow.DD_RUM_SYNTHETICS);\n if (!context && !logsSentBeforeRumInjectionTelemetryAdded) {\n logsSentBeforeRumInjectionTelemetryAdded = true;\n addTelemetryDebug('Logs sent before RUM is injected by the synthetics worker', {\n testId: getSyntheticsTestId(),\n resultId: getSyntheticsResultId(),\n });\n }\n return context;\n }\n return getInternalContextFromRumGlobal(browserWindow.DD_RUM);\n function getInternalContextFromRumGlobal(rumGlobal) {\n if (rumGlobal && rumGlobal.getInternalContext) {\n return rumGlobal.getInternalContext(startTime);\n }\n }\n}\nexport function resetRUMInternalContext() {\n logsSentBeforeRumInjectionTelemetryAdded = false;\n}\n//# sourceMappingURL=assembly.js.map","import { computeStackTrace } from '../tracekit';\nimport { createHandlingStack, formatErrorMessage, toStackTraceString, tryToGetFingerprint } from '../error/error';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { ConsoleApiName, globalConsole } from '../../tools/display';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { find } from '../../tools/utils/polyfills';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nvar consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n var consoleObservables = apis.map(function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api);\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables.apply(void 0, consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n var observable = new Observable(function () {\n var originalConsoleApi = globalConsole[api];\n globalConsole[api] = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n originalConsoleApi.apply(console, params);\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return function () {\n globalConsole[api] = originalConsoleApi;\n };\n });\n return observable;\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n // Todo: remove console error prefix in the next major version\n var message = params.map(function (param) { return formatConsoleParameters(param); }).join(' ');\n var stack;\n var fingerprint;\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) { return param instanceof Error; });\n stack = firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined;\n fingerprint = tryToGetFingerprint(firstErrorParam);\n message = \"console error: \".concat(message);\n }\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n fingerprint: fingerprint,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","var _a;\nimport { timeStampNow, ConsoleApiName, ErrorSource, initConsoleObservable } from '@datadog/browser-core';\nimport { StatusType } from '../logger';\nvar LogStatusForApi = (_a = {},\n _a[ConsoleApiName.log] = StatusType.info,\n _a[ConsoleApiName.debug] = StatusType.debug,\n _a[ConsoleApiName.info] = StatusType.info,\n _a[ConsoleApiName.warn] = StatusType.warn,\n _a[ConsoleApiName.error] = StatusType.error,\n _a);\nexport function startConsoleCollection(configuration, lifeCycle) {\n var consoleSubscription = initConsoleObservable(configuration.forwardConsoleLogs).subscribe(function (log) {\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n date: timeStampNow(),\n message: log.message,\n origin: ErrorSource.CONSOLE,\n error: log.api === ConsoleApiName.error\n ? {\n origin: ErrorSource.CONSOLE,\n stack: log.stack,\n fingerprint: log.fingerprint,\n }\n : undefined,\n status: LogStatusForApi[log.api],\n },\n });\n });\n return {\n stop: function () {\n consoleSubscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=consoleCollection.js.map","var _a;\nimport { timeStampNow, ErrorSource, RawReportType, getFileFromStackTraceString, initReportObservable, } from '@datadog/browser-core';\nimport { StatusType } from '../logger';\nvar LogStatusForReport = (_a = {},\n _a[RawReportType.cspViolation] = StatusType.error,\n _a[RawReportType.intervention] = StatusType.error,\n _a[RawReportType.deprecation] = StatusType.warn,\n _a);\nexport function startReportCollection(configuration, lifeCycle) {\n var reportSubscription = initReportObservable(configuration, configuration.forwardReports).subscribe(function (report) {\n var message = report.message;\n var status = LogStatusForReport[report.type];\n var error;\n if (status === StatusType.error) {\n error = {\n kind: report.subtype,\n origin: ErrorSource.REPORT,\n stack: report.stack,\n };\n }\n else if (report.stack) {\n message += \" Found in \".concat(getFileFromStackTraceString(report.stack));\n }\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n date: timeStampNow(),\n message: message,\n origin: ErrorSource.REPORT,\n error: error,\n status: status,\n },\n });\n });\n return {\n stop: function () {\n reportSubscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=reportCollection.js.map","import { instrumentMethodAndCallOriginal } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, relativeNow, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nvar xhrObservable;\nvar xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n var observable = new Observable(function () {\n var stopInstrumentingStart = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {\n before: openXhr,\n }).stop;\n var stopInstrumentingSend = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'send', {\n before: function () {\n sendXhr.call(this, configuration, observable);\n },\n }).stop;\n var stopInstrumentingAbort = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'abort', {\n before: abortXhr,\n }).stop;\n return function () {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n return observable;\n}\nfunction openXhr(method, url) {\n xhrContexts.set(this, {\n state: 'open',\n method: method,\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr(configuration, observable) {\n var _this = this;\n var context = xhrContexts.get(this);\n if (!context) {\n return;\n }\n var startContext = context;\n startContext.state = 'start';\n startContext.startTime = relativeNow();\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = this;\n var hasBeenReported = false;\n var stopInstrumentingOnReadyStateChange = instrumentMethodAndCallOriginal(this, 'onreadystatechange', {\n before: function () {\n if (this.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during a onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n },\n }).stop;\n var onEnd = function () {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n var completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = _this.status;\n observable.notify(shallowClone(completeContext));\n };\n var unsubscribeLoadEndListener = addEventListener(configuration, this, 'loadend', onEnd).stop;\n observable.notify(startContext);\n}\nfunction abortXhr() {\n var context = xhrContexts.get(this);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nexport function instrumentMethod(object, method, instrumentationFactory) {\n var original = object[method];\n var instrumentation = instrumentationFactory(original);\n var instrumentationWrapper = function () {\n if (typeof instrumentation !== 'function') {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return instrumentation.apply(this, arguments);\n };\n object[method] = instrumentationWrapper;\n return {\n stop: function () {\n if (object[method] === instrumentationWrapper) {\n object[method] = original;\n }\n else {\n instrumentation = original;\n }\n },\n };\n}\nexport function instrumentMethodAndCallOriginal(object, method, _a) {\n var before = _a.before, after = _a.after;\n return instrumentMethod(object, method, function (original) {\n return function () {\n var args = arguments;\n var result;\n if (before) {\n callMonitored(before, this, args);\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, args);\n }\n if (after) {\n callMonitored(after, this, args);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n });\n}\nexport function instrumentSetter(object, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(object, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n var instrumentation = function (thisObject, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n after(thisObject, value);\n }, 0);\n };\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(object, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: function () {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(object, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(object, property, originalDescriptor);\n }\n else {\n instrumentation = noop;\n }\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { callMonitored, monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nvar fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nfunction createFetchObservable() {\n var observable = new Observable(function () {\n if (!window.fetch) {\n return;\n }\n var stop = instrumentMethod(window, 'fetch', function (originalFetch) {\n return function (input, init) {\n var responsePromise;\n var context = callMonitored(beforeSend, null, [observable, input, init]);\n if (context) {\n responsePromise = originalFetch.call(this, context.input, context.init);\n callMonitored(afterSend, null, [observable, responsePromise, context]);\n }\n else {\n responsePromise = originalFetch.call(this, input, init);\n }\n return responsePromise;\n };\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction beforeSend(observable, input, init) {\n var method = (init && init.method) || (input instanceof Request && input.method) || 'GET';\n var url = input instanceof Request ? input.url : normalizeUrl(String(input));\n var startClocks = clocksNow();\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url,\n };\n observable.notify(context);\n return context;\n}\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext;\n context.state = 'resolve';\n if ('stack' in response || response instanceof Error) {\n context.status = 0;\n context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;\n context.error = response;\n }\n else if ('status' in response) {\n context.response = response;\n context.responseType = response.type;\n context.status = response.status;\n context.isAborted = false;\n }\n observable.notify(context);\n };\n responsePromise.then(monitor(reportFetch), monitor(reportFetch));\n}\n//# sourceMappingURL=fetchObservable.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n var reader = stream.getReader();\n var chunks = [];\n var readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor(function (result) {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor(function (error) { return callback(error); }));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n var bytes;\n var limitExceeded;\n if (options.collectStreamBody) {\n var completeBuffer_1;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer_1 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer_1 = new Uint8Array(readBytesCount);\n var offset_1 = 0;\n chunks.forEach(function (chunk) {\n completeBuffer_1.set(chunk, offset_1);\n offset_1 += chunk.length;\n });\n }\n bytes = completeBuffer_1.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer_1.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { ErrorSource, initXhrObservable, initFetchObservable, computeStackTrace, toStackTraceString, monitor, noop, readBytesFromStream, tryToClone, isServerError, } from '@datadog/browser-core';\nimport { StatusType } from '../logger';\nexport function startNetworkErrorCollection(configuration, lifeCycle) {\n if (!configuration.forwardErrorsToLogs) {\n return { stop: noop };\n }\n var xhrSubscription = initXhrObservable(configuration).subscribe(function (context) {\n if (context.state === 'complete') {\n handleResponse(\"xhr\" /* RequestType.XHR */, context);\n }\n });\n var fetchSubscription = initFetchObservable().subscribe(function (context) {\n if (context.state === 'resolve') {\n handleResponse(\"fetch\" /* RequestType.FETCH */, context);\n }\n });\n function handleResponse(type, request) {\n if (!configuration.isIntakeUrl(request.url) && (isRejected(request) || isServerError(request.status))) {\n if ('xhr' in request) {\n computeXhrResponseData(request.xhr, configuration, onResponseDataAvailable);\n }\n else if (request.response) {\n computeFetchResponseText(request.response, configuration, onResponseDataAvailable);\n }\n else if (request.error) {\n computeFetchErrorText(request.error, configuration, onResponseDataAvailable);\n }\n }\n function onResponseDataAvailable(responseData) {\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: \"\".concat(format(type), \" error \").concat(request.method, \" \").concat(request.url),\n date: request.startClocks.timeStamp,\n error: {\n origin: ErrorSource.NETWORK,\n stack: responseData || 'Failed to load',\n },\n http: {\n method: request.method,\n status_code: request.status,\n url: request.url,\n },\n status: StatusType.error,\n origin: ErrorSource.NETWORK,\n },\n });\n }\n }\n return {\n stop: function () {\n xhrSubscription.unsubscribe();\n fetchSubscription.unsubscribe();\n },\n };\n}\n// TODO: ideally, computeXhrResponseData should always call the callback with a string instead of\n// `unknown`. But to keep backward compatibility, in the case of XHR with a `responseType` different\n// than \"text\", the response data should be whatever `xhr.response` is. This is a bit confusing as\n// Logs event 'stack' is expected to be a string. This should be changed in a future major version\n// as it could be a breaking change.\nexport function computeXhrResponseData(xhr, configuration, callback) {\n if (typeof xhr.response === 'string') {\n callback(truncateResponseText(xhr.response, configuration));\n }\n else {\n callback(xhr.response);\n }\n}\nexport function computeFetchErrorText(error, configuration, callback) {\n callback(truncateResponseText(toStackTraceString(computeStackTrace(error)), configuration));\n}\nexport function computeFetchResponseText(response, configuration, callback) {\n var clonedResponse = tryToClone(response);\n if (!clonedResponse || !clonedResponse.body) {\n // if the clone failed or if the body is null, let's not try to read it.\n callback();\n }\n else if (!window.TextDecoder) {\n // If the browser doesn't support TextDecoder, let's read the whole response then truncate it.\n //\n // This should only be the case on early versions of Edge (before they migrated to Chromium).\n // Even if it could be possible to implement a workaround for the missing TextDecoder API (using\n // a Blob and FileReader), we found another issue preventing us from reading only the first\n // bytes from the response: contrary to other browsers, when reading from the cloned response,\n // if the original response gets canceled, the cloned response is also canceled and we can't\n // know about it. In the following illustration, the promise returned by `reader.read()` may\n // never be fulfilled:\n //\n // fetch('/').then((response) => {\n // const reader = response.clone().body.getReader()\n // readMore()\n // function readMore() {\n // reader.read().then(\n // (result) => {\n // if (result.done) {\n // console.log('done')\n // } else {\n // readMore()\n // }\n // },\n // () => console.log('error')\n // )\n // }\n // response.body.getReader().cancel()\n // })\n clonedResponse.text().then(monitor(function (text) { return callback(truncateResponseText(text, configuration)); }), monitor(function (error) { return callback(\"Unable to retrieve response: \".concat(error)); }));\n }\n else {\n truncateResponseStream(clonedResponse.body, configuration.requestErrorResponseLengthLimit, function (error, responseText) {\n if (error) {\n callback(\"Unable to retrieve response: \".concat(error));\n }\n else {\n callback(responseText);\n }\n });\n }\n}\nfunction isRejected(request) {\n return request.status === 0 && request.responseType !== 'opaque';\n}\nfunction truncateResponseText(responseText, configuration) {\n if (responseText.length > configuration.requestErrorResponseLengthLimit) {\n return \"\".concat(responseText.substring(0, configuration.requestErrorResponseLengthLimit), \"...\");\n }\n return responseText;\n}\nfunction format(type) {\n if (\"xhr\" /* RequestType.XHR */ === type) {\n return 'XHR';\n }\n return 'Fetch';\n}\nfunction truncateResponseStream(stream, bytesLimit, callback) {\n readBytesFromStream(stream, function (error, bytes, limitExceeded) {\n if (error) {\n callback(error);\n }\n else {\n var responseText = new TextDecoder().decode(bytes);\n if (limitExceeded) {\n responseText += '...';\n }\n callback(undefined, responseText);\n }\n }, {\n bytesLimit: bytesLimit,\n collectStreamBody: true,\n });\n}\n//# sourceMappingURL=networkErrorCollection.js.map","import { instrumentMethodAndCallOriginal } from '../../tools/instrumentMethod';\nimport { computeStackTrace } from './computeStackTrace';\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\n/**\n * Cross-browser collection of unhandled errors\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Tries to catch all unhandled errors and report them to the\n * callback.\n *\n * Callbacks receive a StackTrace object as described in the\n * computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\nexport function startUnhandledErrorCollection(callback) {\n var stopInstrumentingOnError = instrumentOnError(callback).stop;\n var stopInstrumentingOnUnhandledRejection = instrumentUnhandledRejection(callback).stop;\n return {\n stop: function () {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\n/**\n * Install a global onerror handler\n */\nfunction instrumentOnError(callback) {\n return instrumentMethodAndCallOriginal(window, 'onerror', {\n before: function (messageObj, url, line, column, errorObj) {\n var stackTrace;\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n var stack = [{ url: url, column: column, line: line }];\n var _a = tryToParseMessage(messageObj), name_1 = _a.name, message = _a.message;\n stackTrace = {\n name: name_1,\n message: message,\n stack: stack,\n };\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n },\n });\n}\nfunction tryToParseMessage(messageObj) {\n var _a;\n var name;\n var message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n _a = ERROR_TYPES_RE.exec(messageObj), name = _a[1], message = _a[2];\n }\n return { name: name, message: message };\n}\n/**\n * Install a global onunhandledrejection handler\n */\nfunction instrumentUnhandledRejection(callback) {\n return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {\n before: function (e) {\n var reason = e.reason || 'Empty reason';\n var stack = computeStackTrace(reason);\n callback(stack, reason);\n },\n });\n}\n//# sourceMappingURL=tracekit.js.map","import { clocksNow } from '../../tools/utils/timeUtils';\nimport { startUnhandledErrorCollection } from '../tracekit';\nimport { computeRawError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n return startUnhandledErrorCollection(function (stackTrace, originalError) {\n errorObservable.notify(computeRawError({\n stackTrace: stackTrace,\n originalError: originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n }));\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { noop, ErrorSource, trackRuntimeError, Observable } from '@datadog/browser-core';\nimport { StatusType } from '../logger';\nexport function startRuntimeErrorCollection(configuration, lifeCycle) {\n if (!configuration.forwardErrorsToLogs) {\n return { stop: noop };\n }\n var rawErrorObservable = new Observable();\n var stopRuntimeErrorTracking = trackRuntimeError(rawErrorObservable).stop;\n var rawErrorSubscription = rawErrorObservable.subscribe(function (rawError) {\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: rawError.message,\n date: rawError.startClocks.timeStamp,\n error: {\n kind: rawError.type,\n origin: ErrorSource.SOURCE,\n stack: rawError.stack,\n },\n origin: ErrorSource.SOURCE,\n status: StatusType.error,\n },\n });\n });\n return {\n stop: function () {\n stopRuntimeErrorTracking();\n rawErrorSubscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=runtimeErrorCollection.js.map","var AbstractLifeCycle = /** @class */ (function () {\n function AbstractLifeCycle() {\n this.callbacks = {};\n }\n AbstractLifeCycle.prototype.notify = function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach(function (callback) { return callback(data); });\n }\n };\n AbstractLifeCycle.prototype.subscribe = function (eventType, callback) {\n var _this = this;\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = _this.callbacks[eventType].filter(function (other) { return callback !== other; });\n },\n };\n };\n return AbstractLifeCycle;\n}());\nexport { AbstractLifeCycle };\n//# sourceMappingURL=abstractLifeCycle.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport var LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { startBatchWithReplica } from '@datadog/browser-core';\nexport function startLogsBatch(configuration, lifeCycle, reportError, pageExitObservable, sessionExpireObservable) {\n var batch = startBatchWithReplica(configuration, {\n endpoint: configuration.logsEndpointBuilder,\n }, configuration.replica && {\n endpoint: configuration.replica.logsEndpointBuilder,\n }, reportError, pageExitObservable, sessionExpireObservable);\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, function (serverLogsEvent) {\n batch.add(serverLogsEvent);\n });\n return batch;\n}\n//# sourceMappingURL=startLogsBatch.js.map","import { getEventBridge } from '@datadog/browser-core';\nexport function startLogsBridge(lifeCycle) {\n var bridge = getEventBridge();\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, function (serverLogsEvent) {\n bridge.send('log', serverLogsEvent);\n });\n}\n//# sourceMappingURL=startLogsBridge.js.map","export function startInternalContext(sessionManager) {\n return {\n get: function (startTime) {\n var trackedSession = sessionManager.findTrackedSession(startTime);\n if (trackedSession) {\n return {\n session_id: trackedSession.id,\n };\n }\n },\n };\n}\n//# sourceMappingURL=internalContext.js.map","import { sendToExtension, createPageExitObservable, willSyntheticsInjectRum, canUseEventBridge, getEventBridge, startTelemetry, startBatchWithReplica, isTelemetryReplicationAllowed, ErrorSource, addTelemetryConfiguration, addTelemetryDebug, } from '@datadog/browser-core';\nimport { startLogsSessionManager, startLogsSessionManagerStub } from '../domain/logsSessionManager';\nimport { serializeLogsConfiguration } from '../domain/configuration';\nimport { startLogsAssembly, getRUMInternalContext } from '../domain/assembly';\nimport { startConsoleCollection } from '../domain/console/consoleCollection';\nimport { startReportCollection } from '../domain/report/reportCollection';\nimport { startNetworkErrorCollection } from '../domain/networkError/networkErrorCollection';\nimport { startRuntimeErrorCollection } from '../domain/runtimeError/runtimeErrorCollection';\nimport { LifeCycle } from '../domain/lifeCycle';\nimport { startLoggerCollection } from '../domain/logger/loggerCollection';\nimport { startLogsBatch } from '../transport/startLogsBatch';\nimport { startLogsBridge } from '../transport/startLogsBridge';\nimport { StatusType } from '../domain/logger';\nimport { startInternalContext } from '../domain/internalContext';\nexport function startLogs(initConfiguration, configuration, buildCommonContext, mainLogger) {\n var lifeCycle = new LifeCycle();\n var cleanupTasks = [];\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, function (log) { return sendToExtension('logs', log); });\n var reportError = function (error) {\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: error.message,\n date: error.startClocks.timeStamp,\n error: {\n origin: ErrorSource.AGENT, // Todo: Remove in the next major release\n },\n origin: ErrorSource.AGENT,\n status: StatusType.error,\n },\n });\n addTelemetryDebug('Error reported to customer', { 'error.message': error.message });\n };\n var pageExitObservable = createPageExitObservable(configuration);\n var session = configuration.sessionStoreStrategyType && !canUseEventBridge() && !willSyntheticsInjectRum()\n ? startLogsSessionManager(configuration)\n : startLogsSessionManagerStub(configuration);\n var _a = startLogsTelemetry(configuration, reportError, pageExitObservable, session.expireObservable), telemetry = _a.telemetry, stopLogsTelemetry = _a.stop;\n cleanupTasks.push(function () { return stopLogsTelemetry(); });\n telemetry.setContextProvider(function () {\n var _a, _b, _c, _d, _e, _f;\n return ({\n application: {\n id: (_a = getRUMInternalContext()) === null || _a === void 0 ? void 0 : _a.application_id,\n },\n session: {\n id: (_b = session.findTrackedSession()) === null || _b === void 0 ? void 0 : _b.id,\n },\n view: {\n id: (_d = (_c = getRUMInternalContext()) === null || _c === void 0 ? void 0 : _c.view) === null || _d === void 0 ? void 0 : _d.id,\n },\n action: {\n id: (_f = (_e = getRUMInternalContext()) === null || _e === void 0 ? void 0 : _e.user_action) === null || _f === void 0 ? void 0 : _f.id,\n },\n });\n });\n startNetworkErrorCollection(configuration, lifeCycle);\n startRuntimeErrorCollection(configuration, lifeCycle);\n startConsoleCollection(configuration, lifeCycle);\n startReportCollection(configuration, lifeCycle);\n var handleLog = startLoggerCollection(lifeCycle).handleLog;\n startLogsAssembly(session, configuration, lifeCycle, buildCommonContext, mainLogger, reportError);\n if (!canUseEventBridge()) {\n var stopLogsBatch_1 = startLogsBatch(configuration, lifeCycle, reportError, pageExitObservable, session.expireObservable).stop;\n cleanupTasks.push(function () { return stopLogsBatch_1(); });\n }\n else {\n startLogsBridge(lifeCycle);\n }\n addTelemetryConfiguration(serializeLogsConfiguration(initConfiguration));\n var internalContext = startInternalContext(session);\n return {\n handleLog: handleLog,\n getInternalContext: internalContext.get,\n stop: function () {\n cleanupTasks.forEach(function (task) { return task(); });\n },\n };\n}\nfunction startLogsTelemetry(configuration, reportError, pageExitObservable, sessionExpireObservable) {\n var telemetry = startTelemetry(\"browser-logs-sdk\" /* TelemetryService.LOGS */, configuration);\n var cleanupTasks = [];\n if (canUseEventBridge()) {\n var bridge_1 = getEventBridge();\n var telemetrySubscription_1 = telemetry.observable.subscribe(function (event) { return bridge_1.send('internal_telemetry', event); });\n cleanupTasks.push(function () { return telemetrySubscription_1.unsubscribe(); });\n }\n else {\n var telemetryBatch_1 = startBatchWithReplica(configuration, {\n endpoint: configuration.rumEndpointBuilder,\n }, configuration.replica && {\n endpoint: configuration.replica.rumEndpointBuilder,\n }, reportError, pageExitObservable, sessionExpireObservable);\n cleanupTasks.push(function () { return telemetryBatch_1.stop(); });\n var telemetrySubscription_2 = telemetry.observable.subscribe(function (event) {\n return telemetryBatch_1.add(event, isTelemetryReplicationAllowed(configuration));\n });\n cleanupTasks.push(function () { return telemetrySubscription_2.unsubscribe(); });\n }\n return {\n telemetry: telemetry,\n stop: function () {\n cleanupTasks.forEach(function (task) { return task(); });\n },\n };\n}\n//# sourceMappingURL=startLogs.js.map","import { defineGlobal, getGlobalObject } from '@datadog/browser-core';\nimport { makeLogsPublicApi } from '../boot/logsPublicApi';\nimport { startLogs } from '../boot/startLogs';\nexport { Logger, StatusType, HandlerType } from '../domain/logger';\nexport var datadogLogs = makeLogsPublicApi(startLogs);\ndefineGlobal(getGlobalObject(), 'DD_LOGS', datadogLogs);\n//# sourceMappingURL=main.js.map","import { datadogLogs } from \"@datadog/browser-logs\";\r\n\r\nconst useConsoleOnly = process.env.VUE_APP_LOGGER_CONSOLE_ONLY === \"true\";\r\nconst env = process.env.VUE_APP_ENVIRONMENT || \"local\";\r\n\r\nconst init = () => {\r\n datadogLogs.init({\r\n clientToken: process.env.VUE_APP_LOGGER_DATADOG_CLIENT_TOKEN,\r\n site: \"datadoghq.com\",\r\n forwardErrorsToLogs: true,\r\n sampleRate: 100,\r\n version: process.env.VUE_APP_VERSION || \"0.0.0\",\r\n service: \"npe\",\r\n env,\r\n });\r\n datadogLogs.addLoggerGlobalContext(\"host\", \"npe_\" + env);\r\n\r\n // no handler - using the default datadog handler for prod (sending to datadog only)\r\n // http - datadog and console\r\n // console - console only\r\n if (useConsoleOnly) {\r\n datadogLogs.logger.setHandler(\"console\");\r\n } else if (process.env.NODE_ENV === \"production\") {\r\n datadogLogs.logger.setHandler(\"http\");\r\n } else {\r\n datadogLogs.logger.setHandler([\"http\", \"console\"]);\r\n }\r\n};\r\n\r\nconst getLoggingMessage = (message) => {\r\n let loggingMessage = message;\r\n if (typeof message === \"object\") {\r\n loggingMessage = message.stack || message.toString();\r\n }\r\n return loggingMessage;\r\n};\r\n\r\nconst getLoggingContext = (context) => {\r\n let loggingContext = context || {};\r\n // Convert JS Exception to string as it is logged as empty string to datadogs\r\n if (loggingContext.stack && JSON.stringify(loggingContext) === \"{}\") {\r\n loggingContext = loggingContext.stack;\r\n }\r\n if (typeof loggingContext === \"string\") {\r\n loggingContext = { data: loggingContext };\r\n }\r\n return loggingContext;\r\n};\r\n\r\nconst isHttpError = (error) => {\r\n return error && error.response && error.request;\r\n};\r\n\r\nconst logMessage = (type, message, messageContext) => {\r\n if (process.env.VUE_APP_LOGGER_LEVELS === \"all\" || process.env.VUE_APP_LOGGER_LEVELS.includes(type)) {\r\n let loggingContext = {};\r\n // logging http error to context to provide more data\r\n if (!messageContext && isHttpError(message)) {\r\n loggingContext = getLoggingContext(message);\r\n }\r\n if (datadogLogs) {\r\n datadogLogs.logger[type](getLoggingMessage(message), loggingContext);\r\n } else {\r\n console.log(message);\r\n }\r\n }\r\n};\r\n\r\nconst loggerGenerator = () => {\r\n const loggerTypes = [\"info\", \"debug\", \"warn\", \"error\", \"log\"];\r\n const loggerMethods = {};\r\n // Generate logger methods for each type as { info: () => logMessage() }\r\n loggerTypes.forEach((loggerType) => {\r\n loggerMethods[loggerType] = (message, messageContext) => logMessage(loggerType, message, messageContext);\r\n });\r\n return loggerMethods;\r\n};\r\n\r\nexport default {\r\n ...loggerGenerator(),\r\n init,\r\n};\r\n","export default {\r\n initializePendo(email, name, role, visitorId, payerCompany, accountId, merchantId, merchantName, accountName) {\r\n const currentUrl = window.location.href;\r\n const url = new URL(currentUrl);\r\n const searchParams = new URLSearchParams(url.search);\r\n const transactionId = searchParams.get(\"transactionId\");\r\n // Add user details to initialise Pendo\r\n\r\n if (\"pendo\" in window) {\r\n window.pendo.initialize({\r\n visitor: {\r\n id: email ?? \"\", // Required if user is logged in, default creates anonymous ID\r\n Visitor_Id: String(visitorId ?? \"\"),\r\n email: email ?? \"\", // Recommended if using Pendo Feedback, or NPS Email\r\n User_Name: email ?? \"\",\r\n full_name: name ?? \"\", // Recommended if using Pendo Feedback\r\n role: role ?? \"\", // Optional : You can add any additional visitor level key-values here,\r\n Payer_Company: payerCompany ?? \"\"\r\n },\r\n account: {\r\n id: String(accountId ?? \"\"),\r\n Account: String(accountId ?? \"\"),\r\n Merchant_ID: String(merchantId ?? \"\"),\r\n Merchant_Name: merchantName ?? \"\",\r\n Account_Name: accountName ?? \"\",\r\n Transaction_Id: transactionId\r\n },\r\n });\r\n }\r\n },\r\n};\r\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Vuelidate = Vuelidate;\nexports.validationMixin = exports.default = void 0;\nObject.defineProperty(exports, \"withParams\", {\n enumerable: true,\n get: function get() {\n return _params.withParams;\n }\n});\n\nvar _vval = require(\"./vval\");\n\nvar _params = require(\"./params\");\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\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\nvar NIL = function NIL() {\n return null;\n};\n\nvar buildFromKeys = function buildFromKeys(keys, fn, keyFn) {\n return keys.reduce(function (build, key) {\n build[keyFn ? keyFn(key) : key] = fn(key);\n return build;\n }, {});\n};\n\nfunction isFunction(val) {\n return typeof val === 'function';\n}\n\nfunction isObject(val) {\n return val !== null && (_typeof(val) === 'object' || isFunction(val));\n}\n\nfunction isPromise(object) {\n return isObject(object) && isFunction(object.then);\n}\n\nvar getPath = function getPath(ctx, obj, path, fallback) {\n if (typeof path === 'function') {\n return path.call(ctx, obj, fallback);\n }\n\n path = Array.isArray(path) ? path : path.split('.');\n\n for (var i = 0; i < path.length; i++) {\n if (obj && _typeof(obj) === 'object') {\n obj = obj[path[i]];\n } else {\n return fallback;\n }\n }\n\n return typeof obj === 'undefined' ? fallback : obj;\n};\n\nvar __isVuelidateAsyncVm = '__isVuelidateAsyncVm';\n\nfunction makePendingAsyncVm(Vue, promise) {\n var asyncVm = new Vue({\n data: {\n p: true,\n v: false\n }\n });\n promise.then(function (value) {\n asyncVm.p = false;\n asyncVm.v = value;\n }, function (error) {\n asyncVm.p = false;\n asyncVm.v = false;\n throw error;\n });\n asyncVm[__isVuelidateAsyncVm] = true;\n return asyncVm;\n}\n\nvar validationGetters = {\n $invalid: function $invalid() {\n var _this = this;\n\n var proxy = this.proxy;\n return this.nestedKeys.some(function (nested) {\n return _this.refProxy(nested).$invalid;\n }) || this.ruleKeys.some(function (rule) {\n return !proxy[rule];\n });\n },\n $dirty: function $dirty() {\n var _this2 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.every(function (key) {\n return _this2.refProxy(key).$dirty;\n });\n },\n $anyDirty: function $anyDirty() {\n var _this3 = this;\n\n if (this.dirty) {\n return true;\n }\n\n if (this.nestedKeys.length === 0) {\n return false;\n }\n\n return this.nestedKeys.some(function (key) {\n return _this3.refProxy(key).$anyDirty;\n });\n },\n $error: function $error() {\n return this.$dirty && !this.$pending && this.$invalid;\n },\n $anyError: function $anyError() {\n var _this4 = this;\n\n if (this.$error) return true;\n return this.nestedKeys.some(function (key) {\n return _this4.refProxy(key).$anyError;\n });\n },\n $pending: function $pending() {\n var _this5 = this;\n\n return this.ruleKeys.some(function (key) {\n return _this5.getRef(key).$pending;\n }) || this.nestedKeys.some(function (key) {\n return _this5.refProxy(key).$pending;\n });\n },\n $params: function $params() {\n var _this6 = this;\n\n var vals = this.validations;\n return _objectSpread(_objectSpread({}, buildFromKeys(this.nestedKeys, function (key) {\n return vals[key] && vals[key].$params || null;\n })), buildFromKeys(this.ruleKeys, function (key) {\n return _this6.getRef(key).$params;\n }));\n }\n};\n\nfunction setDirtyRecursive(newState) {\n this.dirty = newState;\n var proxy = this.proxy;\n var method = newState ? '$touch' : '$reset';\n this.nestedKeys.forEach(function (key) {\n proxy[key][method]();\n });\n}\n\nvar validationMethods = {\n $touch: function $touch() {\n setDirtyRecursive.call(this, true);\n },\n $reset: function $reset() {\n setDirtyRecursive.call(this, false);\n },\n $flattenParams: function $flattenParams() {\n var proxy = this.proxy;\n var params = [];\n\n for (var key in this.$params) {\n if (this.isNested(key)) {\n var childParams = proxy[key].$flattenParams();\n\n for (var j = 0; j < childParams.length; j++) {\n childParams[j].path.unshift(key);\n }\n\n params = params.concat(childParams);\n } else {\n params.push({\n path: [],\n name: key,\n params: this.$params[key]\n });\n }\n }\n\n return params;\n }\n};\nvar getterNames = Object.keys(validationGetters);\nvar methodNames = Object.keys(validationMethods);\nvar _cachedComponent = null;\n\nvar getComponent = function getComponent(Vue) {\n if (_cachedComponent) {\n return _cachedComponent;\n }\n\n var VBase = Vue.extend({\n computed: {\n refs: function refs() {\n var oldVval = this._vval;\n this._vval = this.children;\n (0, _vval.patchChildren)(oldVval, this._vval);\n var refs = {};\n\n this._vval.forEach(function (c) {\n refs[c.key] = c.vm;\n });\n\n return refs;\n }\n },\n beforeCreate: function beforeCreate() {\n this._vval = null;\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vval) {\n (0, _vval.patchChildren)(this._vval);\n this._vval = null;\n }\n },\n methods: {\n getModel: function getModel() {\n return this.lazyModel ? this.lazyModel(this.prop) : this.model;\n },\n getModelKey: function getModelKey(key) {\n var model = this.getModel();\n\n if (model) {\n return model[key];\n }\n },\n hasIter: function hasIter() {\n return false;\n }\n }\n });\n var ValidationRule = VBase.extend({\n data: function data() {\n return {\n rule: null,\n lazyModel: null,\n model: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: {\n runRule: function runRule(parent) {\n var model = this.getModel();\n (0, _params.pushParams)();\n var rawOutput = this.rule.call(this.rootModel, model, parent);\n var output = isPromise(rawOutput) ? makePendingAsyncVm(Vue, rawOutput) : rawOutput;\n var rawParams = (0, _params.popParams)();\n var params = rawParams && rawParams.$sub ? rawParams.$sub.length > 1 ? rawParams : rawParams.$sub[0] : null;\n return {\n output: output,\n params: params\n };\n }\n },\n computed: {\n run: function run() {\n var _this7 = this;\n\n var parent = this.lazyParentModel();\n\n var isArrayDependant = Array.isArray(parent) && parent.__ob__;\n\n if (isArrayDependant) {\n var arrayDep = parent.__ob__.dep;\n arrayDep.depend();\n var target = arrayDep.constructor.target;\n\n if (!this._indirectWatcher) {\n var Watcher = target.constructor;\n this._indirectWatcher = new Watcher(this, function () {\n return _this7.runRule(parent);\n }, null, {\n lazy: true\n });\n }\n\n var model = this.getModel();\n\n if (!this._indirectWatcher.dirty && this._lastModel === model) {\n this._indirectWatcher.depend();\n\n return target.value;\n }\n\n this._lastModel = model;\n\n this._indirectWatcher.evaluate();\n\n this._indirectWatcher.depend();\n } else if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n\n return this._indirectWatcher ? this._indirectWatcher.value : this.runRule(parent);\n },\n $params: function $params() {\n return this.run.params;\n },\n proxy: function proxy() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return !!output.v;\n }\n\n return !!output;\n },\n $pending: function $pending() {\n var output = this.run.output;\n\n if (output[__isVuelidateAsyncVm]) {\n return output.p;\n }\n\n return false;\n }\n },\n destroyed: function destroyed() {\n if (this._indirectWatcher) {\n this._indirectWatcher.teardown();\n\n this._indirectWatcher = null;\n }\n }\n });\n var Validation = VBase.extend({\n data: function data() {\n return {\n dirty: false,\n validations: null,\n lazyModel: null,\n model: null,\n prop: null,\n lazyParentModel: null,\n rootModel: null\n };\n },\n methods: _objectSpread(_objectSpread({}, validationMethods), {}, {\n refProxy: function refProxy(key) {\n return this.getRef(key).proxy;\n },\n getRef: function getRef(key) {\n return this.refs[key];\n },\n isNested: function isNested(key) {\n return typeof this.validations[key] !== 'function';\n }\n }),\n computed: _objectSpread(_objectSpread({}, validationGetters), {}, {\n nestedKeys: function nestedKeys() {\n return this.keys.filter(this.isNested);\n },\n ruleKeys: function ruleKeys() {\n var _this8 = this;\n\n return this.keys.filter(function (k) {\n return !_this8.isNested(k);\n });\n },\n keys: function keys() {\n return Object.keys(this.validations).filter(function (k) {\n return k !== '$params';\n });\n },\n proxy: function proxy() {\n var _this9 = this;\n\n var keyDefs = buildFromKeys(this.keys, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this9.refProxy(key);\n }\n };\n });\n var getterDefs = buildFromKeys(getterNames, function (key) {\n return {\n enumerable: true,\n configurable: true,\n get: function get() {\n return _this9[key];\n }\n };\n });\n var methodDefs = buildFromKeys(methodNames, function (key) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return _this9[key];\n }\n };\n });\n var iterDefs = this.hasIter() ? {\n $iter: {\n enumerable: true,\n value: Object.defineProperties({}, _objectSpread({}, keyDefs))\n }\n } : {};\n return Object.defineProperties({}, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, keyDefs), iterDefs), {}, {\n $model: {\n enumerable: true,\n get: function get() {\n var parent = _this9.lazyParentModel();\n\n if (parent != null) {\n return parent[_this9.prop];\n } else {\n return null;\n }\n },\n set: function set(value) {\n var parent = _this9.lazyParentModel();\n\n if (parent != null) {\n parent[_this9.prop] = value;\n\n _this9.$touch();\n }\n }\n }\n }, getterDefs), methodDefs));\n },\n children: function children() {\n var _this10 = this;\n\n return [].concat(_toConsumableArray(this.nestedKeys.map(function (key) {\n return renderNested(_this10, key);\n })), _toConsumableArray(this.ruleKeys.map(function (key) {\n return renderRule(_this10, key);\n }))).filter(Boolean);\n }\n })\n });\n var GroupValidation = Validation.extend({\n methods: {\n isNested: function isNested(key) {\n return typeof this.validations[key]() !== 'undefined';\n },\n getRef: function getRef(key) {\n var vm = this;\n return {\n get proxy() {\n return vm.validations[key]() || false;\n }\n\n };\n }\n }\n });\n var EachValidation = Validation.extend({\n computed: {\n keys: function keys() {\n var model = this.getModel();\n\n if (isObject(model)) {\n return Object.keys(model);\n } else {\n return [];\n }\n },\n tracker: function tracker() {\n var _this11 = this;\n\n var trackBy = this.validations.$trackBy;\n return trackBy ? function (key) {\n return \"\".concat(getPath(_this11.rootModel, _this11.getModelKey(key), trackBy));\n } : function (x) {\n return \"\".concat(x);\n };\n },\n getModelLazy: function getModelLazy() {\n var _this12 = this;\n\n return function () {\n return _this12.getModel();\n };\n },\n children: function children() {\n var _this13 = this;\n\n var def = this.validations;\n var model = this.getModel();\n\n var validations = _objectSpread({}, def);\n\n delete validations['$trackBy'];\n var usedTracks = {};\n return this.keys.map(function (key) {\n var track = _this13.tracker(key);\n\n if (usedTracks.hasOwnProperty(track)) {\n return null;\n }\n\n usedTracks[track] = true;\n return (0, _vval.h)(Validation, track, {\n validations: validations,\n prop: key,\n lazyParentModel: _this13.getModelLazy,\n model: model[key],\n rootModel: _this13.rootModel\n });\n }).filter(Boolean);\n }\n },\n methods: {\n isNested: function isNested() {\n return true;\n },\n getRef: function getRef(key) {\n return this.refs[this.tracker(key)];\n },\n hasIter: function hasIter() {\n return true;\n }\n }\n });\n\n var renderNested = function renderNested(vm, key) {\n if (key === '$each') {\n return (0, _vval.h)(EachValidation, key, {\n validations: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n prop: key,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n }\n\n var validations = vm.validations[key];\n\n if (Array.isArray(validations)) {\n var root = vm.rootModel;\n var refVals = buildFromKeys(validations, function (path) {\n return function () {\n return getPath(root, root.$v, path);\n };\n }, function (v) {\n return Array.isArray(v) ? v.join('.') : v;\n });\n return (0, _vval.h)(GroupValidation, key, {\n validations: refVals,\n lazyParentModel: NIL,\n prop: key,\n lazyModel: NIL,\n rootModel: root\n });\n }\n\n return (0, _vval.h)(Validation, key, {\n validations: validations,\n lazyParentModel: vm.getModel,\n prop: key,\n lazyModel: vm.getModelKey,\n rootModel: vm.rootModel\n });\n };\n\n var renderRule = function renderRule(vm, key) {\n return (0, _vval.h)(ValidationRule, key, {\n rule: vm.validations[key],\n lazyParentModel: vm.lazyParentModel,\n lazyModel: vm.getModel,\n rootModel: vm.rootModel\n });\n };\n\n _cachedComponent = {\n VBase: VBase,\n Validation: Validation\n };\n return _cachedComponent;\n};\n\nvar _cachedVue = null;\n\nfunction getVue(rootVm) {\n if (_cachedVue) return _cachedVue;\n var Vue = rootVm.constructor;\n\n while (Vue.super) {\n Vue = Vue.super;\n }\n\n _cachedVue = Vue;\n return Vue;\n}\n\nvar validateModel = function validateModel(model, validations) {\n var Vue = getVue(model);\n\n var _getComponent = getComponent(Vue),\n Validation = _getComponent.Validation,\n VBase = _getComponent.VBase;\n\n var root = new VBase({\n computed: {\n children: function children() {\n var vals = typeof validations === 'function' ? validations.call(model) : validations;\n return [(0, _vval.h)(Validation, '$v', {\n validations: vals,\n lazyParentModel: NIL,\n prop: '$v',\n model: model,\n rootModel: model\n })];\n }\n }\n });\n return root;\n};\n\nvar validationMixin = {\n data: function data() {\n var vals = this.$options.validations;\n\n if (vals) {\n this._vuelidate = validateModel(this, vals);\n }\n\n return {};\n },\n beforeCreate: function beforeCreate() {\n var options = this.$options;\n var vals = options.validations;\n if (!vals) return;\n if (!options.computed) options.computed = {};\n if (options.computed.$v) return;\n\n options.computed.$v = function () {\n return this._vuelidate ? this._vuelidate.refs.$v.proxy : null;\n };\n },\n beforeDestroy: function beforeDestroy() {\n if (this._vuelidate) {\n this._vuelidate.$destroy();\n\n this._vuelidate = null;\n }\n }\n};\nexports.validationMixin = validationMixin;\n\nfunction Vuelidate(Vue) {\n Vue.mixin(validationMixin);\n}\n\nvar _default = Vuelidate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._setTarget = void 0;\nexports.popParams = popParams;\nexports.pushParams = pushParams;\nexports.target = void 0;\nexports.withParams = withParams;\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\nvar stack = [];\nvar target = null;\nexports.target = target;\n\nvar _setTarget = function _setTarget(x) {\n exports.target = target = x;\n};\n\nexports._setTarget = _setTarget;\n\nfunction pushParams() {\n if (target !== null) {\n stack.push(target);\n }\n\n exports.target = target = {};\n}\n\nfunction popParams() {\n var lastTarget = target;\n var newTarget = exports.target = target = stack.pop() || null;\n\n if (newTarget) {\n if (!Array.isArray(newTarget.$sub)) {\n newTarget.$sub = [];\n }\n\n newTarget.$sub.push(lastTarget);\n }\n\n return lastTarget;\n}\n\nfunction addParams(params) {\n if (_typeof(params) === 'object' && !Array.isArray(params)) {\n exports.target = target = _objectSpread(_objectSpread({}, target), params);\n } else {\n throw new Error('params must be an object');\n }\n}\n\nfunction withParamsDirect(params, validator) {\n return withParamsClosure(function (add) {\n return function () {\n add(params);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return validator.apply(this, args);\n };\n });\n}\n\nfunction withParamsClosure(closure) {\n var validator = closure(addParams);\n return function () {\n pushParams();\n\n try {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validator.apply(this, args);\n } finally {\n popParams();\n }\n };\n}\n\nfunction withParams(paramsOrClosure, maybeValidator) {\n if (_typeof(paramsOrClosure) === 'object' && maybeValidator !== undefined) {\n return withParamsDirect(paramsOrClosure, maybeValidator);\n }\n\n return withParamsClosure(paramsOrClosure);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.h = h;\nexports.patchChildren = patchChildren;\n\nfunction isUndef(v) {\n return v === null || v === undefined;\n}\n\nfunction isDef(v) {\n return v !== null && v !== undefined;\n}\n\nfunction sameVval(oldVval, vval) {\n return vval.tag === oldVval.tag && vval.key === oldVval.key;\n}\n\nfunction createVm(vval) {\n var Vm = vval.tag;\n vval.vm = new Vm({\n data: vval.args\n });\n}\n\nfunction updateVval(vval) {\n var keys = Object.keys(vval.args);\n\n for (var i = 0; i < keys.length; i++) {\n keys.forEach(function (k) {\n vval.vm[k] = vval.args[k];\n });\n }\n}\n\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) map[key] = i;\n }\n\n return map;\n}\n\nfunction updateChildren(oldCh, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVval = oldCh[0];\n var oldEndVval = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVval = newCh[0];\n var newEndVval = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, elmToMove;\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVval)) {\n oldStartVval = oldCh[++oldStartIdx];\n } else if (isUndef(oldEndVval)) {\n oldEndVval = oldCh[--oldEndIdx];\n } else if (sameVval(oldStartVval, newStartVval)) {\n patchVval(oldStartVval, newStartVval);\n oldStartVval = oldCh[++oldStartIdx];\n newStartVval = newCh[++newStartIdx];\n } else if (sameVval(oldEndVval, newEndVval)) {\n patchVval(oldEndVval, newEndVval);\n oldEndVval = oldCh[--oldEndIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldStartVval, newEndVval)) {\n patchVval(oldStartVval, newEndVval);\n oldStartVval = oldCh[++oldStartIdx];\n newEndVval = newCh[--newEndIdx];\n } else if (sameVval(oldEndVval, newStartVval)) {\n patchVval(oldEndVval, newStartVval);\n oldEndVval = oldCh[--oldEndIdx];\n newStartVval = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n idxInOld = isDef(newStartVval.key) ? oldKeyToIdx[newStartVval.key] : null;\n\n if (isUndef(idxInOld)) {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n } else {\n elmToMove = oldCh[idxInOld];\n\n if (sameVval(elmToMove, newStartVval)) {\n patchVval(elmToMove, newStartVval);\n oldCh[idxInOld] = undefined;\n newStartVval = newCh[++newStartIdx];\n } else {\n createVm(newStartVval);\n newStartVval = newCh[++newStartIdx];\n }\n }\n }\n }\n\n if (oldStartIdx > oldEndIdx) {\n addVvals(newCh, newStartIdx, newEndIdx);\n } else if (newStartIdx > newEndIdx) {\n removeVvals(oldCh, oldStartIdx, oldEndIdx);\n }\n}\n\nfunction addVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n createVm(vvals[startIdx]);\n }\n}\n\nfunction removeVvals(vvals, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vvals[startIdx];\n\n if (isDef(ch)) {\n ch.vm.$destroy();\n ch.vm = null;\n }\n }\n}\n\nfunction patchVval(oldVval, vval) {\n if (oldVval === vval) {\n return;\n }\n\n vval.vm = oldVval.vm;\n updateVval(vval);\n}\n\nfunction patchChildren(oldCh, ch) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) updateChildren(oldCh, ch);\n } else if (isDef(ch)) {\n addVvals(ch, 0, ch.length - 1);\n } else if (isDef(oldCh)) {\n removeVvals(oldCh, 0, oldCh.length - 1);\n }\n}\n\nfunction h(tag, key, args) {\n return {\n tag: tag,\n key: key,\n args: args\n };\n}","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction arrayToObject() {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return fields.reduce(function (prev, path) {\n var key = path.split(\".\").slice(-1)[0];\n\n if (prev[key]) {\n throw new Error(\"The key `\".concat(key, \"` is already in use.\"));\n } // eslint-disable-next-line no-param-reassign\n\n\n prev[key] = path;\n return prev;\n }, {});\n}\n\nfunction objectEntries(obj) {\n return Object.keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n}\n\nfunction normalizeNamespace(fn) {\n return function () {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line prefer-const\n var _ref = typeof params[0] === \"string\" ? [].concat(params) : [\"\"].concat(params),\n _ref2 = _slicedToArray(_ref, 4),\n namespace = _ref2[0],\n map = _ref2[1],\n getterType = _ref2[2],\n mutationType = _ref2[3];\n\n if (namespace.length && namespace.charAt(namespace.length - 1) !== \"/\") {\n namespace += \"/\";\n }\n\n getterType = \"\".concat(namespace).concat(getterType || \"getField\");\n mutationType = \"\".concat(namespace).concat(mutationType || \"updateField\");\n return fn(namespace, map, getterType, mutationType);\n };\n}\n\nfunction getField(state) {\n return function (path) {\n return path.split(/[.[\\]]+/).reduce(function (prev, key) {\n return prev[key];\n }, state);\n };\n}\nfunction updateField(state, _ref3) {\n var path = _ref3.path,\n value = _ref3.value;\n path.split(/[.[\\]]+/).reduce(function (prev, key, index, array) {\n if (array.length === index + 1) {\n // eslint-disable-next-line no-param-reassign\n prev[key] = value;\n }\n\n return prev[key];\n }, state);\n}\nvar mapFields = normalizeNamespace(function (namespace, fields, getterType, mutationType) {\n var fieldsObject = Array.isArray(fields) ? arrayToObject(fields) : fields;\n return Object.keys(fieldsObject).reduce(function (prev, key) {\n var path = fieldsObject[key];\n var field = {\n get: function get() {\n return this.$store.getters[getterType](path);\n },\n set: function set(value) {\n this.$store.commit(mutationType, {\n path: path,\n value: value\n });\n }\n }; // eslint-disable-next-line no-param-reassign\n\n prev[key] = field;\n return prev;\n }, {});\n});\nvar mapMultiRowFields = normalizeNamespace(function (namespace, paths, getterType, mutationType) {\n var pathsObject = Array.isArray(paths) ? arrayToObject(paths) : paths;\n return Object.keys(pathsObject).reduce(function (entries, key) {\n var path = pathsObject[key]; // eslint-disable-next-line no-param-reassign\n\n entries[key] = {\n get: function get() {\n var store = this.$store;\n var rows = objectEntries(store.getters[getterType](path));\n return rows.map(function (fieldsObject) {\n return Object.keys(fieldsObject[1]).reduce(function (prev, fieldKey) {\n var fieldPath = \"\".concat(path, \"[\").concat(fieldsObject[0], \"].\").concat(fieldKey);\n return Object.defineProperty(prev, fieldKey, {\n get: function get() {\n return store.getters[getterType](fieldPath);\n },\n set: function set(value) {\n store.commit(mutationType, {\n path: fieldPath,\n value: value\n });\n }\n });\n }, {});\n });\n }\n };\n return entries;\n }, {});\n});\nvar createHelpers = function createHelpers(_ref4) {\n var _ref5;\n\n var getterType = _ref4.getterType,\n mutationType = _ref4.mutationType;\n return _ref5 = {}, _defineProperty(_ref5, getterType, getField), _defineProperty(_ref5, mutationType, updateField), _defineProperty(_ref5, \"mapFields\", normalizeNamespace(function (namespace, fields) {\n return mapFields(namespace, fields, getterType, mutationType);\n })), _defineProperty(_ref5, \"mapMultiRowFields\", normalizeNamespace(function (namespace, paths) {\n return mapMultiRowFields(namespace, paths, getterType, mutationType);\n })), _ref5;\n};\n\nexport { createHelpers, getField, mapFields, mapMultiRowFields, updateField };\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n"],"names":["render","_vm","this","_c","_self","class","color","spin","iconOnly","attrs","icon","staticRenderFns","props","type","String","default","required","Boolean","component","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","exports","mixins","Themeable","extend","name","dark","undefined","id","light","computed","isDark","$vuetify","theme","Error","wrapper","staticClass","getSlot","rtl","themeClasses","domProps","Grid","VGrid","Vue","tag","_ref","data","children","trim","classes","Object","keys","filter","key","value","startsWith","length","join","BindsAttrs","Colorable","Elevatable","Measurable","Roundable","outlined","shaped","elevationClasses","roundedClasses","styles","measurableStyles","style","on","listeners$","setBackgroundColor","$slots","install","args","arguments","installed","OurVue","consoleError","components","directives","directive","registerComponents","$_vuetify_subcomponents","$_vuetify_installed","mixin","vuetify","init","$ssrContext","observable","framework","beforeMount","$el","hasAttribute","isHydrating","breakpoint","update","mounted","badge","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","datePicker","itemsSelected","nextMonthAriaLabel","nextYearAriaLabel","prevMonthAriaLabel","prevYearAriaLabel","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","input","clear","prependAction","appendAction","fileInput","counter","counterSize","timePicker","am","pm","pagination","previous","page","currentPage","rating","loading","preset","mobileBreakpoint","scrollBarWidth","thresholds","xs","sm","md","lg","icons","iconfont","values","lang","current","locales","en","t","disable","cspNonce","customProperties","minifyTheme","themeCache","variations","themes","primary","secondary","accent","error","info","success","warning","Presets","Service","constructor","parentPreset","super","defaultPreset","mergeDeep","Preset","userPreset","globalPreset","consoleWarn","property","Application","bar","top","left","insetFooter","right","bottom","footer","application","register","uid","location","size","unregister","reduce","acc","cur","Breakpoint","xl","xsOnly","smOnly","smAndDown","smAndUp","mdOnly","mdAndDown","mdAndUp","lgOnly","lgAndDown","lgAndUp","xlOnly","height","width","mobile","resizeTimeout","window","addEventListener","onResize","bind","passive","ssr","getClientHeight","getClientWidth","parseInt","breakpoints","max","clearTimeout","setTimeout","document","Math","documentElement","clientWidth","innerWidth","clientHeight","innerHeight","complete","cancel","delete","checkboxOn","checkboxOff","checkboxIndeterminate","sort","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","first","last","unfold","file","plus","minus","convertToComponentDeclarations","iconSet","result","split","freeze","mdiSvg","mdi","fa","fa4","faSvg","Icons","presets","LANG_PREFIX","fallback","Symbol","getTranslation","locale","usingDefault","defaultLocale","shortKey","replace","translation","getObjectValueByPath","Lang","translator","defaultTranslator","currentLocale","_len","params","Array","_key","_len2","_key2","str","match","index","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","fromXYZ","xyz","rgb","transform","matrix","i","round","clamp","toXYZ","r","g","b","delta","cielabForwardTransform","cbrt","cielabReverseTransform","transformedY","lab","Ln","parse","isItem","anchor","variant","colors","parsedTheme","colorToHex","genVariations","colorToInt","base","intToHex","genBaseColor","genVariantColor","n","genColorVariableName","genColorVariable","genStyles","cssVar","variablesCss","css","aColor","variants","variantValue","lighten","darken","amount","LAB","sRGB","Theme","disabled","unwatch","vueMeta","defaults","fillVariant","val","isVueMeta23","applyVueMeta23","checkOrCreateStyleElement","styleEl","innerHTML","oldDark","applyTheme","clearCss","generatedStyles","root","$meta","initVueMeta","initSSR","initTheme","setTheme","assign","resetThemes","getElementById","genStyleElement","defaultTheme","createElement","setAttribute","head","appendChild","$nextTick","metaKeyName","getOptions","keyName","metaInfo","vuetifyStylesheet","find","s","cssText","push","nonce","set","addApp","$once","obs","$watch","deep","currentTheme","target","get","ThemeUtils","getNestedValue","Vuetify","use","services","forEach","service","includes","version","config","silent","makeWatcher","oldVal","attr","prototype","hasOwnProperty","$delete","$data","$set","attrs$","created","immediate","methods","isCssColor","setTextColor","colorName","colorModifier","toString","elevation","Number","computedElevation","isNaN","maxHeight","maxWidth","minHeight","minWidth","convertToUnit","availableProps","absolute","fixed","factory","selected","filterObjectOnKeys","rounded","tile","composite","provide","themeableProvide","inject","appIsDark","rootIsDark","rootThemeClasses","watch","handler","newVal","functionalThemeClasses","vm","injections","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getOffset","el","$","TypeError","totalOffset","offsetTop","offsetParent","getContainer","container","querySelector","_isVue","HTMLElement","goTo","_target","_settings","settings","scrollingElement","body","duration","offset","easing","appOffset","isDrawer","classList","contains","isClipped","startTime","performance","now","targetLocation","startLocation","scrollTop","Promise","resolve","ease","easingPatterns","requestAnimationFrame","step","currentTime","timeElapsed","progress","abs","min","floor","reachBottom","scrollHeight","Goto","c","substring","map","char","hexColor","repeat","createMessage","message","$parent","$_alreadyWarned","generateComponentTrace","breaking","original","replacement","removed","classifyRE","classify","toUpperCase","formatComponentName","includeFile","cid","_componentTag","__file","tree","currentRecursiveSequence","isArray","createSimpleFunctional","addOnceEventListener","eventName","cb","once","event","removeEventListener","passiveSupported","testListenerOpts","defineProperty","e","addPassiveEventListener","obj","path","deepEqual","a","Date","getTime","every","p","getPropertyFromItem","item","createRange","from","v","k","getZIndex","nodeType","Node","ELEMENT_NODE","getComputedStyle","getPropertyValue","parentNode","filtered","unit","kebabCase","toLowerCase","isObject","keyCodes","enter","tab","esc","space","up","down","end","home","del","backspace","insert","pageup","pagedown","shift","remapInternalIcon","iconName","iconPath","pop","override","o","camelizeRE","camelize","_","upperFirst","charAt","slice","wrapInArray","getSlotType","$scopedSlots","throttle","fn","limit","throttling","optional","kebabName","Function","source","sourceProperty","targetProperty","composedPath","tagName","parentElement","pattern","styleList","styleProp","parseStyle","styleMap","mergeData","mergeTarget","prop","mergeClasses","mergeStyles","mergeListeners","dest","arg","ContactInfo","email","Email","firstName","FirstName","lastName","LastName","phoneNumber","PhoneNumber","company","Company","country","state","suburb","postcode","streetAddress","streetAddressLineTwo","getAddressPayload","Country","State","Suburb","PostCode","StreetAddress","StreetAddressLineTwo","Payer","userId","paymentMethods","payerProfiles","PaymentMethod","hasAutoPay","isDefault","savedInWP","companyName","hasPendingScheduledPayments","hasPaymentMethod","billingDetails","isCreditCard","cardNumber","cardName","cardCVV","savedCardType","cardType","token","cardExpiry","setCardExpiry","cardExpiryMonth","cardExpiryYear","isBankDebit","accountName","bsb","bsbTwo","institutionNumber","account","maskedCardNumber","cardNumberBlocks","cardTypeValidations","visa","mastercard","amex","discover","diners","jcb","union","RegExp","test","getPayload","payload","IsDefault","UniquePayerReferenceId","TokenFromCardProvider","MaskedCreditCard","cardMaskedNumber","BankAccount","AccountName","AccountNumber","Bsb","getPayrixPayload","Card","CardNumber","CardholderName","ExpiryYear","ExpiryMonth","Ccv","expiry","month","year","Term","detailsEndpoint","termsAndConditionsId","accepted","content","Content","description","Description","isSignatureRequired","IsSignatureRequired","Type","endpoint","WsApi","getUrl","isLoaded","getFormattedContent","replacingElements","PayerName","store","payer","PayerCompanyName","SurchargeLabel","merchant","paymentTypes","creditCards","surchargeLabel","formattedContent","replacementText","findingRegex","TermsAndConditionsId","Signature","termsAndConditions","signature","Position","acceptedByPosition","AcceptedBy","acceptedBy","_defineProperty","_toPropertyKey","enumerable","configurable","writable","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_toPrimitive","toPrimitive","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","MutationObserver","userAgent","navigator","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","IS_IE","indexOf","S","classic","fas","far","fal","fat","fab","duotone","fad","fadr","fadl","fadt","sharp","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt","A","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","P","L","G","normal","lt","pt","Map","defaultShortPrefixId","defaultStyleId","styleIds","futureStyleIds","defaultFontWeight","xt","solid","regular","thin","brands","Ft","St","kit","fak","fakd","At","Ct","Lt","Wt","Et","t$1","r$1","bt$1","Yt","po","I$1","co","x","xo","m$1","c$1","F$1","Fo","ko","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_CSS_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_FA_PSEUDO_ELEMENT_PENDING","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","MUTATION_APPROACH_ASYNC","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","e$$1","familyProxy","Proxy","_PREFIX_TO_STYLE","PREFIX_TO_STYLE","_STYLE_TO_PREFIX","STYLE_TO_PREFIX","_PREFIX_TO_LONG_STYLE","PREFIX_TO_LONG_STYLE","_LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","_FONT_WEIGHT_TO_PREFIX","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","RESERVED_CLASSES","initial","FontAwesomeConfig","getAttrConfig","element","getAttribute","coerce","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","_onChangeCb","onChange","splice","d$2","meaninglessTransform","y","rotate","flipX","flipY","insertCss","headChildren","childNodes","beforeChild","child","insertBefore","idPool","nextUniqueId","random","toArray","array","classArray","node","htmlEscape","joinAttributes","attributes","attributeName","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","transformForCss","_ref2","startCentered","baseStyles","dcp","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","listener","loaded","domready","toHtml","abstractNodes","iconFromMapping","mapping","prefix","doScroll","readyState","bindInternal4","func","thisContext","d","subject","initialValue","iterator","ucs2decode","string","output","charCodeAt","extra","toHex","unicode","decoded","codePointAt","second","normalizeIcons","expanded","defineIcons","skipHooks","normalized","addPack","FAMILY_NAMES","PREFIXES_FOR_FAMILY","familyId","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","isReserved","getIconName","cls","parts","build","lookup","reducer","o$$1","aliases","a$$1","alias","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byLigature","ligature","byAlias","byOldName","byOldUnicode","oldUnicode","newUnicode","getDefaultUsablePrefix","c$$1","emptyCanonicalIcon","rest","getFamilyId","famProps","some","v$$1","styleOrPrefix","defined","moveNonFaClassesToRest","classNames","sortedUniqueValues","arr","getCanonicalIcon","skipLookups","givenPrefix","faCombinedClasses","faStyleOrFamilyClasses","nonStyleOrFamilyClasses","faStyles","styleFromValues","canonical","getDefaultCanonicalPrefix","applyShimAndAlias","aliasIconName","newCanonicalFamilies","newCanonicalStyles","flat","prefixOptions","config$$1","isDuotoneFamily","valuesHasDuotone","defaultFamilyIsDuotone","canonicalPrefixIsDuotone","validPrefix","defaultPrefix","Library","definitions","additions","_pullDefinitions","longPrefix","reset","definition","_plugins","_hooks","providers","defaultProviderKeys","registerPlugins","nextPlugins","mixoutsTo","plugin","tk","sk","provides","chainHooks","accumulator","hookFns","hookFn","callHooks","callProvided","findIconDefinition","iconLookup","library","noAuto","i2svg","reject","autoReplaceSvgRoot","autoReplace","canonicalIcon","api","domVariants","abstractCreator","abstract","html","asIcon","main","mask","found","asSymbol","symbol","makeInlineSvgAbstract","title","maskId","titleId","watchable","isUploadedIcon","attrClass","role","uploadedIconWidthStyle","makeLayersTextAbstract","styleString","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","maybeNotifyMissing","console","findIcon","noop$1","p$2","preamble","begin","perf","noop$2","isWatched","hasPrefixAndIcon","hasBeenReplaced","getMutator","mutators","mutator","createElementNS","convertSVG","abstractObj","ceFn","createTextNode","nodeAsComment","comment","outerHTML","mutation","createComment","replaceChild","remove","nest","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","disableObservation","enableObservation","mo$1","observe","treeCallback","nodeCallback","pseudoElementsCallback","observeMutationsRoot","objects","mutationRecord","addedNodes","childList","characterData","subtree","disconnect","styleParser","classParser","existingPrefix","existingIconName","innerText","firstChild","TEXT_NODE","attributesParser","extraAttributes","blankMeta","parseMeta","parser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","getKnownPrefixes","onTree","htmlClassList","hclAdd","suffix","hclRemove","prefixes","prefixesDomQuery","p$$1","candidates","querySelectorAll","all","then","resolvedMutations","catch","onNode","resolveIcons","maybeIconDefinition","iconDefinition","ReplaceElements","mutationObserverCallbacks","providers$$1","generateSvgReplacementMutation","generateAbstractIcon","nextChild","Layers","layer","assembler","LayersCounter","LayersText","text","generateLayersText","computedFontSize","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","_FONT_FAMILY_WEIGHT_TO_PREFIX","FontAwesome","FONT_FAMILY_WEIGHT_TO_PREFIX","FONT_FAMILY_WEIGHT_FALLBACK","fontFamily","weights","entries","hexValueFromContent","cleaned","codePoint","isPrependTen","isDoubled","isSecondary","getPrefix","fontWeight","fontFamilySanitized","fontWeightInteger","fontWeightSanitized","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","fontFamilyMatch","removeChild","hexValue","isV4","iconIdentifier","iconName4","meta","processable","operations","PseudoElements","pseudoElements2svg","_unwatched","MutationObserver$1","bootstrap","parseTransformString","transformString","parseFloat","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","ALL_SPACE","fillBlack","force","deGroup","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","opacity","SvgSymbols","symbolData","plugins","config$1","library$1","parse$1","object","enumerableOnly","symbols","sym","_typeof","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","minLen","len","arr2","commonjsGlobal","globalThis","self","humps$1","module","global","_processKeys","convert","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","l","_isArray","separateWords","separator","_isNumerical","chr","substr","pascalize","camelized","decamelize","_processor","process","humps","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","_excluded","styleToObject","pair","classToObject","combineClassObjects","objs","_data$class","dClass","_data$style","dStyle","_data$attrs","dAttrs","remainingData","log","_console","objectWithKey","_classes","spinPulse","spinReverse","pulse","beat","fade","flash","fixedWidth","border","listItem","inverse","flip","rotation","pull","swapOpacity","bounce","shake","beatFade","addStaticClass","to","what","normalizeIconArgs","FontAwesomeIcon","validator","iconArgs","maskArgs","icon$1","renderedIcon","convertCurry","faTrashCan","faTrashAlt","faMessage","faCommentAlt","faFileLines","faFileAlt","faFileText","faCalendarDays","faCalendarAlt","faHandPointRight","faFaceSmileBeam","faSmileBeam","faFaceGrinStars","faGrinStars","faAddressBook","faContactBook","faComments","faPaste","faFileClipboard","faFaceGrinTongueSquint","faGrinTongueSquint","faFaceFlushed","faFlushed","faSquareCaretRight","faCaretSquareRight","faSquareMinus","faMinusSquare","faCompass","faSquareCaretDown","faCaretSquareDown","faFaceKissBeam","faKissBeam","faLightbulb","faFlag","faSquareCheck","faCheckSquare","faCircleDot","faDotCircle","faFaceDizzy","faDizzy","faFutbol","faFutbolBall","faSoccerBall","faPenToSquare","faEdit","faHourglassHalf","faHourglass2","faEyeSlash","faHand","faHandPaper","faHandSpock","faFaceKiss","faKiss","faFaceGrinTongue","faGrinTongue","faChessBishop","faFaceGrinWink","faGrinWink","faFaceGrinWide","faGrinAlt","faFaceFrownOpen","faFrownOpen","faHandPointUp","faBookmark","faHandPointDown","faFolder","faFolderBlank","faUser","faSquareCaretLeft","faCaretSquareLeft","faStar","faChessKnight","faFaceLaughSquint","faLaughSquint","faFaceLaugh","faLaugh","faFolderOpen","faClipboard","faChessQueen","faHandBackFist","faHandRock","faSquareCaretUp","faCaretSquareUp","faChartBar","faBarChart","faWindowRestore","faSquarePlus","faPlusSquare","faImage","faFolderClosed","faLemon","faHandshake","faGem","faCirclePlay","faPlayCircle","faCircleCheck","faCheckCircle","faCircleStop","faStopCircle","faIdBadge","faFaceLaughBeam","faLaughBeam","faRegistered","faAddressCard","faContactCard","faVcard","faFaceTired","faTired","faFontAwesome","faFontAwesomeFlag","faFontAwesomeLogoFull","faFaceSmileWink","faSmileWink","faFileWord","faFilePowerpoint","faEnvelopeOpen","faFileZipper","faFileArchive","faSquare","faSnowflake","faNewspaper","faFaceKissWinkHeart","faKissWinkHeart","faStarHalfStroke","faStarHalfAlt","faFileExcel","faFaceGrinBeam","faGrinBeam","faObjectUngroup","faCircleRight","faArrowAltCircleRight","faFaceRollingEyes","faMehRollingEyes","faObjectGroup","faHeart","faFaceSurprise","faSurprise","faCirclePause","faPauseCircle","faCircle","faCircleUp","faArrowAltCircleUp","faFileAudio","faFileImage","faCircleQuestion","faQuestionCircle","faFaceMehBlank","faMehBlank","faEye","faFaceSadCry","faSadCry","faFileCode","faWindowMaximize","faFaceFrown","faFrown","faFloppyDisk","faSave","faCommentDots","faCommenting","faFaceGrinSquint","faGrinSquint","faHandPointer","faHandScissors","faFaceGrinTears","faGrinTears","faCalendarXmark","faCalendarTimes","faFileVideo","faFilePdf","faComment","faEnvelope","faHourglass","faHourglassEmpty","faCalendarCheck","faHardDrive","faHdd","faFaceGrinSquintTears","faGrinSquintTears","faRectangleList","faListAlt","faCalendarPlus","faCircleLeft","faArrowAltCircleLeft","faMoneyBill1","faMoneyBillAlt","faClock","faClockFour","faKeyboard","faClosedCaptioning","faImages","faFaceGrin","faGrin","faFaceMeh","faMeh","faIdCard","faDriversLicense","faSun","faFaceLaughWink","faLaughWink","faCircleDown","faArrowAltCircleDown","faThumbsDown","faChessPawn","faCreditCard","faCreditCardAlt","faBell","faFile","faHospital","faHospitalAlt","faHospitalWide","faChessRook","faStarHalf","faChessKing","faCircleUser","faUserCircle","faCopy","faShareFromSquare","faShareSquare","faCopyright","faMap","faBellSlash","faHandLizard","faFaceSmile","faSmile","faHandPeace","faFaceGrinHearts","faGrinHearts","faBuilding","faFaceGrinBeamSweat","faGrinBeamSweat","faMoon","faCalendar","faFaceGrinTongueWink","faGrinTongueWink","faClone","faFaceAngry","faAngry","faRectangleXmark","faRectangleTimes","faTimesRectangle","faWindowClose","faPaperPlane","faLifeRing","faFaceGrimace","faGrimace","faCalendarMinus","faCircleXmark","faTimesCircle","faXmarkCircle","faThumbsUp","faWindowMinimize","faSquareFull","faNoteSticky","faStickyNote","faFaceSadTear","faSadTear","faHandPointLeft","WpFontAwesome","customIconSvg","ChevronDown","customIconSvgPath","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","res","param","stringifyQuery","val2","trailingSlashRE","createRoute","record","redirectedFrom","router","clone","route","hash","fullPath","getFullPath","matched","formatMatch","START","unshift","ref","_stringifyQuery","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bKey","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","routerView","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","keepAlive","_directInactive","_inactive","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","prepatch","vnode","componentInstance","propsToPass","resolveProps","resolvePath","relative","append","firstChar","stack","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","exec","m","escaped","capture","group","modifier","asterisk","partial","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encodeAsterisk","flags","opts","pretty","JSON","j","attachKeys","re","sensitive","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","Link","custom","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","this$1$1","$router","href","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","click","scopedSlot","$hasNormal","navigate","isActive","isExactActive","findAnchor","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","preventDefault","isDef","registerInstance","callVal","_parentVnode","_router","util","defineReactive","history","destroyed","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","childMatchAs","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","toFixed","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","replaceState","handlePopState","handleScroll","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","pageXOffset","pageYOffset","getElementPosition","docEl","docRect","elRect","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","selector","scrollTo","supportsPushState","ua","pushState","url","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","resolvedDef","isESModule","resolved","reason","msg","comp","flatten","hasSymbol","toStringTag","__esModule","called","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","updated","activated","deactivated","extractGuards","records","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathname","pathLowerCase","baseLowerCase","search","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","handleInitialScroll","routeOrError","beforeEach","registerHook","beforeResolve","afterEach","back","forward","getMatchedComponents","createHref","normalizedTo","VueRouter$1","list","START_LOCATION","isCdn","routePrefix","nearestWithTitle","getPaymentMethods","payerUserId","transactionId","SecuredWsApi","getPayerDetails","verifyEmailAddress","apiUrl","post","addOrUpdateCreditCard","put","addOrUpdateBankDebit","createNewPayer","updatePayerTermsOnLogin","updateCreditCardAVSDetails","payAsGuest","payAsLoggedInUser","getMerchantTerms","consultingServiceIds","consultingIdsQueryData","Id","getInvoice","validateInvoice","invoiceNumber","generateTransactionId","generatePasswordCreationUrl","login","getTwoFactorSetupCode","getSession","getOnboardingDetails","onboardingToken","updatePayerDetails","acceptTerms","termsId","payerOnboardingTermsId","createPayerPassword","password","payerOnboardingToken","onboardPayer","generateForm","getCardDetails","customerId","getMerchantPayerCompanies","HttpClient","baseUrl","_serializeUrl","_send","method","headers","axiosConfig","response","axios","request","withCredentials","credentials","serializedUrl","URLSearchParams","FrontendWsApi","baseURL","SecuredWsFrontendApi","securedHeaders","jwt","Authorization","baseURLPort","VUE_APP_ROOT_API_PORT","getListOfTerminals","accountMerchantId","getTransactionReceipt","cancelCardPresentPayment","getField","merchantName","invoice","paymentCompany","getCardConfig","cardConfigs","types","currentCardChargeConfig","getters","selectedPaymentMethod","currentSurchargePercentage","overrideSurcharge","surcharge","currentTransactionFee","transactionCharge","totalSurcharge","payingToday","invoiceAmountDue","total","amountDue","currencySymbol","currency","formatter","Intl","NumberFormat","format","scheduledPaymentDate","_date","toDateString","paymentMethod","bankDebits","selectedPaymentMethodIndex","isAVSValidationIncluded","isUserAPayer","user","isLoggedIn","isAvsEnabled","isAVSFromSelectedPaymentMethodCompleted","isCompleted","creditCard","getTermsByNames","termNames","terms","term","isMerchantFlow","isAdminRole","isVirtualTerminal","isCreditCardAccepted","maxLimit","isBankDebitAccepted","bankDebit","isPaymentMethodAccepted","isCardTypeAccepted","isThirdPartyIntegrationPresent","isPresent","thirdPartyIntegration","isThirdPartyIntegrationReturnUrlPresent","returnUrl","isPSAMerchant","merchantAccountingPackage","ADMIN_ROLES","User","username","payersList","isGuest","Invoice","payerCompany","scheduledAmount","scheduledPayments","invoiceDate","dueDate","timezone","hasOutstandingInvoices","isInvoiceLocked","isSynced","isPrepayment","hasScheduledPayments","getSafe","dataFunction","defaultValue","Merchant","merchantId","paymentCompanyName","logoUrl","paymentCompanyLogoUrl","canSchedulePayment","isScheduledGuestCreditCardPaymentAllowed","canScheduleOverduePayments","isScheduledGuestCreditCardPaymentForPastDueInvoicesAllowed","existingPaymentMethodSaved","enquiriesNumber","enquiriesContactName","merchantEmailAddress","localeName","invoiceCurrencyCode","ObjectHelper","prefixAccountLabel","prefixAccountLabelTwo","accountNumberLabel","currencySymbols","Australia","Canada","Ireland","Singapore","setUserPassword","createPasswordUrl","transactionError","errorMessage","setExtraDataLoadingError","hasError","extraDataLoadingError","clearUserPaymentMethods","savePaymentMethod","paymentMethodData","existingIndex","findIndex","existingPaymentMethod","removePaymentMethod","paymentMethodId","paymentMethodIndex","selectPaymentMethod","today","setHours","valueOf","transactionDataInit","tokenization","allowPartPayment","isNewPrepaymentFlowEnabled","isGuestBankPaymentAccepted","isGuestCreditCardPaymentAccepted","isBaseCurrency","isCardPresentPaymentsEnabled","accountId","invoiceData","payerCompanyName","pendingAmount","timeZone","invoiceDetails","invoiceId","amountToPay","totalDue","paymentInProgress","logoutUser","isRegisteringNewPayer","payment","paymentStatus","paymentSuccessful","paymentError","paymentErrorMessage","paymentThirdPartyReturnUrl","redirectInProgress","transactionResult","ExternalId","IsSuccess","updateField","userLogin","userData","continueAsGuest","userRegister","setCheckoutStep","checkoutStep","setPayTodayAmount","setTermsAndConditions","newTerm","existingTerm","updateTermDetails","termDetail","acceptTerm","termId","saveJWT","jwtTimestamp","resetJWTWithTimestamp","setTransactionId","setPayerPaymentMethods","setPayersList","fullname","setPayerDetails","contactNumber","visitorId","userEmail","userName","PendoUtil","initializePendo","clearPayerDetails","setIsRegistering","flag","setPayerId","setLoadingInvoiceDetails","isLoading","loadingInvoiceDetails","setLoadingTerms","loadingTerms","setLoadingUserDetails","loadingUserDetails","setLoadingPaymentMethods","loadingPaymentMethods","setIsBillingDetailsUpdated","isUpdated","isBillingDetailsUpdated","setOnboardingToken","setOnboardingAsExpired","isOnboardingExpired","initializeOnboardingData","onboardingTermsId","isUserActivated","partnerPortalUrl","setLoadingOnboardingData","isLoadingOnboardingData","setLoadingOnboardingDataError","isLoadingOnboardingDataError","setAutoPaymentTermsToOtherPayerStatus","isAssignedToOtherPayer","isAutoPaymentTermsAssignedToOtherPayer","setAlertDetailsByKey","alertGroups","alertReferenceKey","details","clearAlertDetailsByKey","setUserDetailsStepData","userDetailsStep","setAvsBillingDetailsForZeroQuoteFlow","avsBillingDetailsForZeroQuoteFlow","setMerchantPayerCompanies","merchantPayerCompanies","setIsPaymentDetailsInEdit","isPaymentDetailsInEdit","scrollToMyDetails","myDetails","getUserPassword","commit","TransactionId","BillingDetails","UserService","logger","dispatch","saveJWTToken","_ref3","updateUserDetails","_ref4","getUserDetails","_ref5","requestAuthResponse","termsThatRequireAcceptance","requestAuthResponseBodyForTermsAcceptance","getMerchantPayerCompaniesForVirtualTerminal","_ref6","isMerchantPayerCompaniesApiLoading","merchantPayerResponse","MerchantService","extendUserSession","_ref7","updateDefaultPaymentMethod","_ref8","defaultPaymentMethods","defaultPaymentMethod","getPayerPaymentMethods","_ref9","PayerService","_ref10","getMerchantTandC","_ref11","TermService","getTermsDetails","_ref12","async","termData","getInvoiceDetails","_ref13","InvoiceService","Message","generateNewTransactionId","_ref14","requestBody","redirectPath","checkIfInvoiceIsSynced","_ref15","setPageTitle","_ref16","checkIfNpeEnabled","_ref17","isNpeEnabled","isNewPaymentExperienceEnabled","oldPaymentExperienceUrl","guestPayment","_ref18","acceptedTerms","PaymentAmount","TransactionAmount","CardType","SurchargeAmount","IsOverrideSurcharge","AcceptedTermsAndConditions","PayerUserId","IsBillingDetailsUpdated","isPaymentEndpointFailed","PaymentService","ErrorDetails","CustomErrorMessage","loggedInUserPayment","_ref19","SavedPaymentMethod","ScheduledPaymentDate","getRequiredTermsDetails","_ref20","requiredTerms","unloadedTerms","_ref21","OnboardingService","statusCode","getOnboardingPayerDetails","_ref22","isTermsAssignedToOtherPayer","acceptOnboardingTerms","_ref23","logPayerOnboardingEvent","_ref24","setupPayerOnboarding","_ref25","autoPaymentPaymentMethodId","acceptedTermsAndConditions","_ref26","showLoginPanel","AccountMerchantLogId","downloadInvoiceUrl","downloadSurchargeInvoiceUrl","connectWiseSell","userDetails","paymentDetails","paymentReview","invoiceSearch","Vuex","actions","ConsoleApiName","debug","warn","globalConsole","originalConsoleMethods","PREFIX","display","catchUserErrors","errorMsg","_i","onMonitorErrorCollected","__spreadArray","pack","ar","debugMode","startMonitorErrorCollection","newOnMonitorErrorCollected","setDebugMode","newDebugMode","monitored","__","descriptor","originalMethod","decorated","monitor","callMonitored","displayIfDebugEnabled","candidate","arrayFrom","arrayLike","Set","predicate","objectValues","objectEntries","endsWith","toAssign","makePublicApi","stub","publicApi","defineGlobal","existingGlobalVariable","q","getGlobalObject","globalObject","_dd_temp_","ONE_KIBI_BYTE","ONE_MEBI_BYTE","HAS_MULTI_BYTES_CHARACTERS","computeBytesCount","TextEncoder","Blob","getZoneJsOriginalValue","browserWindow","Zone","__symbol__","delay","timeoutId","wait","pendingExecutionWithParameters","pendingTimeoutId","needLeadingExecution","leading","needTrailingExecution","trailing","inWaitPeriod","throttled","parameters","getType","mergeInto","destination","circularReferenceChecker","createCircularReferenceChecker","ignoreCase","multiline","sticky","hasAlreadyBeenSeen","merged_1","merged","deepClone","combine","sources","_a","sources_1","WeakSet","set_1","has","jsonStringify","replacer","restoreObjectPrototypeToJson","detachToJsonMethod","restoreArrayPrototypeToJson","restoreValuePrototypeToJson","getPrototypeOf","restoreValueToJson","objectToJson","toJSON","SANITIZE_DEFAULT_MAX_CHARACTER_COUNT","JSON_PATH_ROOT_ELEMENT","KEY_DECORATION_LENGTH","sanitize","maxCharacterCount","containerQueue","visitedObjectsWithPath","WeakMap","sanitizedData","sanitizeProcessor","accumulatedCharacterCount","containerToProcess","separatorLength","targetData","warnOverCharacterLimit","parentPath","sourceToSanitize","tryToApplyToJSON","sanitizePrimitivesAndFunctions","sanitizedSource","sanitizeObjects","sourceAsObject","currentPath","Event","isTrusted","changeType","Observable","onFirstSubscribe","observers","subscribe","f","_this","onLastUnsubscribe","unsubscribe","other","notify","observer","mergeObservables","observables","globalObservable","subscriptions","subscription","CUSTOMER_DATA_BYTES_LIMIT","CustomerDataLabel","warnIfCustomerDataLimitReached","bytesCount","customerDataType","BYTES_COMPUTATION_THROTTLING_DELAY","createContextManager","computeBytesCountImpl","bytesCountCache","alreadyWarned","changeObservable","computeBytesCountThrottled","contextManager","getBytesCount","newContext","getContext","setContext","clearContext","setContextProperty","removeContextProperty","navigationStart","BUFFER_LIMIT","BoundedBuffer","buffer","drain","ONE_SECOND","ONE_MINUTE","ONE_HOUR","dateNow","timeStampNow","relativeNow","clocksNow","timeStamp","clocksOrigin","getNavigationStart","elapsed","start","addDuration","getRelativeTime","timestamp","timing","getEventBridge","eventBridgeGlobal","getEventBridgeGlobal","getAllowedWebViewHosts","send","canUseEventBridge","currentHost","hostname","bridge","allowedHost","DatadogEventBridge","configuration","eventTarget","addEventListeners","eventNames","_b","listenerWithMonitor","stop","ExperimentalFeature","CONTEXT_STORE_KEY_PREFIX","storageListeners","createStoredContextManager","productKey","storageKey","buildStorageKey","synchronizeWithStorage","dumpToStorage","rawContext","localStorage","getItem","setItem","sanitizeUser","newUser","checkUser","isValid","enabledExperimentalFeatures","addExperimentalFeatures","enabledFeatures","isExperimentalFeatureEnabled","featureName","getExperimentalFeatures","performDraw","threshold","isPercentage","shallowClone","objectHasValue","isEmptyObject","generateUUID","placeholder","findCommaSeparatedValue","rawString","safeTruncate","lastChar","isLastCharSurrogatePair","correctedLength","browserIsChromium","getCurrentSiteCache","SESSION_TIME_OUT_DELAY","SESSION_EXPIRATION_DELAY","isChromium","chrome","setCookie","expireDelay","date","setTime","expires","toUTCString","sameSite","crossSite","domain","secure","cookie","getCookie","deleteCookie","areCookiesAuthorized","testCookieName","testCookieValue","isCookieCorrectlySet","getCurrentSite","domainLevels","candidateDomain","SESSION_STORE_KEY","SESSION_ENTRY_REGEXP","SESSION_ENTRY_SEPARATOR","isSessionInExpiredState","session","expandSessionState","expire","toSessionString","toSessionState","sessionString","isValidSessionString","entry","OLD_SESSION_COOKIE_NAME","OLD_RUM_COOKIE_NAME","OLD_LOGS_COOKIE_NAME","RUM_SESSION_KEY","LOGS_SESSION_KEY","tryOldCookiesMigration","cookieStoreStrategy","oldSessionId","oldRumType","oldLogsType","persistSession","selectCookieStrategy","initConfiguration","cookieOptions","buildCookieOptions","initCookieStrategy","cookieStore","isLockEnabled","persistSessionCookie","retrieveSession","retrieveSessionCookie","clearSession","deleteSessionCookie","useSecureSessionCookie","useCrossSiteSessionCookie","trackSessionAcrossSubdomains","LOCAL_STORAGE_TEST_KEY","selectLocalStorageStrategy","testKey","retrievedId","removeItem","initLocalStorageStrategy","persistInLocalStorage","retrieveSessionFromLocalStorage","clearSessionFromLocalStorage","sessionState","ongoingOperations","LOCK_RETRY_DELAY","LOCK_MAX_TRIES","bufferedOperations","processSessionStoreOperations","sessionStoreStrategy","numberOfRetries","currentLock","currentSession","lock","retryLater","processedSession","after","sessionStore","currentNumberOfRetries","nextOperations","STORAGE_POLL_DELAY","selectSessionStoreStrategyType","sessionStoreStrategyType","allowFallbackToLocalStorage","startSessionStore","computeSessionState","renewObservable","expireObservable","watchSessionTimeoutId","watchSession","sessionCache","retrieveActiveSession","expandOrRenewSession","isTracked","synchronizedSession","synchronizeSession","expandOrRenewSessionState","hasSessionInCache","renewSessionInCache","expandSession","isActiveSession","isSessionInCacheOutdated","expireSessionInCache","trackingType","normalizeUrl","buildUrl","getLocationOrigin","supportedURL","getSupportedUrl","doc","anchorElement","implementation","createHTMLDocument","baseElement","isURLSupported","originalURL","URL","getLinkElementOrigin","origin","sanitizedHost","INTAKE_SITE_STAGING","INTAKE_SITE_US1","INTAKE_SITE_AP1","INTAKE_SITE_US1_FED","ENDPOINTS","logs","rum","sessionReplay","INTAKE_TRACKS","createEndpointBuilder","endpointType","configurationTags","buildUrlWithParameters","createEndpointUrlWithParametersBuilder","buildEndpointParameters","urlPrefix","proxy","proxyUrl","normalizedProxyUrl_1","buildEndpointHost","normalizedProxyUrl_2","site","internalAnalyticsSubdomain","domainParts","extension","subdomain","clientToken","retry","flushReason","encoding","tags","COLLECT_FLUSH_REASON","count","lastFailureStatus","TAG_SIZE_LIMIT","buildTags","env","datacenter","buildTag","FORBIDDEN_CHARACTERS","rawValue","valueSizeLimit","sanitizedValue","computeTransportConfiguration","endpointBuilders","computeEndpointBuilders","intakeUrlPrefixes","builder","replicaConfiguration","computeReplicaConfiguration","isIntakeUrl","intakeEndpoint","replica","logsEndpointBuilder","rumEndpointBuilder","sessionReplayEndpointBuilder","replicaEndpointBuilders","applicationId","validateAndBuildConfiguration","sessionSampleRate","sampleRate","telemetrySampleRate","telemetryConfigurationSampleRate","enableExperimentalFeatures","beforeSend","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","serializeConfiguration","session_sample_rate","telemetry_sample_rate","telemetry_configuration_sample_rate","use_before_send","use_cross_site_session_cookie","use_secure_session_cookie","use_proxy","silent_multiple_init","track_session_across_subdomains","track_resources","trackResources","track_long_task","trackLongTasks","allow_fallback_to_local_storage","store_contexts_across_pages","storeContextsAcrossPages","UNKNOWN_FUNCTION","computeStackTrace","ex","stackProperty","tryToGetString","exString","line","stackFrame","parseChromeLine","parseChromeAnonymousLine","parseWinLine","parseGeckoLine","fileUrl","filePosition","CHROME_LINE_RE","CHROME_EVAL_RE","isNative","isEval","submatch","column","CHROME_ANONYMOUS_FUNCTION_RE","WINJS_LINE_RE","GECKO_LINE_RE","GECKO_EVAL_RE","NO_ERROR_STACK_PRESENT_MESSAGE","computeRawError","stackTrace","originalError","handlingStack","startClocks","nonErrorPrefix","handling","isErrorInstance","computeMessage","hasUsableStack","toStackTraceString","causes","flattenErrorCauses","fingerprint","tryToGetFingerprint","dd_fingerprint","formatErrorMessage","getFileFromStackTraceString","createHandlingStack","formattedStack","internalFramesToSkip","parentSource","currentError","cause","RawReportType","intervention","deprecation","cspViolation","initReportObservable","apis","createCspViolationReportObservable","reportTypes","createReportObservable","ReportingObserver","handleReports","reports","report","buildRawReportFromReport","buffered","buildRawReportFromCspViolation","subtype","buildStack","sourceFile","lineNumber","columnNumber","blockedURI","effectiveDirective","originalPolicy","removeDuplicates","DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT","validateAndBuildLogsConfiguration","baseConfiguration","forwardConsoleLogs","validateAndBuildForwardOption","forwardReports","forwardErrorsToLogs","requestErrorResponseLengthLimit","option","allowedValues","label","serializeLogsConfiguration","baseSerializedInitConfiguration","forward_errors_to_logs","forward_console_logs","forward_reports","ErrorSource","AGENT","CONSOLE","CUSTOM","LOGGER","NETWORK","SOURCE","REPORT","__decorate","decorators","desc","Reflect","decorate","StatusType","HandlerType","http","STATUSES","Logger","handleLogStrategy","handlerType","level","loggerContext","messageContext","status","errorContext","rawError","kind","sanitizedMessageContext","addContext","removeContext","setHandler","getHandler","setLevel","getLevel","LOGS_STORAGE_KEY","makeLogsPublicApi","startLogsImpl","isAlreadyInitialized","globalContextManager","userContextManager","customLoggers","getInternalContextStrategy","beforeInitLoggerLog","logsMessage","savedCommonContext","buildCommonContext","getInitConfigurationStrategy","mainLogger","view","referrer","overrideInitConfigurationForBridge","canInitLogs","beforeInitGlobalContext","beforeInitUserContext","handleLog","getInternalContext","getLoggerGlobalContext","getGlobalContext","setLoggerGlobalContext","setGlobalContext","addLoggerGlobalContext","setGlobalContextProperty","removeLoggerGlobalContext","removeGlobalContextProperty","clearGlobalContext","createLogger","conf","getLogger","getInitConfiguration","setUser","getUser","setUserProperty","sanitizedProperty","removeUserProperty","clearUser","sendToExtension","__ddBrowserSdkExtensionCallback","onRawTelemetryEventCollected","TelemetryType","ALLOWED_FRAME_URLS","TELEMETRY_EXCLUDED_SITES","telemetryConfiguration","maxEventsPerPage","sentEventCount","telemetryEnabled","telemetryConfigurationEnabled","startTelemetry","telemetryService","contextProvider","runtimeEnvInfo","getRuntimeEnvInfo","toTelemetryEvent","_dd","format_version","telemetry","runtime_env","experimental_features","rawEvent","event_1","addTelemetryError","setContextProvider","provider","enabled","is_local_file","is_worker","isTelemetryReplicationAllowed","addTelemetryDebug","addTelemetry","formatError","addTelemetryConfiguration","scrubCustomerFrames","allowedFrameUrl","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","createPageExitObservable","pagehideEnabled","stopListeners","visibilityState","stopBeforeUnloadListener","isPageExitReason","SYNTHETICS_TEST_ID_COOKIE_NAME","SYNTHETICS_RESULT_ID_COOKIE_NAME","SYNTHETICS_INJECTS_RUM_COOKIE_NAME","willSyntheticsInjectRum","_DATADOG_SYNTHETICS_INJECTS_RUM","getSyntheticsTestId","_DATADOG_SYNTHETICS_PUBLIC_ID","getSyntheticsResultId","_DATADOG_SYNTHETICS_RESULT_ID","Batch","flushController","pushOnlyBuffer","upsertBuffer","flushSubscription","flushObservable","flush","addOrUpdate","upsert","messages","sendOnExit","processedMessage","messageBytesCount","hasMessageFor","separatorBytesCount","messagesCount","notifyBeforeAddMessage","notifyAfterAddMessage","removedMessage","notifyAfterRemoveMessage","isServerError","tryToClone","MAX_ONGOING_BYTES_COUNT","MAX_ONGOING_REQUESTS","MAX_QUEUE_BYTES_COUNT","MAX_BACKOFF_TIME","INITIAL_BACKOFF_TIME","sendWithRetryStrategy","sendStrategy","reportError","transportStatus","queuedPayloads","bandwidthMonitor","canHandle","onSuccess","retryQueuedPayloads","onFailure","enqueue","scheduleRetry","dequeue","currentBackoffTime","shouldRetryRequest","ongoingRequestCount","isFull","queueFullReported","previousQueue","newPayloadQueue","onLine","newRetryState","newBandwidthMonitor","ongoingByteCount","createHttpRequest","endpointBuilder","bytesLimit","retryState","sendStrategyForRetry","onResponse","fetchKeepAliveStrategy","sendBeaconStrategy","canUseBeacon","sendBeacon","beaconUrl","isQueued","reportBeaconError","xhrUrl","sendXHR","hasReportedBeaconError","canUseKeepAlive","isKeepAliveSupported","fetchUrl","fetch","keepalive","Request","XMLHttpRequest","open","createFlushController","durationLimitTimeoutId","messagesLimit","durationLimit","pageExitObservable","sessionExpireObservable","pageExitSubscription","sessionExpireSubscription","currentBytesCount","currentMessagesCount","cancelDurationLimitTimeout","scheduleDurationLimitTimeout","startBatchWithReplica","primaryBatch","createBatch","replicaBatch","replicated","transformMessage","END_OF_TIMES","Infinity","CLEAR_OLD_VALUES_INTERVAL","ValueHistory","maxEntries","clearOldValuesInterval","clearOldValues","endTime","closeActive","latestEntry","findAll","oldTimeThreshold","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","sessionContextHistory","buildSessionContext","trackActivity","trackVisibility","findActiveSession","expandSessionWhenVisible","visibilityCheckInterval","startLogsSessionManager","sessionManager","rawTrackingType","findTrackedSession","startLogsSessionManagerStub","computeTrackingType","rawSessionType","hasValidLoggerSession","createEventRateLimiter","onLimitReached","eventCount","allowNextEvent","isLimitReached","STATUS_PRIORITIES","startLoggerCollection","lifeCycle","savedDate","isAuthorized","displayInConsole","rawLogsEvent","loggerHandler","sanitizedHandlerType","startLogsAssembly","statusWithCustom","logRateLimiters","_d","_e","_f","_g","commonContext","session_id","usr","getRUMInternalContext","logsSentBeforeRumInjectionTelemetryAdded","getInternalContextFromRumGlobal","DD_RUM_SYNTHETICS","testId","resultId","DD_RUM","rumGlobal","consoleObservablesByApi","initConsoleObservable","consoleObservables","createConsoleObservable","originalConsoleApi","buildConsoleLog","formatConsoleParameters","firstErrorParam","LogStatusForApi","startConsoleCollection","consoleSubscription","xhrObservable","LogStatusForReport","startReportCollection","reportSubscription","instrumentMethod","instrumentationFactory","instrumentation","instrumentationWrapper","instrumentMethodAndCallOriginal","before","fetchObservable","xhrContexts","initXhrObservable","createXhrObservable","stopInstrumentingStart","openXhr","stopInstrumentingSend","sendXhr","stopInstrumentingAbort","abortXhr","startContext","isAborted","xhr","hasBeenReported","stopInstrumentingOnReadyStateChange","DONE","onEnd","unsubscribeLoadEndListener","completeContext","initFetchObservable","createFetchObservable","originalFetch","responsePromise","afterSend","reportFetch","DOMException","code","ABORT_ERR","responseType","readBytesFromStream","stream","reader","getReader","chunks","readBytesCount","readMore","read","done","onDone","collectStreamBody","bytes","limitExceeded","completeBuffer_1","Uint8Array","offset_1","chunk","startNetworkErrorCollection","xhrSubscription","handleResponse","fetchSubscription","onResponseDataAvailable","responseData","status_code","isRejected","computeXhrResponseData","computeFetchResponseText","computeFetchErrorText","truncateResponseText","clonedResponse","TextDecoder","truncateResponseStream","responseText","ERROR_TYPES_RE","startUnhandledErrorCollection","stopInstrumentingOnError","instrumentOnError","stopInstrumentingOnUnhandledRejection","instrumentUnhandledRejection","messageObj","errorObj","tryToParseMessage","name_1","trackRuntimeError","errorObservable","startRuntimeErrorCollection","rawErrorObservable","stopRuntimeErrorTracking","rawErrorSubscription","AbstractLifeCycle","callbacks","eventCallbacks","LifeCycle","startLogsBatch","batch","serverLogsEvent","startLogsBridge","startInternalContext","trackedSession","startLogs","cleanupTasks","startLogsTelemetry","stopLogsTelemetry","application_id","action","user_action","stopLogsBatch_1","internalContext","task","bridge_1","telemetrySubscription_1","telemetryBatch_1","telemetrySubscription_2","datadogLogs","useConsoleOnly","getLoggingMessage","loggingMessage","getLoggingContext","loggingContext","isHttpError","logMessage","loggerGenerator","loggerTypes","loggerMethods","loggerType","currentUrl","searchParams","pendo","initialize","visitor","Visitor_Id","User_Name","full_name","Payer_Company","Account","Merchant_ID","Merchant_Name","Account_Name","Transaction_Id","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","defaultWidth","formats","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","time","dateTime","formatRelativeLocale","lastWeek","yesterday","tomorrow","nextWeek","formatRelative","_baseDate","_options","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","rem100","localize","era","quarter","day","dayPeriod","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","buildMatchPatternFn","parseResult","parsePattern","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","weekStartsOn","firstWeekContainsDate","defaultOptions","getDefaultOptions","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","longFormatters","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","startOfUTCISOWeekYear","dirtyDate","requiredArgs","getUTCISOWeekYear","fourthOfJanuary","setUTCHours","startOfUTCISOWeek","MILLISECONDS_IN_WEEK","getUTCISOWeek","toDate","diff","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCWeekYear","_options$firstWeekCon","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","toInteger","getUTCWeekYear","firstWeek","startOfUTCWeek","getUTCWeek","RangeError","firstWeekOfNextYear","firstWeekOfThisYear","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","getUTCDay","setUTCDate","getUTCDate","_options$weekStartsOn","NaN","ceil","isDate","MILLISECONDS_IN_DAY","getUTCDayOfYear","setUTCMonth","startOfYearTimestamp","difference","addLeadingZeros","targetLength","sign","formatters","signedYear","M","getUTCMonth","dayPeriodEnumValue","getUTCHours","H","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","pow","dayPeriodEnum","lightFormatters","Y","signedWeekYear","weekYear","twoDigitYear","R","isoWeekYear","u","Q","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","B","K","X","_localize","originalDate","_originalDate","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","O","formatTimezoneShort","z","T","dirtyDelimiter","absOffset","minutes","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_options$locale2","_options$locale2$opti","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","subMilliseconds","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","addMilliseconds","dirtyAmount","argument","argStr","_vval","_params","_objectSpread","NIL","buildFromKeys","keyFn","isFunction","isPromise","getPath","ctx","__isVuelidateAsyncVm","makePendingAsyncVm","promise","asyncVm","validationGetters","$invalid","nestedKeys","nested","refProxy","ruleKeys","rule","$dirty","_this2","dirty","$anyDirty","_this3","$error","$pending","$anyError","_this4","_this5","getRef","$params","_this6","vals","validations","setDirtyRecursive","newState","validationMethods","$touch","$reset","$flattenParams","isNested","childParams","getterNames","methodNames","_cachedComponent","getComponent","VBase","refs","oldVval","patchChildren","beforeDestroy","getModel","lazyModel","model","getModelKey","hasIter","ValidationRule","lazyParentModel","rootModel","runRule","pushParams","rawOutput","rawParams","popParams","$sub","run","_this7","isArrayDependant","__ob__","arrayDep","dep","depend","_indirectWatcher","Watcher","lazy","_lastModel","evaluate","Validation","_this8","_this9","keyDefs","getterDefs","methodDefs","iterDefs","$iter","$model","_this10","renderNested","renderRule","GroupValidation","EachValidation","tracker","_this11","trackBy","$trackBy","getModelLazy","_this12","_this13","usedTracks","track","refVals","$v","_cachedVue","getVue","rootVm","validateModel","_getComponent","validationMixin","_vuelidate","$destroy","Vuelidate","_setTarget","withParams","lastTarget","newTarget","addParams","withParamsDirect","withParamsClosure","closure","paramsOrClosure","maybeValidator","isUndef","sameVval","vval","createVm","Vm","updateVval","createKeyToOldIdx","beginIdx","endIdx","updateChildren","oldCh","newCh","oldKeyToIdx","idxInOld","elmToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVval","oldEndVval","newEndIdx","newStartVval","newEndVval","patchVval","addVvals","removeVvals","vvals","startIdx","ch","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_s","arrayToObject","fields","normalizeNamespace","getterType","mutationType","mapFields","fieldsObject","field","$store","paths","pathsObject","rows","fieldKey","fieldPath","applyMixin","vuexInit","_init","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","devtoolPlugin","_devtoolHook","emit","targetState","prepend","subscribeAction","deepCopy","hit","copy","forEachValue","Module","rawModule","runtime","_children","_rawModule","rawState","namespaced","addChild","getChild","hasChild","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","targetModule","newModule","modules","getNamespace","this$1","rawChildModule","isRegistered","Store","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","installModule","resetStoreVM","useDevtools","devtools","prototypeAccessors$1","genericSubscribe","subs","resetStore","hot","oldVm","wrappedGetters","$$state","enableStrictMode","_withCommit","_data","nextTick","rootState","isRoot","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","getter","registerGetter","noNamespace","_type","_payload","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","rootGetters","rawGetter","sync","sub","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","collapsed","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","startMessage","endMessage","formattedAction","groupCollapsed","groupEnd","pad","times","num","maxLength","thisArg","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","ArrayBuffer","isView","isString","isBoolean","isPlainObject","isFile","isBlob","isFileList","isStream","pipe","isFormData","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","getOwnPropertyNames","_global","isContextDefined","merge","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","descriptors","toFlatObject","sourceObj","destObj","propFilter","searchString","lastIndex","isTypedArray","TypedArray","forEachEntry","generator","matchAll","regExp","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducedDescriptors","ret","freezeMethods","toObjectSet","arrayOrString","define","toFiniteNumber","isFinite","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","postMessage","asap","queueMicrotask","hasOwnProp","AxiosError","captureStackTrace","utils","fileName","customProps","axiosError","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","metaTokens","indexes","defaultVisitor","_Blob","useBlob","convertValue","toISOString","Buffer","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","handlers","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","toURLEncodedForm","platform","helpers","isNode","parsePropPath","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","rawHeaders","parsed","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","deleted","deleteHeader","normalize","targets","asStrings","accessor","internals","accessors","defineAccessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","parseProtocol","speedometer","samplesCount","timestamps","firstSampleTS","tail","chunkLength","startedAt","passed","freq","lastArgs","timer","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","lengthComputable","progressBytes","rate","inRange","estimated","progressEventDecorator","asyncDecorator","msie","urlParsingNode","originURL","resolveURL","port","requestURL","write","toGMTString","isAbsoluteURL","combineURLs","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","unescape","isURLSameOrigin","xsrfValue","cookies","isXHRAdapterSupported","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","onloadend","responseHeaders","getAllResponseHeaders","statusText","onreadystatechange","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","composeSignals","signals","controller","AbortController","streamChunk","chunkSize","byteLength","pos","readBytes","iterable","readStream","asyncIterator","trackStream","onProgress","onFinish","_onFinish","ReadableStream","loadedBytes","return","highWaterMark","isFetchSupported","Response","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","getBodyLength","_request","resolveBodyLength","getContentLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","knownAdapters","renderReason","isResolvedHandle","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","opt","ERR_BAD_OPTION","formatMessage","ERR_DEPRECATED","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","spread","isAxiosError","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","Cancel","promises","formToJSON"],"sourceRoot":""}